XML 文件定義的兩種形式(DTD,SCHEMA)

2021-08-31 12:26:30 字數 1914 閱讀 2329

xml dtd是目前使用比較廣泛的一種xml模式,而xml schema是w3c官方推薦的xml定義格式。

dtd 指定:可以在文件中存在的元素、那些元素可以具有的屬性、在元素內部元素的層次結構以及元素在整個文件中出現的順序。

xml schema 是基於 xml 的 dtd 替代者。xml schema 可描述 xml 文件的結構。xml schema 語言也可作為 xsd(xml schema definition)來引用。

結構良好的xml文件——如果某個文件符合xml語法規範,那麼我們就說這個文件是「結構良好」的文件。使用本書講到的xmlspy 2006工具就可以測試某文件是否為結構良好的xml文件。

有效的xml文件——所謂有效的xml文件是指通過了dtd的驗證的,具有良好結構的xml文件,在此大家要明白xml文件可分為結構良好的xml文件和有效的xml文件,以及他們之間的關係。即具有結構良好的xml文件並不一定就是有效的xml文件,反之乙個有效的xml文件必定是乙個結構良好的xml文件。

xml schema 與 xml dtd 區別:

xml schema和dtd都用於文件驗證,但二者還有一定區別,本質區別:schema本身是xml的,可以被xml解析器解析(這也是從dtd上發展schema的根本目的)。另外:

xml schema是內容開放模型,可擴充套件,功能性強;而dtd可擴充套件性差;

xml schema支援豐富的資料型別,而dtd不支援元素的資料型別,對屬性的型別定義也很有限;

xml schema支援命名空間機制,而dtd不支援;

xml schema可針對不同情況對整個xml文件或文件區域性進行驗證;而dtd缺乏這種靈活性;

xml schema完全遵循xml規範,符合xml語法,可以和dom結合使用,功能強大;而dtd語法本身有自身的語法和要求,難以學習;

1.                  最簡單的schema文件

如何寫乙個最簡單的xml schema文件呢?

首先,我們寫出乙個最簡單的xml文件。

hello.xml

<?xml version="1.0"?>

hello world!!

hello.xsd

<?xml version="1.0"?>

">

xml schema文件字尾名是.xsd,完全符合xml語法,根元素是schema,命名空間xmlns:xsd=",用元素定義例項文件中的元素,如greeting。

2.                  含子元素的schema文件 

假設例項文件是如下的:

customer.xml

teiki

no.237, road waitan, shanghai

則可以寫出以下的xml schema文件:

customer.xsd

<?xml version="1.0"?>

">

例項文件customer.xml中,元素含有兩個子元素,所以我們在schema文件中採用complextype來定義該元素。sequence表示子元素依次出現的順序。

3.                  含子元素和孫元素的schema文件

這次我們給出乙個更加複雜一些的文件:

customer.xml

teiki

zhejiang

hangzhou

xilu road, no.121, 7f

為此,我們需要乙個更加複雜一點的schema文件:

address.xsd

<?xml version="1.0"?>

">

不過,我們還可以採用ref元素來重新編寫這個schema文件:

address2.xsd

<?xml version="1.0"?>

">

使用ref元素可以直接將其指向另乙個模組,使文件更加具有可讀性。

XML文件型別定義 DTD詳解

dtd document type definition 文件型別定義 1.對dtd的初步認識 乙個簡單的dtd檔案 323.在xml文件中直接嵌入dtd定義語句 就是直接在xml文件的 一 dtd元素定義.元素定義細節 1 元素定義的語法格式 例如 使用規則 pcdata 是 parsed cha...

定義函式指標的兩種形式

定義函式指標的兩種形式 林石 2009 07 09 我們在開發c c 程式時,經常遇到需要定義函式指標的情況。為了增加 的可讀性,一般都會通過typedef形式定義函式指標型別。有兩種做法,如下 其中,return type是函式返回型別,def type是函式 指標 型別名,arg list是函式...

xml的文件定義和dtd簡單入門

1.xml的文件宣告 如果寫了xml 第一步必須要有乙個文件宣告 格式 文件宣告必須在第一行第一列 前面有空格也不行。屬性 vertion 1.0 和 1.1 一般1.0 encoding xml編碼 standalone 是否要依賴其他檔案 yes no 2.定義元素 標籤 如果沒有主體 這樣也是...