DTD约束标签
<!ELEMENT 元素名称 类别> 或<!ELEMENT 元素名称 (元素内容)>
类别:约束标签的内容
EMPTY:空标签
PCDATA:普通字符串(没有子标签)
ANY : 可以是任何内容(包含子标签)
(元素内容): 标签包含子标签的情况
顺序问题:
(A,B,C,D): 按顺序依次出现
(A|B|C|D):任意出现一个(枚举式出现)
数量问题:
A: 必须出现1次
A*: 可以出现0或多次
A+:可以出现1或多次
A?: 可以出现0或1次
约束属性
<!ATTLIST元素名称 属性名称 属性类型 默认值>
默认值:属性是否必须填写
#REQUIRED属性值是必需的
#IMPLIED属性不是必需的
#FIXED value
属性类型: 约束属性值
CDATA值为字符数据 (character data)
(en1|en2|..)此值是枚举列表中的一个值
ID 值是唯一的
现在有一个DTD的文件,内容如下:
<!ELEMENT TVSCHEDULE (CHANNEL+)> <!ELEMENT CHANNEL (BANNER,DAY+)> <!ELEMENT BANNER (#PCDATA)> <!ELEMENT DAY (DATE,(HOLIDAY|PROGRAMSLOT+)+)> <!ELEMENT HOLIDAY (#PCDATA)> <!ELEMENT DATE (#PCDATA)> <!ELEMENT PROGRAMSLOT (TIME,TITLE,DESCRIPTION?)> <!ELEMENT TIME (#PCDATA)> <!ELEMENT TITLE (#PCDATA)> <!ELEMENT DESCRIPTION (#PCDATA)> <!ATTLIST TVSCHEDULE NAME CDATA #REQUIRED> <!ATTLIST CHANNEL CHAN CDATA #REQUIRED> <!ATTLIST PROGRAMSLOT VTR CDATA #IMPLIED> <!ATTLIST TITLE RATING CDATA #IMPLIED> <!ATTLIST TITLE LANGUAGE CDATA #IMPLIED>
根据以上内容可以编写出XML文件如下:
<?xml version="1.0" encoding="utf-8"?> <!DOCTYPE TVSCHEDULE SYSTEM "test.dtd"> <TVSCHEDULE NAME="one"> <!-- #REQUIRED必须出现的属性 --> <CHANNEL CHAN="001"> <!--因为有“+”表示一个或多个 --> <BANNER>just do it</BANNER> <!--#PCDATA: 字符串 --> <DAY> <!--因为有“+”表示一个或多个 --> <DATE></DATE> <HOLIDAY>暑假</HOLIDAY> <!-- 二者出现一个 --> </DAY> <DAY> <!--因为有“+”表示一个或多个 --> <DATE></DATE> <HOLIDAY>暑假</HOLIDAY> <!-- 二者出现一个 --> </DAY> </CHANNEL> <CHANNEL CHAN="002"> <BANNER>just do it</BANNER> <DAY> <DATE></DATE> <HOLIDAY>暑假</HOLIDAY> <PROGRAMSLOT VTR="v"> <!-- 属性可以选择要或不要 --> <TIME >2016.7.13</TIME> <TITLE RATING="r" LANGUAGE="l">今天学习DTD</TITLE> <!-- 属性可以选择要或不要 --> <DESCRIPTION></DESCRIPTION> <!-- ?为可以出现0次或1次 --> </PROGRAMSLOT> </DAY> </CHANNEL> </TVSCHEDULE>
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。