体系使用宣言処理指令

体系使用宣言処理指令

[3] 体系使用宣言処理指令 (architecture use declaration processing instruction) (arch 処理指令) は、 体系使用宣言処理指令版です。データ属性指定が使用できない XML体系を使用するために使用されています。

仕様

[1]

[2]

によれば、 Amd.1 の project は cancel されてしまっているようです。

構文

[5] 体系使用宣言処理指令は、 N1985 では次のように定義されています。

N1957 では、

と定義されていました。しかし、 :NCName で使えないので XML名前空間的にまずいため (という理由でしょう)、 削除されています。 (ところが実際に使われている文書は : のものがかなりあり (例: XHTML m12n)、 XML名前空間な環境下で問題になっています。)

[6] 体系使用宣言処理指令は、記法データ属性が使用できないときに、 体系使用宣言の代わりに使うことができます。

[7] 体系使用宣言処理指令は、 SGML文書前書きに書くことができます。 (文書型宣言連結型宣言の内部を含みます。) ある体系に関する宣言が複数ある場合は、最初のものが使われます。 体系使用宣言処理指令を使う場合は、体系基底宣言を省略できます。

[12] IS10744arch や属性指定並びの部分は、 使用している具象構文の影響を受けるのでしょうか? (そうだとすると、規格参照量集合などを使っているとすべての属性を指定することができなくなります。)

属性

[8] 体系使用宣言処理指令には、次の属性を指定します。

体系記法宣言相当:

name
体系名
public-id
体系仕様文書公開識別子

体系実体宣言相当:

dtd-public-id
体系的DTD公開識別子
dtd-system-id
体系的DTDシステム識別子

体系支援属性相当:

form-att
体系的形式属性名
renamer-att
体系的属性改名子属性名
suppressor-att
体系抑制子属性名
ignore-data-att
体系無視データ属性名
doc-elem-form
体系文書要素形式名
bridge-form
体系橋梁形式名
data-form
体系データ形式名
auto
体系自動形式写像
options
体系選択肢支援属性名
quantity
体系量集合 (属性値量名の組でなければなりません。)

仕様書上は明確ではありませんが、体系支援属性定義並び宣言同様、 体系ごとの独自の体系支援属性も同様に指定できるようです。

実装

[4] XML に対応した各種の体系処理器が、体系使用宣言処理指令にも対応しているようです。

[9] Topic Maps を使用する場合 ISO/IEC 13250:2000

<?IS10744:arch
   name="TopicMap"
   public-id="ISO/IEC 13250:2000//NOTATION AFDR ARCBASE
              Topic Maps//EN"
   dtd-public-id="ISO/IEC 13250:2000//DTD AFDR Meta-DTD
                  Topic Maps//EN"
   dtd-system-id="/etc/architectures/TM.mtd"
   form-att="TopicMap"
   renamer-att="TMNames"
   suppressor-att="sTopMap"
   ignore-data-att="TMIgnD"
   doc-elem-form="topicmap"
   bridge-form="TMBrid"
   auto="nArcAuto"
?>

この例は、次の体系使用宣言と同等です。

<!-- 体系記法宣言 -->
<!NOTATION TOPICMAP
   PUBLIC "ISO/IEC 13250:2000//NOTATION AFDR ARCBASE
           Topic Maps//EN"
>

<!-- 体系支援属性 -->
<!ATTLIST #NOTATION TOPICMAP
   ArcFormA NAME     TopicMap
   ArcNamrA NAME     TMNames
   ArcSuprA NAME     sTopMap
   ArcIgnDA NAME     TMIgnD
   ArcDocF  NAME     #FIXED topicmap
   ArcDTD   CDATA    "TMDTD"
   ArcQuant CDATA    #FIXED "NAMELEN 12"
   ArcDataF NAME     #FIXED TMBridN
   ArcBridF NAME     #FIXED TMBrid
   ArcAuto  (ArcAuto|nArcAuto) nArcAuto
>

<!NOTATION AFDRMeta
   PUBLIC "ISO/IEC 10744//NOTATION AFDR Meta-DTD Notation//EN"
>

<!-- 体系的 DTD 実体宣言 -->
<!ENTITY TMDTD
   PUBLIC "ISO/IEC 13250:2000//DTD AFDR Meta-DTD
           Topic Maps//EN"
   CDATA AFDRMeta
>

[10] ISO-HTML を使用する場合 ISO/IEC 15445:2000

<?IS10744
  arch name="html"
  public-id="ISO/IEC 15445:2000//DTD HyperText Markup Language//EN"
  dtd-system-id="ftp://ftp.cs.tcd.ie/isohtml/15445.dtd"
  renamer-att="HTMLnames"
  doc-elem-form="HTML"
>

[11] XHTML 1 を使用する例 XHTML m12n DTD 実装

<?IS10744:arch xhtml
    public-id       =  "-//W3C//NOTATION AFDR ARCBASE XHTML 1.1//EN"
    dtd-public-id   =  "-//W3C//DTD XHTML 1.1//EN"
    dtd-system-id   =  "xhtml11.dtd"
    doc-elem-form   =  "html"
    form-att        =  "html"
    renamer-att     =  "htnames"
    suppressor-att  =  "htsupp"
    data-ignore-att =  "htign"
    auto            =  "ArcAuto"
    options         =  "HtModReq HtModOpt"
    HtModReq        =  "Framework Text Hypertext Lists Structure"
    HtModOpt        =  "Standard"
?>

name属性になっていませんが、 古い案ではこういう構文だったこともあるのでしょうか?

HtModReq 属性と HtModOpt 属性は、 体系選択肢支援属性名 (options) 属性に書かれている通り、 XHTML m12n 独自の体系選択肢属性です。 但し、 XHTML m12n では Text のような名前引数実体を使っていませんから、 こんなので意味があるのかどうか。

メモ