在这个示例中,将演示如何使用+*?的组合。
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>
