最新的Web開發教程
 

DTD - 元素


在DTD中,元素的聲明與元素聲明。


聲明元素

在DTD中,XML元素聲明的語法如下:

<!ELEMENT element-name category>
or
<!ELEMENT element-name (element-content)>

空元素

空元素的聲明通過類別關鍵詞EMPTY:

<!ELEMENT element-name EMPTY>

Example:

<!ELEMENT br EMPTY>

XML example:

<br />

與解析字符數據元素

只有解析字符數據元素的聲明用括號內#PCDATA:

<!ELEMENT element-name (#PCDATA)>

Example:

<!ELEMENT from (#PCDATA)>

與任何內容元素

與類別關鍵字聲明的元素的任何,可以包含可解析數據的任意組合:

<!ELEMENT element-name ANY>

Example:

<!ELEMENT note ANY>

與子元素(sequences)

有一個或多個子女的元素聲明的括號內兒童元素的名稱:

<!ELEMENT element-name (child1)>
or
<!ELEMENT element-name (child1,child2,...)>

Example:

<!ELEMENT note (to,from,heading,body)>

當孩子在由逗號分隔的序列被聲明時,兒童必須出現在文檔中的相同序列。 在一個完整的聲明,孩子們還必須聲明,而孩子們也可以有孩子。 的的完整聲明"note"元素是:

<!ELEMENT note (to,from,heading,body)>
<!ELEMENT to (#PCDATA)>
<!ELEMENT from (#PCDATA)>
<!ELEMENT heading (#PCDATA)>
<!ELEMENT body (#PCDATA)>

聲明只有一個元素出現一次

<!ELEMENT element-name (child-name)>

Example:

<!ELEMENT note (message)>

上面的例子中聲明的子元素"message"必須發生一次,並且只有內一次"note"的元素。


聲明元素的最小的一個發生

<!ELEMENT element-name (child-name+)>

Example:

<!ELEMENT note (message+)>

上述例子中的+符號聲明子元素"message"必須出現內一次或多次"note"的元素。


聲明元素的零個或多個

<!ELEMENT element-name (child-name*)>

Example:

<!ELEMENT note (message*)>

上面的例子中*符號聲明該子元素"message" ,可能會發生內部零次或多次"note"的元素。


聲明元素的零個或一個

<!ELEMENT element-name (child-name?)>

Example:

<!ELEMENT note (message?)>

的? 上面的例子簽署聲明的子元素"message"可以出現零次或一次內部"note"的元素。


聲明要么/或內容

<!ELEMENT note (to,from,header,(message|body))>

上面的例子聲明了: "note"元素必須包含一個"to"元素, "from"元素,一個"header"的元素,以及一個"message""body"元素。


聲明混合內容

<!ELEMENT note (#PCDATA|to|from|header|message)*>

上面的例子聲明了: "note"元素可以包含零個或多個解析字符數據, "to""from""header" ,或者"message"的元素。