在这个示例中,将演示如何使用+*?
的组合。
DTD
根元素XXX
可以包含一个元素AAA
,后跟一个或多个元素BBB
。 元素AAA
可以包含一个元素CCC
和几个元素DDD
。 元素BBB
必须只能包含一个元素CCC
和一个元素DDD
:
<!ELEMENT XXX (AAA? , BBB+)> <!ELEMENT AAA (CCC? , DDD*)> <!ELEMENT BBB (CCC , DDD)> <!ELEMENT CCC (#PCDATA)> <!ELEMENT DDD (#PCDATA)>
有效的文档
下面是一个有效的文档示例 -
<!DOCTYPE XXX SYSTEM "tutorial.dtd"> <XXX> <AAA> <CCC/><DDD/> </AAA> <BBB> <CCC/><DDD/> </BBB> </XXX>
AAA
中的子元素不是强制性的:
<!DOCTYPE XXX SYSTEM "tutorial.dtd"> <XXX> <AAA/> <BBB> <CCC/><DDD/> </BBB> </XXX>
元素AAA
也可以省略:
<!DOCTYPE XXX SYSTEM "tutorial.dtd"> <XXX> <BBB> <CCC/><DDD/> </BBB> </XXX>
无效的文档
元素BBB
必须包含元素CCC
和DDD
:
<!DOCTYPE XXX SYSTEM "tutorial.dtd"> <XXX> <AAA/> <BBB/> </XXX>
元素AAA
最多可以包含一个元素CCC
:
<!DOCTYPE XXX SYSTEM "tutorial.dtd"> <XXX> <AAA> <CCC/><CCC/> <DDD/><DDD/> </AAA> <BBB> <CCC/><DDD/> </BBB> </XXX>