1. 程式人生 > >xml編寫中的DTD約束與schema約束中的語法

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)沒有名稱空間的情況