xml編寫中的DTD約束與schema約束中的語法
DTD語法
約束標籤
<!ELEMENT元素名稱 類別> 或 <!ELEMENT 元素名稱 (元素內容)>
類別:
空標籤: EMPTY。 表示元素一定是空元素。
普通字串:(#PCDATA)。表示元素的內容一定是普通字串(不能含有子標籤)。
任何內容: ANY。表示元素的內容可以是任意內容(包括子標籤)
(元素內容):
順序問題:
<!ELEMENT元素名稱 (子元素名稱 1,子元素名稱 2,.....)>:按順序出現子標籤
次數問題:
標籤 : 必須且只出現1次。
標籤+ :至少出現1次
標籤* : 0或n次。
標籤? : 0 或1次。
約束屬性
<!ATTLIST元素名稱 屬性名稱 屬性型別 預設值>
預設值:
#REQUIRED屬性值是必需的
#IMPLIED 屬性不是必需的
#FIXEDvalue 屬性不是必須的,但屬性值是固定的
屬性型別:控制屬性值的
CDATA:表示普通字串
(en1|en2|..):表示一定是任選其中的一個值
ID:表示在一個xml文件中該屬性值必須唯一。值不能以數字開頭
Schema約束
名稱空間:告訴xml文件的哪個元素被哪個schema文件約束。在一個xml文件中,不同的標籤可以受到不同的schema文件的約束。
1)一個名稱空間受到schema文件約束的情況
2)多個名稱空間受到多個schema文件約束的情況
3)預設名稱空間的情況
4)沒有名稱空間的情況