xml文件对应的DTD学习

DTD文件:

1.DTD文档主要由(元素,属性,实体,PCDATA,CDATA)

2.声明一个元素:<!ELEMENT 元素名称 (元素内容)>

eg: <!ELEMENT persons (person)>

特殊元素: <!ELEMENT 元素名称 EMPTY>结果类诗如下:<!ELEMENT br EMPTY>

效果:<br />

带有任何内容的元素: <!ELEMENT 元素名称 ANY>  EG: <!ELEMENT note ANY>

 

3.当最后只有PCDATA元素时 (元素内容) –> (#PCDATA)

<!ELEMENT 元素名称 (#PCDATA)>

eg:  <!ELEMENT name (#PCDATA)>

 

4.带有子元素的元素:

<<

 

<!ELEMENT 元素名称 (子元素名称,多个用“,”分割)>

eg:  <!ELEMENT person (id,name,age) >

 

5.在默认的情况下,声明的元素都是只出现一次的。

在元素后面添加标志,可改元素出现的次数。

+  :出现1次或多次,至少出现一次,

*  :出现0次或多次,

?  :出现0次或1次,

 

6.声明属性  <!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
属性值是固定的

eg:  <!ATTLIST person  sex  CDATA  “男”>

7.声明一个实体:<!ENTITY 实体名称  “实体的值”>

<! ENTITY copyright “Copyright author”>

 

 

8.一个简单的应用:

1.不按标准写但结构类似写法:

<persons  sex>

    <person>

         <id></id>

         <name></name>

         <age></age>

    </person>

</persons>

2.把上面的转为dtd格式:

<!ELEMENT persons (person)>

<!ELEMENT persons  sex  CDATA  “男”>

<!ELEMENT person (id,name,age)>

<!ELEMENT id (#PCDATA)>

<!ELEMENT name (#PCDATA)>

<!ELEMENT age (#PCDATA)>

原文地址:https://www.cnblogs.com/haoke/p/4448735.html