附属書B DTDの例

次のDTDでは,本規定が振舞いを規定していないすべてのXLink構成要素は,無効とする。これは,アプリケーション開発者の利便性だけのために用意されており,参考とする。

このDTDは,次の仮定に基づいている。

  • XLinkで定義された意味をもつ構成要素だけが許される。

  • DTDは名前空間と一緒にすると適切に動作しないので,"外部からの"語彙は混在しない。

  • ANYの使用は,何らかの方法でXLinkが使用する要素の中で提供される内容が通常は存在することを意味する。

  • (title*)構成要素の使用は,提供される非title内容がXLinkが定義しない使用法をもつことを意味する。

  • 要素は,それが表すXLink要素型に基づいて命名される。

他の仮定及び条件は,DTDの中に注釈として示す。

<!ELEMENT simple ANY>
<!ATTLIST simple
   xlink:type      (simple)        #FIXED "simple"
   xlink:href      CDATA           #IMPLIED
   xlink:role      CDATA           #IMPLIED
   xlink:arcrole   CDATA           #IMPLIED
   xlink:title     CDATA           #IMPLIED
   xlink:show      (new
                   |replace
                   |embed
                   |other
                   |none)          #IMPLIED
   xlink:actuate   (onLoad
                   |onRequest
                   |other
                   |none)          #IMPLIED>

<!ELEMENT extended ((title|resource|locator|arc)*)>
<!ATTLIST extended
   xmlns:xlink     CDATA           #FIXED "http://www.w3.org/1999/xlink"
   xlink:type      (extended)      #FIXED "extended"
   xlink:role      CDATA           #IMPLIED
   xlink:title     CDATA           #IMPLIED>

<!ELEMENT title ANY>
<!-- xml:lang is not required, but provides much of the motivation
      for title elements in addition to attributes, and so is provided
      here for convenience -->
<!ATTLIST title
   xlink:type      (title)         #FIXED "title"
   xml:lang        CDATA           #IMPLIED>

<!ELEMENT resource ANY>
<!ATTLIST resource
   xlink:type      (resource)      #FIXED "resource"
   xlink:role      CDATA           #IMPLIED
   xlink:title     CDATA           #IMPLIED
   xlink:label     NMTOKEN         #IMPLIED>

<!ELEMENT locator (title*)>
<!-- label is not required, but locators have no particular XLink 
     function if they are not labeled -->
<!ATTLIST locator
   xlink:type      (locator)       #FIXED "locator"
   xlink:href      CDATA           #REQUIRED
   xlink:role      CDATA           #IMPLIED
   xlink:title     CDATA           #IMPLIED
   xlink:label     NMTOKEN         #IMPLIED>

<!ELEMENT arc (title*)>
<!-- from and to have default behavior when values are missing -->
<!ATTLIST arc
   xlink:type      (arc)           #FIXED "arc"
   xlink:arcrole   CDATA           #IMPLIED
   xlink:title     CDATA           #IMPLIED
   xlink:show      (new
                   |replace
                   |embed
                   |other
                   |none)          #IMPLIED
   xlink:actuate   (onLoad
                   |onRequest
                   |other
                   |none)          #IMPLIED
   xlink:from      NMTOKEN         #IMPLIED
   xlink:to        NMTOKEN         #IMPLIED>