DTD约束标签
<!ELEMENT 元素名称 类别> 或<!ELEMENT 元素名称 (元素内容)>类别:约束标签的内容
EMPTY:空标签
PCDATA:普通字符串(没有子标签)
ANY : 可以是任何内容(包含子标签)
(元素内容): 标签包含子标签的情况
顺序问题:
(A,B,C,D): 按顺序依次出现
(A|B|C|D): 任意出现一个(枚举式出现)
数量问题:
A: 必须出现1次
A*: 可以出现0或多次
A+:可以出现1或多次
A?: 可以出现0或1次
扫描二维码关注公众号,回复:
11186793 查看本文章
约束属性
<!ATTLIST元素名称 属性名称 属性类型 默认值>默认值:属性是否必须填写
#REQUIRED 属性值是必需的
#IMPLIED 属性不是必需的
#FIXED value
属性类型: 约束属性值
CDATA值为字符数据 (character data)
(en1|en2|…)此值是枚举列表中的一个值
ID 值是唯一的
电视节目表 DTD
由 David Moisan 创造。拷贝自:http://www.davidmoisan.org/
<!DOCTYPE TVSCHEDULE [
<!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"?>
<TVSCHEDULE NAME ="靠谱电竞"><!-- #REQUIRED必须出现的属性 -->
<!-- 这是一个电视节目表->
<CHANNEL CHAN="bbbibbi1台"> <!--因为有“+”表示一个或多个 -->
<BANNER>哔哩哔哩 (゜-゜)つロ 干杯~</BANNER> <!--#PCDATA: 字符串 -->
<Day>
<DATE></DATE>
<HOLIDAY>暑假</HOLIDAY> <!-- 二者出现一个 -->
</Day>
<Day> <!--因为有“+”表示一个或多个 -->
<DATE></DATE>
<HOLIDAY>暑假</HOLIDAY> <!-- 二者出现一个 -->
</Day>
</CHANNEL>
<CHANNEL CHAN="bbbibbi2台"> <!--因为有“+”表示一个或多个 -->
<BANNER>哔哩哔哩 (゜-゜)つロ 干杯~</BANNER>
<Day>
<DATE></DATE>
<HOLIDAY>暑假</HOLIDAY>
</Day>
<Day>
<DATE></DATE>
<PROGRAMSLOT VTR="bibi"> <!-- 二者出现一个 -->
<TIME>2020.5.7</TIME>
<TITLE RATING="r" LANGUAGE="l">干杯~</TITLE>
<DESCRIPTION></DESCRIPTION>
</PROGRAMSLOT>
</Day>
</CHANNEL>
</TVSCHEDULE>
报纸文章 DTD
拷贝自:http://www.vervet.com/
<!DOCTYPE NEWSPAPER [
<!ELEMENT NEWSPAPER (ARTICLE+)>
<!ELEMENT ARTICLE (HEADLINE,BYLINE,LEAD,BODY,NOTES)>
<!ELEMENT HEADLINE (#PCDATA)>
<!ELEMENT BYLINE (#PCDATA)>
<!ELEMENT LEAD (#PCDATA)>
<!ELEMENT BODY (#PCDATA)>
<!ELEMENT NOTES (#PCDATA)>
<!ATTLIST ARTICLE AUTHOR CDATA #REQUIRED>
<!ATTLIST ARTICLE EDITOR CDATA #IMPLIED>
<!ATTLIST ARTICLE DATE CDATA #IMPLIED>
<!ATTLIST ARTICLE EDITION CDATA #IMPLIED>
<!ENTITY NEWSPAPER "Vervet Logic Times">
<!ENTITY PUBLISHER "Vervet Logic Press">
<!ENTITY COPYRIGHT "Copyright 1998 Vervet Logic Press">
]>
根据需求写出xml文件
<?xml version="1.0" encoding="UTF-8"?>
<!-- 这是一个 报纸文章-->
<NEWSPAPER >
<ARTICLE AUTHOR ="xuan" EDITOR="editor" DATE="2020.5" EDITION="edttion">
<HEADLINE AUTHOR="a" EDITOR="e" DATE="d">h</HEADLINE>
<BYLINE>1990-10-12</BYLINE>
<LEAD>lx</LEAD>
<BODY>This is a pare of newspaper!</BODY>
<NOTES>>Please look at the newspaper!</NOTES>
</ARTICLE>
</NEWSPAPER>
产品目录 DTD
拷贝自:http://www.vervet.com/
<!DOCTYPE CATALOG [
<!ELEMENT CATALOG (PRODUCT+)>
<!ELEMENT PRODUCT
(SPECIFICATIONS+,OPTIONS?,PRICE+,NOTES?)>
<!ATTLIST PRODUCT
NAME CDATA #IMPLIED
CATEGORY (HandTool|Table|Shop-Professional) "HandTool"
PARTNUM CDATA #IMPLIED
PLANT (Pittsburgh|Milwaukee|Chicago) "Chicago"
INVENTORY (InStock|Backordered|Discontinued) "InStock">
<!ELEMENT SPECIFICATIONS (#PCDATA)>
<!ATTLIST SPECIFICATIONS
WEIGHT CDATA #IMPLIED
POWER CDATA #IMPLIED>
<!ELEMENT OPTIONS (#PCDATA)>
<!ATTLIST OPTIONS
FINISH (Metal|Polished|Matte) "Matte"
ADAPTER (Included|Optional|NotApplicable) "Included"
CASE (HardShell|Soft|NotApplicable) "HardShell">
<!ELEMENT PRICE (#PCDATA)>
<!ATTLIST PRICE
MSRP CDATA #IMPLIED
WHOLESALE CDATA #IMPLIED
STREET CDATA #IMPLIED
SHIPPING CDATA #IMPLIED>
<!ELEMENT NOTES (#PCDATA)>
]>
根据需求写出xml文件
<?xml version="1.0" encoding="UTF-8"?>
<!-- 这是一个 产品目录->
<CATALOG>
<PRODUCT NAME="泡泡堂" CATEGORY="HandTool" PARTNUM="pa" PLANT="Chicago" INVENTORY="InStock" >
<SPECIFICATIONS WEIGHT ="10" POWER ="20kg">s1</SPECIFICATIONS>
<SPECIFICATIONS WEIGHT ="10" POWER ="20kg">s2</SPECIFICATIONS>
<OPTIONS FINISH ="Matte" ADAPTER ="Optional" CASE ="HardShell">op1</OPTIONS>
<PRICE MSRP ="ms" WHOLESALE ="who" STREET ="str" SHIPPING ="ship">pr1</PRICE>
<PRICE>pr2</PRICE>
<NOTES>note1</NOTES>
</PRODUCT>
<PRODUCT>
<SPECIFICATIONS>s3</SPECIFICATIONS>
<PRICE>pr3</PRICE>
</PRODUCT>
</CATALOG>