一、屬性的宣告:
a) 任何標記的屬性都必須在dtd文件中進行宣告,都要通過關鍵字
定義。b) 所有標記的屬性,即便是同名屬性,都要在各個標記中宣告。
如publisher中有address屬性,person中也有address屬性,則需要分別在兩個標記中進行宣告。
c) 可以多次為乙個標記宣告不同的屬性。
如book有language和publisher兩個屬性,可以宣告為
也可以同時依次為乙個標記宣告多個屬性。
如:
(不提倡使用)
d) attr_type的四種型別:
i. 預設屬性值,不指定;
ii. #required——屬性值必須指定;
iii. #implied——屬性值可選用或不用;
iv. #fixed——屬性值可以沒有,但如果有則必須和指定值保持一致。
e) e.g.
test328.dtd
<?xmlversion="1.0" encoding="utf-8"?>
test328.xml
<?xmlversion="1.0" encoding="utf-8"?>
xml programming
jason
$100
二、 屬性的內容型別
a) cdata型:該型別的屬性值不能含有「<」和「」」,但實體可以出現在該字串中;
b) enumerated型:必須從列舉過的資料型別中選取,如(true|false);
c) id型:要求文件中所有標記id型別的屬性值一定不能相同;
d) entity型:用於標識外部不可解析的實體,如二進位制檔案;
e.g.(會報錯?)
<?xmlversion="1.0" encoding="utf-8"?>
]>
haha
monkey
e.g.(會報錯?)
<?xmlversion="1.0" encoding="utf-8"?>
]>
haha
f) notation型:對於不可解析的實體,為了將其展現出來或進行應用,通過該關鍵字告訴用什麼樣的軟體進行支援。
如:dtd中宣告
haha
g) idref型:用於表示xml文件中標記之間關係的一種型別,其值必須是文件中被定義好的某一標記的id型別的屬性值。
如:
<?xmlversion="1.0" encoding="utf-8"?>
]>
haha
ha
h) idrefs型:類似於idref,但可以引用多個id,多個id之間用空格隔開。
i) nmtoken型:限制作為其值的屬性型別,規定了一種合法的命名機制,必須由英文本母、數字、「.」、「_」和「-」組成,不能包括空格。
e.g.
<?xmlversion="1.0" encoding="utf-8"?>
]>
hahahaa
j) nmtokens型:能夠給乙個標記賦予幾個滿足nmtoken型的字串,不同的字串都在乙個引號中,彼此用空格隔開。
XMl學習之 DTD學習筆記
1.建立乙個檔案,字尾名為.dtd 2.判斷元素是簡單元素還是複雜元素 簡單元素 有子元素的元素複雜元素。複雜元素 有子元素的元素。3.需要在xml檔案中引入dtd檔案 1.引入外部的dtd檔案 2.使用內部的dtd約束 3.使用外部的dtd檔案 網路上的 語法 簡單元素 如 約束 1.pcdata...
xml中DTD屬性的約束
xml中dtd屬性的約束 attribute list 屬性名1 屬性型別 設定說明 屬性名2 屬性型別 設定說明 表示student元素的number為屬性名,cdata文字型別,這個屬性是必須的。最常見的屬性型別 cdata,表示文字型別 最常見的設定說明1 required,表示屬性是必須的。...
XML學習筆記(二) DTD格式規範
標籤 空格分隔 學習筆記 xml的乙個主要目的是允許應用程式之間自由交換結構化的資料,因此要求xml文件具有一致的結構 業務邏輯和規則。可以定義一種模式來定義xml文件的結構,並藉此驗證xml文件的有效性。定義xml文件結構有兩種解決方案 一種是採用文件型別定義dtd 另一種是採用xml schem...