8
X 4158 : 2005
附属書A(参考) XML名前空間の内部構造
この附属書は,本体及び附属書に関連する事柄を補足するもので,規定の一部ではない。
A.1 従来の名前空間の不十分さ 計算処理分野において,“名前空間”という用語は,慣用的に名前の集
合,すなわち重複を含まない集まりを指す。しかし,XMLマーク付けの中で使う名前をこの名前空間とし
て扱うことは,その有用性を著しく損なうことになる。XML文書の中でこれら名前を使用する主な目的は,
問合せ用処理系,スタイルシートを参照するレンダリングエンジン,スキーマを参照して妥当性を検証す
るプロセサなどのソフトウェアモジュールによって,文書の論理的構造の識別を可能とすることにある。
次に例を示す。
<section><title>Book-Signing Event</title>
<signing>
<author title="Mr" name="Vikram Seth" />
<book title="A Suitable Boy" price="$22.95" /></signing>
<signing>
<author title="Dr" name="Oliver Sacks" />
<book title="The Island of the Color-Blind" price="$12.95" /></signing>
</section>
この例では,マーク付けの中にtitleという名前が3回出現し,明らかに名前だけでは,ソフトウェアモ
ジュールが正しい処理を行えるための十分な情報が提供されていない。
他の問題となる領域は,次の例が示すとおり,“大域的”な属性の利用に由来する。この例は,CSSス
タイルシートを使って表示されるXML文書の断片である。
<RESERVATION>
<NAME HTML:CLASS="largeSansSerif">Layman, A</NAME>
<SEAT CLASS="Y" HTML:CLASS="reallyImportant">33B</SEAT>
<DEPARTURE>1997-05-24T07:55:00+1</DEPARTURE></RESERVATION>
この場合,CLASS属性は,運賃の基準を示し,"J","Y"及び"C"という値をとり,あらゆるセマンティ
クスのレベルにおいて,HTML:CLASS 属性とは区別される。HTML:CLASSの方は,限定的な要素レパー
トリをサブクラス化によって克服する手段として,HTMLにおける構文的な豊富さをシミュレートするた
めに用いている。
XML1.0は,“大域的”属性を宣言するための組込みの方法を提供しない。HTMLのCLASS属性などの
項目は,その自然言語の記述及びHTML応用プログラムによる解釈だけにおいて大域的となる。しかし,
それらの属性は,名前が一意的であるという他とは違う重要な特徴をもち,多様な応用プログラムで共通
的に出現する。
――――― [JIS X 4158 pdf 11] ―――――
9
X 4158 : 2005
A.2 XML名前空間の区画 修飾された名前及び修飾されない名前の両方を,その意図する目的に見合う
という点で役立つものとするために,XML名前空間の中に出現する名前を,名前空間の区画という幾つか
の共通部分をもたない従来の(すなわち集合構造の)名前空間の一つに属するものとして識別する。ここで,
区画は次による。
a) すべての要素型を含む区画 あるXML名前空間の中の要素型は,すべてこの区画の中に出現する。
それぞれは,一意な局所名をもつ。名前空間名と局所名との組合せが,要素型を一意に識別する。
b) 大域的な属性を含む区画 この区画は,この名前空間の中で大域的なものとして定義される属性すべ
ての名前を含む。大域的な属性に要求されるただ一つの特徴は,その名前が大域的な属性を含む区画
において一意的となることとする。この規格では,それら属性の適正な利用法に関して何も示さない。
名前空間名と属性名との組合せは,大域的な属性を一意に識別する。
c) 要素型ごとの区画 すべての要素型を含む区画における型はそれぞれ,その要素のために提供された
修飾されない属性の名前が出現する一つの関連付けられた名前空間をもつ。一つの要素上に属性名が
重複して出現することは,XML 1.0によって禁止されるので,これは従来の名前空間となる。要素型
付き属性名と名前空間名との組合せで,一意に,修飾されない各属性を識別する。
この規格に適合するXML文書では,すべての修飾された(接頭辞付きの)属性の名前は,大域的な属性を
含む区画に割り当てられ,すべての修飾されない属性の名前は,適切な要素型ごとの区画に割り当てられ
る。
A.3 展開された要素型及び属性名 規則を指定し比較を行うときの便宜のために,XML文書のそれぞれ
の要素型及び属性名に対して,要素構文で表される展開形式を定義する。
展開された要素型は,型ExpETypeの内容をもたないXML要素として表現する。これは,その型の
LocalPartを与える一つの必す(須)なtype属性と,要素が修飾されている場合にその名前空間名を与える一
つの省略可能なns属性とをもつ。
展開された属性名は,型ExpANameの内容をもたないXML要素として表現する。これは,名前を与え
る一つの必す(須)なname属性をもつ。属性が大域的である場合には,名前空間名を与える一つの必す(須)
なns属性をもつ。大域的でない場合には,属性が指定された要素の型を与える一つの必す(須)なeltype属
性と,属性が指定された要素の名前空間名を与える一つの省略可能なelns属性とをもつ(この名前空間名
が知られているときに限る)。
前例をもとに若干の変形を行うことによって,展開された要素型及び属性名の動作を示す。次の二つの
XML記述例に続けて,それぞれ名前の展開を示す表を与える。
<!-- 1 --> <section xmlns='urn:com:books-r-us'>
<!-- 2 --><title>Book-Signing Event</title>
<!-- 3 --> <signing>
<!-- 4 --> <author title="Mr" name="Vikram Seth" />
<!-- 5 --> <book title="A Suitable Boy" price="$22.95" />
</signing>
</section>
――――― [JIS X 4158 pdf 12] ―――――
10
X 4158 : 2005
名前は,次のとおりに展開される。
行 名前 展開後
1 section <ExpEType type="section" ns="urn:com:books-r-us" />
2 title <ExpEType type="title" ns="urn:com:books-r-us" />
3 signing <ExpEType type="signing" ns="urn:com:books-r-us" />
4 author <ExpEType type="author" ns="urn:com:books-r-us" />
5 title <ExpAName name='title' eltype="author" elns="urn:com:books-r-us" />
4 name <ExpAName name='name' eltype="author" elns="urn:com:books-r-us" />
5 book <ExpEType type="book" ns="urn:com:books-r-us" />
5 title <ExpAName name='title' eltype="book" elns="urn:com:books-r-us" />
5 price <ExpAName name='price' eltype="book" elns="urn:com:books-r-us" />
<!-- 1 --> <RESERVATION xmlns:HTML="http://www.w3.org/TR/REC-html40">
<!-- 2 --> <NAME HTML:CLASS="largeSansSerif">Layman, A</NAME>
<!-- 3 --> <SEAT CLASS="Y" HTML:CLASS="largeMonotype">33B</SEAT>
<!-- 4 --> <HTML:A HREF='/cgi-bin/ResStatus'>Check Status</HTML:A>
<!-- 5 --> <DEPARTURE>1997-05-24T07:55:00+1</DEPARTURE></RESERVATION>
1 RESERVATION <ExpEType type="RESERVATION" />
2 NAME <ExpEType type="NAME" />
2 HTML:CLASS <ExpAName name="CLASS" ns="http://www.w3.org/TR/REC-html40" />
3 SEAT <ExpEType type="SEAT" />
3 CLASS <ExpAName name="CLASS" eltype="SEAT" />
3 HTML:CLASS <ExpAName name="CLASS" ns="http://www.w3.org/TR/REC-html40" />
4 HTML:A <ExpEType type="A" ns="http://www.w3.org/TR/REC-html40" />
4 HREF <ExpAName name="HREF" eltype="A" elns="http://www.w3.org/TR/REC-html40" />
5 DEPARTURE <ExpEType type="DEPARTURE" />
A.4 展開された属性名の一意性 本体5.2で示した制約は,ある要素の二つの属性が等価な展開名をもつ
ことはない(すなわち,属性及び値の対が一致することはない。)ことを要求することによって容易に実装
できる。
――――― [JIS X 4158 pdf 13] ―――――
11
X 4158 : 2005
附属書B(参考) W3CのNamespaces in XML勧告作成貢献者
この附属書は,本体及び附属書に関連する事柄を補足するもので,規定の一部ではない。
XML名前空間の作業は,非常に多くの人々からの入力を反映したものである。これには,特に,W3C XML
作業グループ及び特定関係者グループのメンバ,並びにW3Cメタデータ活動の参加者が含まれる。
MicrosoftのCharles Frankstonの貢献は,特に貴重であった。
――――― [JIS X 4158 pdf 14] ―――――
12
X 4158 : 0000 解説
附属書C(規定) 引用規定
IETF RFC 2141, URN Syntax, 1997-5
参考 このIETF RFCはhttp://www.ietf.org/rfc/rfc2141.txtから入手可能である。
IETF RFC 2396, Uniform Resource Identifiers (URI): Generic Syntax, 1998-08
備考 TS X 0097:2003 統一資源識別子(URI)共通構文が,このIETF RFCに一致している。
参考 このIETF RFCはhttp://www.ietf.org/rfc/rfc2396.txtから入手可能である。
JIS X 4159:2005 拡張可能なマーク付け言語(XML)1.0
備考 W3C勧告,Extensible Markup Language (XML) 1.0 (Third Edition),2004年2月4日が,この規格
に一致している。
参考 このW3C勧告はhttp://www.w3.org/TR/2004/REC-xml-20040204から入手可能である。
解0
JIS X 4158:2005の国際規格 ICS 分類一覧
- 35 : 情報技術.事務機械 > 35.060 : 情報技術に使用される言語
- 35 : 情報技術.事務機械 > 35.040 : 文字セット及び符号化
JIS X 4158:2005の関連規格と引用規格一覧
- 規格番号
- 規格名称