DTD示例6

DTD示例6

在这个示例中,将演示如何使用+*?的组合。

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必须包含元素CCCDDD

<!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>