最新的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"的元素。