DTD示例7

使用|带字符,可以从几个元素中选择一个。

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/>
   </BBB>
</XXX>

下面是另一个有效的文档 -

<!DOCTYPE XXX SYSTEM tutorial.dtd>

<XXX>
   <AAA>
      <CCC/> <DDD/>
   </AAA>
   <BBB>
      <DDD/>
   </BBB>
</XXX>

有错误的文件

元素BBB可以包含元素CCCDDD,但不能同时包含:

<!DOCTYPE XXX SYSTEM tutorial.dtd>

<XXX>
   <AAA>
      <CCC/> <DDD/>
   </AAA>
   <BBB>
      <CCC/> <DDD/>
   </BBB>
</XXX>

上面示例代码中,因为同时包含元素CCCDDD,所以是错误的。

元素BBB可以包含元素CCCDDD,但不能同时包含:

<!DOCTYPE XXX SYSTEM tutorial.dtd>

<XXX>
   <AAA>
      <CCC/> <DDD/>
   </AAA>
   <BBB>
      <DDD/> <CCC/>
   </BBB>
</XXX>