DTD教程
来源:互联网 发布:电视盒子市场软件 编辑:程序博客网 时间:2024/04/27 17:29
1- 表示XML的根节点必须为XXX,子节点必须为AAA,BBB
XXX 不能包含文本
AAA,BBB 必须出现,可以包含文本,必须按照顺序出现,不可以出现多次
tutorial.dtd:
<!-- <!ELEMENT XXX (AAA* , BBB)> 表示AAA可以出现0次或多次 -->
<!-- <!ELEMENT XXX (AAA+ , BBB)> 表示AAA可以至少出现1次或多次 -->
<!-- <!ELEMENT XXX (AAA? , BBB)> 表示AAA要出现0次或1次 -->
<!ELEMENT XXX (AAA , BBB)>
<!ELEMENT AAA (#PCDATA)>
<!ELEMENT BBB (#PCDATA)>
XML:
<!DOCTYPE XXX SYSTEM "tutorial.dtd">
<XXX>
<AAA>Start</AAA>
<BBB>End</BBB>
</XXX>
2- 根节点XXX可以包含0个或1个AAA,后跟1个或多个BBB
AAA 可以包含0个或1个CCC,后跟0个或多个DDD
BBB 可以包含1个CCC,后跟1个DDD
<!ELEMENT XXX (AAA? , BBB+)>
<!ELEMENT AAA (CCC? , DDD*)>
<!ELEMENT BBB (CCC , DDD)>
<!-- <!ELEMENT BBB (CCC | DDD)> 可以包含CCC或DDD -->
<!ELEMENT CCC (#PCDATA)>
<!ELEMENT DDD (#PCDATA)>
例子:
<!DOCTYPE XXX SYSTEM "tutorial.dtd">
<XXX>
<AAA>
<CCC/> <DDD/>
</AAA>
<BBB>
<DDD/>
</BBB>
</XXX>
3- BBB 可以包含文本和CCC的任意组合
<!ELEMENT XXX (AAA+ , BBB+)>
<!ELEMENT AAA (BBB | CCC )>
<!ELEMENT BBB (#PCDATA | CCC )*>
<!ELEMENT CCC (#PCDATA)>
例子:
<!DOCTYPE XXX SYSTEM "tutorial.dtd">
<XXX>
<AAA>
<CCC>Precisely one element.</CCC>
</AAA>
<AAA>
<BBB>
<CCC/>
<CCC/>
<CCC/>
</BBB>
</AAA>
<BBB/>
<BBB>
This is <CCC/> a combination <CCC/> of <CCC> CCC elements </CCC> and text <CCC/>.
</BBB>
<BBB>
Text only.
</BBB>
</XXX>
4- CDATA类型的属性可以包含任何字符(if it conforms to well formedness constraints)
属性aaa是必须的 属性bbb是可选的
<!ELEMENT attributes (#PCDATA)>
<!ATTLIST attributes
aaa CDATA #REQUIRED
bbb CDATA #IMPLIED>
例子:
<!DOCTYPE attributes SYSTEM "tutorial.dtd">
<!-- 属性的顺序是没关系的 -->
<attributes bbb="$25" aaa="13%">
Text
</attributes>
5-
<!ELEMENT attributes (#PCDATA)>
<!ATTLIST attributes
aaa CDATA #IMPLIED
bbb NMTOKEN #REQUIRED
ccc NMTOKENS #REQUIRED>
例子:
<!DOCTYPE attributes SYSTEM "tutorial.dtd">
<!-- 错, # is not permitted in attributes of type NMTOKEN and NMTOKENS: -->
<attributes aaa="#d1" bbb="#d1" ccc="#d1"/>
6- 标志为ID的属性必须是唯一的
<!ELEMENT XXX (AAA+ , BBB+ , CCC+)>
<!ELEMENT AAA (#PCDATA)>
<!ELEMENT BBB (#PCDATA)>
<!ELEMENT CCC (#PCDATA)>
<!ATTLIST AAA
id ID #REQUIRED>
<!ATTLIST BBB
code ID #IMPLIED
list NMTOKEN #IMPLIED>
<!ATTLIST CCC
X ID #REQUIRED
Y NMTOKEN #IMPLIED>
7-
<!ELEMENT XXX (AAA+ , BBB+, CCC+, DDD+)>
<!ELEMENT AAA (#PCDATA)>
<!ELEMENT BBB (#PCDATA)>
<!ELEMENT CCC (#PCDATA)>
<!ELEMENT DDD (#PCDATA)>
<!ATTLIST AAA
mark ID #REQUIRED>
<!ATTLIST BBB
id ID #REQUIRED>
<!ATTLIST CCC
ref IDREF #REQUIRED>
<!ATTLIST DDD
ref IDREFS #REQUIRED>
例子:
<!DOCTYPE XXX SYSTEM "tutorial.dtd">
<XXX>
<AAA mark="a1"/>
<AAA mark="a2"/>
<AAA mark="a3"/>
<BBB id="b001" />
<CCC ref="a3" />
<DDD ref="a1 b001 a2" />
</XXX>
8- 明确设置属性允许的值
<!ELEMENT XXX (AAA+, BBB+)>
<!ELEMENT AAA (#PCDATA)>
<!ELEMENT BBB (#PCDATA)>
<!ATTLIST AAA
true ( yes | no ) #REQUIRED>
<!ATTLIST BBB
month (1|2|3|4|5|6|7|8|9|10|11|12) #IMPLIED>
9- 可选属性的默认值
<!ELEMENT XXX (AAA+, BBB+)>
<!ELEMENT AAA (#PCDATA)>
<!ELEMENT BBB (#PCDATA)>
<!ATTLIST AAA
true ( yes | no ) "yes">
<!ATTLIST BBB
month NMTOKEN "1">
10- 只能包含属性,不能包含内容文本
<!ELEMENT XXX (AAA+)>
<!ELEMENT AAA EMPTY>
<!ATTLIST AAA
true ( yes | no ) "yes">
XXX 不能包含文本
AAA,BBB 必须出现,可以包含文本,必须按照顺序出现,不可以出现多次
tutorial.dtd:
<!-- <!ELEMENT XXX (AAA* , BBB)> 表示AAA可以出现0次或多次 -->
<!-- <!ELEMENT XXX (AAA+ , BBB)> 表示AAA可以至少出现1次或多次 -->
<!-- <!ELEMENT XXX (AAA? , BBB)> 表示AAA要出现0次或1次 -->
<!ELEMENT XXX (AAA , BBB)>
<!ELEMENT AAA (#PCDATA)>
<!ELEMENT BBB (#PCDATA)>
XML:
<!DOCTYPE XXX SYSTEM "tutorial.dtd">
<XXX>
<AAA>Start</AAA>
<BBB>End</BBB>
</XXX>
2- 根节点XXX可以包含0个或1个AAA,后跟1个或多个BBB
AAA 可以包含0个或1个CCC,后跟0个或多个DDD
BBB 可以包含1个CCC,后跟1个DDD
<!ELEMENT XXX (AAA? , BBB+)>
<!ELEMENT AAA (CCC? , DDD*)>
<!ELEMENT BBB (CCC , DDD)>
<!-- <!ELEMENT BBB (CCC | DDD)> 可以包含CCC或DDD -->
<!ELEMENT CCC (#PCDATA)>
<!ELEMENT DDD (#PCDATA)>
例子:
<!DOCTYPE XXX SYSTEM "tutorial.dtd">
<XXX>
<AAA>
<CCC/> <DDD/>
</AAA>
<BBB>
<DDD/>
</BBB>
</XXX>
3- BBB 可以包含文本和CCC的任意组合
<!ELEMENT XXX (AAA+ , BBB+)>
<!ELEMENT AAA (BBB | CCC )>
<!ELEMENT BBB (#PCDATA | CCC )*>
<!ELEMENT CCC (#PCDATA)>
例子:
<!DOCTYPE XXX SYSTEM "tutorial.dtd">
<XXX>
<AAA>
<CCC>Precisely one element.</CCC>
</AAA>
<AAA>
<BBB>
<CCC/>
<CCC/>
<CCC/>
</BBB>
</AAA>
<BBB/>
<BBB>
This is <CCC/> a combination <CCC/> of <CCC> CCC elements </CCC> and text <CCC/>.
</BBB>
<BBB>
Text only.
</BBB>
</XXX>
4- CDATA类型的属性可以包含任何字符(if it conforms to well formedness constraints)
属性aaa是必须的 属性bbb是可选的
<!ELEMENT attributes (#PCDATA)>
<!ATTLIST attributes
aaa CDATA #REQUIRED
bbb CDATA #IMPLIED>
例子:
<!DOCTYPE attributes SYSTEM "tutorial.dtd">
<!-- 属性的顺序是没关系的 -->
<attributes bbb="$25" aaa="13%">
Text
</attributes>
5-
<!ELEMENT attributes (#PCDATA)>
<!ATTLIST attributes
aaa CDATA #IMPLIED
bbb NMTOKEN #REQUIRED
ccc NMTOKENS #REQUIRED>
例子:
<!DOCTYPE attributes SYSTEM "tutorial.dtd">
<!-- 错, # is not permitted in attributes of type NMTOKEN and NMTOKENS: -->
<attributes aaa="#d1" bbb="#d1" ccc="#d1"/>
6- 标志为ID的属性必须是唯一的
<!ELEMENT XXX (AAA+ , BBB+ , CCC+)>
<!ELEMENT AAA (#PCDATA)>
<!ELEMENT BBB (#PCDATA)>
<!ELEMENT CCC (#PCDATA)>
<!ATTLIST AAA
id ID #REQUIRED>
<!ATTLIST BBB
code ID #IMPLIED
list NMTOKEN #IMPLIED>
<!ATTLIST CCC
X ID #REQUIRED
Y NMTOKEN #IMPLIED>
7-
<!ELEMENT XXX (AAA+ , BBB+, CCC+, DDD+)>
<!ELEMENT AAA (#PCDATA)>
<!ELEMENT BBB (#PCDATA)>
<!ELEMENT CCC (#PCDATA)>
<!ELEMENT DDD (#PCDATA)>
<!ATTLIST AAA
mark ID #REQUIRED>
<!ATTLIST BBB
id ID #REQUIRED>
<!ATTLIST CCC
ref IDREF #REQUIRED>
<!ATTLIST DDD
ref IDREFS #REQUIRED>
例子:
<!DOCTYPE XXX SYSTEM "tutorial.dtd">
<XXX>
<AAA mark="a1"/>
<AAA mark="a2"/>
<AAA mark="a3"/>
<BBB id="b001" />
<CCC ref="a3" />
<DDD ref="a1 b001 a2" />
</XXX>
8- 明确设置属性允许的值
<!ELEMENT XXX (AAA+, BBB+)>
<!ELEMENT AAA (#PCDATA)>
<!ELEMENT BBB (#PCDATA)>
<!ATTLIST AAA
true ( yes | no ) #REQUIRED>
<!ATTLIST BBB
month (1|2|3|4|5|6|7|8|9|10|11|12) #IMPLIED>
9- 可选属性的默认值
<!ELEMENT XXX (AAA+, BBB+)>
<!ELEMENT AAA (#PCDATA)>
<!ELEMENT BBB (#PCDATA)>
<!ATTLIST AAA
true ( yes | no ) "yes">
<!ATTLIST BBB
month NMTOKEN "1">
10- 只能包含属性,不能包含内容文本
<!ELEMENT XXX (AAA+)>
<!ELEMENT AAA EMPTY>
<!ATTLIST AAA
true ( yes | no ) "yes">
- DTD教程
- DTD教程
- DTD教程
- xml教程之dtd约束
- XML语言学习2---方立勋教程DTD
- DTD、
- DTD
- DTD
- DTD
- dtd
- DTD
- DTD
- DTD
- DTD
- dtd
- DTD
- DTD
- DTD
- 基于MyEclipse6.5的SSH整合
- 不可不读的绝对英文经典
- 职场新人:12件永不该做的事
- 量子物理学家延伸微机电设备的摩尔定律(ZT)
- 一个ASP连接数据库的函数
- DTD教程
- asp连接带有密码的access
- 将access数据库导入到sqlserver中的方法
- asp连接access数据库代码
- 经典英文爱情句子10条
- 图形显示
- ASP连接各种数据库的代码
- IP视频监控系统设计要点和考量因素
- 用ProxyFactoryBean创建AOP代理