Elements(元素) 在一个DTD中,XML元素是通过DTD的元素声明来声明的。
1. 声明一个元素 使用以下语法来使用DTD的元素声明来声明一个XML元素: <!ELEMENT element-name category> 或者是 <!ELEMENT element-name (element-content)>
2. 空元素 空元素是通过关键字EMPTY来声明的。 语法格式为: <!ELEMENT element-name EMPTY>
例: <!ELEMENT br EMPTY> 在XML文档中使用为 <br />
3. 仅有字符数据的元素 使用(#PCDATA)来声明仅有字符数据的元素 语法格式为: <!ELEMENT element-name (#PCDATA)> 例: <!ELEMENT from (#PCDATA)>
4. 含有任意内容的元素 含有任意内容的元素是通过关键字ANY来声明的。 所谓任意内容是指能够包含任何结合的可被解析的数据。 语法格式为: <!ELEMENT element-name ANY> 例: <!ELEMENT note ANY>
5. 含有子元素的元素 如果包含一个或多个子元素的元素,它将通过含有括号的子元素名称来进行定义 语法格式为: <!ELEMENT element-name (child-element-name)> 或者 <!ELEMENT element-name (child-element-name,child-element-name,.....)>
当子元素按照一定恰当分解的顺序进行声明时,那他们在文档中也必须以相同的顺序出现 在全声明中,子元素必须被全部声明,当然他们也可以有自己的子元素。
例: 以下是含有子元素的note元素的全声明 <!ELEMENT note (to,from,heading,body)> <!ELEMENT to (#PCDATA)> <!ELEMENT from (#PCDATA)> <!ELEMENT heading (#PCDATA)> <!ELEMENT body (#PCDATA)>
6. 相同的元素只出现一次的声明 语法格式为: <!ELEMENT element-name (child-name)> 例: <!ELEMENT note (message)> 上述例子是指子元素message必须出现一次,并且在被包含的note元素里只出现一次。
7. 相同的元素至少出现一次的声明 语法格式为: <!ELEMENT element-name (child-name+)> 例: <!ELEMENT note (message+)> 例中的+是指子元素message必须在被包含的note元素里出现一次或者多次。
8. 相同的元素不出现或者多次出现的声明 语法格式为: <!ELEMENT element-name (child-name*)> 例: <!ELEMENT note (message*)> 例中的*是指子元素message能够在被包含的note元素里不出现或者出现多次。
9. 相同的元素不出现或者出现一次的声明 语法格式为: <!ELEMENT element-name (child-name?)> 例: <!ELEMENT note (message?)> 例中的?是指子元素message能够在被包含的note元素里不出现或者出现一次。
10. "或"的声明 例: <!ELEMENT note (to,from,header,(message|body))> 上例是指note元素必须包含一个to元素,一个from元素,一个header元素, 以及一个message元素或body元素
11. 混合内容的声明 例: <!ELEMENT note (#PCDATA|to|from|header|message)*>

|