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
值为唯一的 idIDREF
值为另外一个元素的 idIDREFS
值为其他 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)>