0
点赞
收藏
分享

微信扫一扫

5XML DTD


1DTD作用

文档类型定义(DTD)可定义合法的XML文档构建模块。它使用一系列合法的元素来定义文档的结构。

DTD 可被成行地声明于 XML 文档中,也可作为一个外部引用。

l !DOCTYPE note (第二行)定义此文档是 note 类型的文档。

l !ELstrongENT note (第三行)定义 note 元素有四个元素:"to、from、heading,、body"

l !ELstrongENT to (第四行)定义 to 元素为 "#PCDATA" 类型

l !ELstrongENT from (第五行)定义 frome 元素为 "#PCDATA" 类型

l !ELstrongENT heading (第六行)定义 heading 元素为 "#PCDATA" 类型

l !ELstrongENT body (第七行)定义 body 元素为 "#PCDATA" 类型

2DTD元素

在 DTD 中,XML 元素通过元素声明来进行声明。元素声明使用下面的语法:

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

空元素

空元素通过类别关键词EMPTY进行声明:

<!ELEMENT element-name EMPTY>


实例:


<!ELEMENT br EMPTY>


XML example:


<br />

只有 PCDATA 的元素

只有 PCDATA 的元素通过圆括号中的 #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" 元素可包含出现零次或多次的 PCDATA、"to"、"from"、"header" 或者 "message"。

3.DTD属性

在 DTD 中,属性通过 ATTLIST 声明来进行声明。

5XML DTD_DTD验证_02

5XML DTD_XML DTD_03

举报

相关推荐

0 条评论