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>