XML

XML 知识量:7 - 28 - 99

3.2 DTD元素声明><

元素声明的语法- 3.2.1 -

元素声明的语法为:

<!ELEMENT 元素名称 (元素内容类型)>

其中:

  • <!表示元素声明的开始,ELEMENT是关键字,且必须大写。<!与ELEMENT之间不能有空格。

  • 元素名称用来指定元素的名称,与XML文档中使用的标记名要对应。

  • 元素内容类型是指元素可能包含的内容的类型。

  • >表示元素声明的结束。

  • DTD中元素声明的顺序没有明确规定,一般可先声明子元素,再声明父元素,最后是根元素。

元素内容类型- 3.2.2 -

DTD中声明的元素内容类型主要有5种,分别是:EMPTY、ANY、#PCDATA、子元素类型和混合型。

  • EMPTY:表示所声明的元素为空元素,该类型的元素可以有属性,但不能有字符数据或子元素。

  • ANY:表示声明的元素可以为EMPTY、#PCDATA、子元素类型和混合型这4种类型之一。

  • #PCDATA:表示所声明的元素只能包含字符(文本)数据,不能包含其他任何元素。

  • 混合型:表示元素既可以包含文本数据,也可以包含子元素。

  • 子元素类型:表示包含子元素。根据子元素之间的关系,子元素内容模型分为顺序结构和选择结构。

1、顺序结构的语法为:

<!ELEMENT 元素名称 (子元素1,子元素2,......,子元素n)>

XML文档中这n个子元素必须按照声明时出现的先后顺序依次嵌套在指定的父元素中。

2、选择结构的语法为:

<!ELEMENT 元素名称 (子元素1|子元素2|......|子元素n)>

XML文档中只能从这n个子元素中选择其中一个作为指定父元素的子元素。

控制元素内容- 3.2.3 -

可以通过一些符号来控制元素出现的次数,这些符号主要包括:

  • +:表示元素可以出现任意多次,但必须至少出现1次。

  • *:表示元素可以出现任意多次,也可以不出现。

  • ?:表示元素可以出现1次,也可以不出现。

下面是一个示例:

<!ELEMENT student (number,name,class)*>

以上代码表示,子元素number、name、class将按照以上排列顺序同时出现多次,或都不出现。