XML之DTD(文档类型定义)

前端之家收集整理的这篇文章主要介绍了XML之DTD(文档类型定义)前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

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

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

声明元素

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

<!ELEMENT 元素名称 类别> [类别可为:EMPTY、(#PCDATA)、ANY]

或者

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

带有 DTD 的 XML 文档实例

<?xml version="1.0"?>
<!DOCTYPE note[
  <!ELEMENT note (to,from,heading,body)>
  <!ELEMENT to      (#PCDATA)>
  <!ELEMENT from    (#PCDATA)>
  <!ELEMENT heading (#PCDATA)>
  <!ELEMENT body    (#PCDATA)>
]>
<note>
  <to>George</to>
  <from>John</from>
  <heading>Reminder</heading>
  <body>Don't forget themeeting!</body>
</note>

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

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

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

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

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

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

PCDATA 的意思是被解析的字符数据(parsedcharacter data),PCDATA 是会被解析器解析的文本。这些文本将被解析器检查实体以及标记

CDATA 的意思是字符数据(characterdata)。CDATA 是不会被解析器解析的文本

<!ELEMENT note(#PCDATA|to|from|header|message)*[可以加后缀:?、*、+]>

上面的例子声明了:"note"元素可包含出现零次或多次的 PCDATA、"to"、"from"、"header" 或者 "message"。

声明属性

属性声明使用下列语法:

<!ATTLIST 元素名称 属性名称 属性类型 默认值>

以下是属性类型的选项:

类型 描述

CDATA 值为字符数据 (character data)

(en1|en2|..) 此值是枚举列表中的一个值

ID 值为唯一的 id

IDREF 值为另外一个元素的 id

IDREFS 值为其他 id 的列表

NMTOKEN 值为合法的 XML 名称

NMTOKENS 值为合法的 XML 名称的列表

ENTITY 值是一个实体

ENTITIES 值是一个实体列表

NOTATION 此值是符号的名称

xml: 值是一个预定义的XML 值

默认值参数可使用下列值:

值 解释

属性的默认值

#required 属性值是必需的

#IMPLIED 属性不是必需的

#FIXED value 属性值是固定的

声明实体

语法:

<!ENTITY 实体名称 "实体的值">

猜你在找的XML相关文章