DTD 元素

创建于 2024-12-03 / 19
字体: [默认] [大] [更大]

在DTD中,元素是用元素声明来声明的。


声明元素

在DTD中,XML元素使用以下语法声明:

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

Empty 元素

空元素用关键字EMPTY声明:

<!ELEMENT element-name EMPTY>

示例:

<!ELEMENT br EMPTY>

XML 示例:

<br />

包含已解析字符数据的元素

仅包含已解析字符数据的元素在括号内用#PCDATA声明:

<!ELEMENT element-name (#PCDATA)>

示例:

<!ELEMENT from (#PCDATA)>

包含任何内容的元素

使用关键字ANY声明的元素可以包含可解析数据的任意组合:

<!ELEMENT element-name ANY>

示例:

<!ELEMENT note ANY>

带子元素(序列)

具有一个或多个子元素的元素在括号内用子元素的名称声明:

<!ELEMENT element-name (child1)>

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

示例:

<!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)>

示例:

<!ELEMENT note (message)>

上面的实例声明子元素"message"必须出现一次,并且在"note" 元素中只能出现一次。


声明元素至少出现一次

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

示例:

<!ELEMENT note (message+)>

上面实例中的+符号声明子元素"message"必须在"note"元素中出现一次或多次。


声明元素的零次或多次出现

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

示例:

<!ELEMENT note (message*)>

上面实例中的*符号声明子元素"message"可以在"note"元素中出现零次或多次。


声明元素的零个或一个引用

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

示例:

<!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"元素。



0 人点赞过