日本工業規格(日本産業規格) JIS
X 4159 : 2005
拡張可能なマーク付け言語 (XML) 1.0
Extensible Markup Language (XML)1.0
序文 この規格は,2004年2月に3rd EditionとしてWorld Wide Web Consortium(W3C)から公表された勧告
Extensible Markup Language (XML)1.0を翻訳し,技術的内容を変更することなく作成した日本工業規格(日本産業規格)であ
る。
なお,この規格で側線又は点線の下線を施してある箇所は,原勧告に編集上の変更をしている事項又は
原勧告にない参考である。
1. 一般
1.0 適用範囲 この規格[拡張可能なマーク付け言語XML(Extensible Markup Language)]は,XML文書
というデータオブジェクトのクラスを規定し,XML文書を処理するプログラムの動作の一部を規定する。
XMLは,JIS X 4151:1992[SGML(Standard Generalized Markup Language)]の制限したサブセットとする。
XML文書は,必ずSGML規格に適合する。
XML文書は実体という記憶単位から成り,実体は構文解析されるデータ又は構文解析されないデータか
ら成る。構文解析されるデータは,文字から成り,その一部は文字データを構成し,一部はマーク付けを
構成する。マーク付けは,文書の記憶レイアウト及び論理構造を記述する符号とする。XMLは,記憶レイ
アウト及び論理構造についての制約条件を記述する機構を提供する。
XMLプロセサというソフトウェアモジュールは,XML文書を読み込み,その内容及び構造へのアクセ
スを提供するために用いる。 XMLプロセサは,他のモジュールのために動作することを前提としており,
そのモジュールを応用プログラムという。この規格は,XMLプロセサに要求される振る舞いを規定する。
つまり,XMLデータの読込み方法を規定し,応用プログラムに提供する情報を規定する。
1.1 経緯及び目標 1996年にWorld Wide Web Consortium(W3C)の中に設立されたXML作業グループ(以
前は,SGML編集レビュー委員会と呼ばれた。)がXMLを開発した。この作業グループの議長を,Sun
MicrosystemsのJon Bosakが務めた。W3Cが組織し,以前はSGML作業グループと呼ばれたXML SIG(Special
Interest Group)も,XMLの制定に活発に参画した。XML作業グループのメンバを附属書Gに示す。Dan
Connollyは,作業グループとW3Cとの調整役を務めた。
XMLの設計目標を次に示す。
a) MLは,インタネット上でそのまま使用できる
b) MLは,広範囲の応用プログラムを支援する。
c) MLは,SGMLと互換性をもつ。
d) ML文書を処理するプログラムは容易に書ける。
e) MLでは,任意選択の機能はできるだけ少なくし,理想的には一つも存在しない。
f) XML文書は,人間にとって読みやすく,十分に理解しやすいことが望ましい。
――――― [JIS X 4159 pdf 6] ―――――
2
X 4159 : 2005
g) MLの設計は,すみやかに行うことが望ましい。
h) MLの設計は,厳密で,しかも簡潔なものとする。
i) XML文書は,容易に作成できる。
j) XMLでは,マーク付けの数を減らすことは重要ではない。
XML第1.0版を理解し,それを処理する計算機プログラムを書くために十分な情報は,この規格,関連
する規格など(文字についてはUnicode及びJIS X 0221-1,言語識別タグについてはIETF RFC 3066,言語
コードについてはISO 639,並びに国名コードについてはJIS X 0304。)によってすべて示す。
参考 この版のXMLの原規定は,テキスト及び法律上の注意を一切改変しない限り,自由に配布し
てもよい。
1.2 定義
1.2.1 用語定義 XML文書を規定するために使用する用語は,この規格内で定義する。次に示す語句は,
それらの用語を定義するため,及びXMLプロセサの動きを規定するために使用する。
1.2.1.1 誤り(error) この規格が規定する規則に対する違反。結果は定義しない。適合するソフトウェアは,
誤りを検出して報告してもよく,誤りから回復してもよい。
1.2.1.2 致命的誤り(fatal error) 適合するXMLプロセサが検出し,応用プログラムに報告しなければなら
ない誤り。プロセサは,致命的な誤りを発見したあとも,それ以降の誤りを探すためにデータ処理を続行
し,見つかった誤りを応用プログラムに報告してもよい。誤り訂正をサポートするために,プロセサは,
処理していないデータ(文字データ及びマーク付けの混在したもの。)を文書から取り出し,応用プログラ
ムに渡してもよい。しかし,プロセサは,致命的な誤りを1度でも検出したならば,通常の処理を続行し
てはならない。つまり,プロセサは,文字データと文書の論理構造についての情報とを,通常の方法で応
用プログラムに渡し続けてはならない。
1.2.1.3 利用者の任意選択によっては(at user option) 適合するソフトウエアは,記述されたとおりに振る
舞ってもよい(may),又は振る舞わなくてはならない(must)(文中の助動詞による。)。そのとおりに振る舞
う場合は,記述された振る舞いを選択又は拒否する手段を利用者に提供しなければならない。
1.2.1.4 妥当性制約(validity constraint) すべての妥当な XML文書に適用する規則。妥当性制約への違反
は,誤りとする。利用者の任意選択によっては,検証を行うXMLプロセサは,この誤りを報告しなけれ
ばならない。
1.2.1.5 整形式制約(well-formedness constraint) すべての整形式のXML文書に適用する規則。整形式制約
への違反は致命的な誤りとする。
1.2.1.6 マッチする(match) (文字列又は名前がマッチする)比較する二つの文字列又は名前は,同一でなけ
ればならない。JIS X 0221-1において,複数の表現が可能な文字[例えば,合成形式及び基底文字+ダイア
クリティカルマーク(ダイアクリティカルマーク)形式]は,いずれの文字列も同じ表現のときに限り,マ
ッチする。比較のとき ,大文字と小文字との区別をする。(文字列と文法中の規則とがマッチする)ある生
成規則から生成する言語に,ある文字列が属するとき,この文字列は,この生成規則にマッチするという。
(内容と内容モデルとがマッチする)ある要素が,制約[妥当性制約: 要素の妥当性]に示す意味で宣言に適合
するとき,この要素は,マッチするという。
1.2.1.7 互換性のためには(for compatibility) MLの機能であって,XMLがSGMLと互換であることを保
証するためだけに導入されるものについて記述する文を示す。
1.2.1.8 相互運用性のためには(for interoperability) 拘束力はもたない推奨事項について記述する文を示
す。ISO 8879へのWebSGML適用附属書以前から存在するSGMLプロセサが,XML文書を処理できる可
――――― [JIS X 4159 pdf 7] ―――――
3
X 4159 : 2005
能性を高めるために,これらの推奨事項を取り入れる。
1.2.2 用語遣い
1.2.2.1 してもよい(may) 適合する文書又はXMLプロセサは,記述されたとおりに動作してもよいが,そ
のとおりにする必要はない。
1.2.2.2 しなければならない(must) 適合する文書又はXMLプロセサは,記述されたとおりに動作するこ
とが要求される。そうでなければ,誤りとする。
2. 文書 この規格で定義する意味で,整形式のデータオブジェクトをXML文書という。整形式のXML
文書が,ある制約条件を満足すれば,妥当なXML文書という。
XML文書は,論理構造及び物理構造をもつ。物理的には,文書は,実体という単位からなる。実体が他
の実体を参照すれば,参照された実体も文書の一部になる。文書は,“ルート”すなわち文書実体から始ま
る。論理的には,文書は,宣言・要素・コメント・文字参照・処理命令を含み,これらすべては,文書内
で明示的なマーク付けによって示す。論理構造及び物理構造は,4.3.2 整形式の解析対象実体に示すとお
りに,厳密に入れ子になっていなければならない。
2.1 整形式のXML文書 あるテキストオブジェクトが,次の条件を満たすとき,そのテキストオブジ
ェクトを整形式のXML文書と呼ぶ。
a) 全体として,documentというラベルをもつ生成規則にマッチする。
b) この規格で定義するすべての整形式制約に従う。
c) 文書内で直接的又は間接的に参照されるそれぞれの解析対象実体 が整形式となる。
文書
[1] document ::= prolog element Misc*
生成規則documentにマッチするとは,次を意味する。
a) 一つ以上の要素を含む。
b) ルート又は文書要素という要素が一つだけ存在し,これは,他の要素の内容に含まれない。 これ以外
のすべての要素は,その開始タグが他の要素の内容に含まれれば,対応する終了タグも同じ要素の内
容に含まれる。つまり,要素は,開始タグ及び終了タグによって区切られ,入れ子構造をなす。
これらの結果として,文書内のどの非ルート要素Cに対しても,ある要素Pが存在し,Cは,Pの内容
に含まれるが,Pの内容に含まれる他の要素に含まれることはない。このとき,PをCの親といい,CをP
の子という。
2.2 文字 解析対象実体は,テキスト(文字の並びであって,マーク付け又は文字データを表す。)を含む。
文字は,テキストの最小単位であって,JIS X 0221-1:2001に規定されている。使用できる文字は,タブ・
復帰・改行・(Unicode及びJIS X 0221-1に規定する)文字とする。 附属書A 文献のA.1 引用規定で引用さ
れるこれらの規格の版は,この規格の原勧告が作成された時点で最新のものとする。補遺又は新版によっ
て,これらの規格には新しい文字が追加されることがある。したがって,XMLプロセサは,Charで指定し
た範囲のすべての文字を受け付けなければならない。
文字の範囲
[2] Char ::= #x9 | #xA | #xD | [#x20-#xD7FF] | [#xE000-#xFFFD] | [#x10000-#x10FFFF]
――――― [JIS X 4159 pdf 8] ―――――
4
X 4159 : 2005
文字符号位置をビットパタンに符号化する機構は,実体ごとに違ってもよい。すべてのXMLプロセサ
は,Unicode 3.1 のUTF-8符号化及びUTF-16符号化を受け付けなければならない。二つのどちらが用いら
れているかを明示するため又は他の符号化を利用するための機構は,4.3.3 実体における文字符号化に記
述する。
備考 文書作成者は,Unicodeの6.8(Unicode3の3.6のD21も参照すること。)で定義される互換文字を
避けることが推奨される。次の範囲に定義される文字も避けることが推奨される。これらは,制御
文字であるか又は永久に定義されないUnicode文字であるかのどちらかとする。
[#x7F-#x84], [#x86-#x9F], [#xFDD0-#xFDDF],
[#x1FFFE-#x1FFFF], [#x2FFFE-#x2FFFF], [#x3FFFE-#x3FFFF],
[#x4FFFE-#x4FFFF], [#x5FFFE-#x5FFFF], [#x6FFFE-#x6FFFF],
[#x7FFFE-#x7FFFF], [#x8FFFE-#x8FFFF], [#x9FFFE-#x9FFFF],
[#xAFFFE-#xAFFFF], [#xBFFFE-#xBFFFF], [#xCFFFE-#xCFFFF],
[#xDFFFE-#xDFFFF], [#xEFFFE-#xEFFFF], [#xFFFFE-#xFFFFF],
[#x10FFFE-#x10FFFF].
2.3 共通の構文構成子 この章では,文法内で広く使用する幾つかの記号を定義する。
S (空白)は,一つ以上のスペース文字(#x20),復帰,改行又はタブから成る。
空白
[3] S ::= (#x20 | #x9 | #xD | #xA)+
参考 直前の生成規則に#xDが含まれているのは,First Editionとの後方互換性だけを目的としている。
2.11で説明されているとおり,XML文書中にそのまま現れる#xD文字すべては,削除されるか
#xA文字によって置き換えられた後に他の処理が適用される。この規則にマッチする#xD文字
を得る唯一の方法は,実体値リテラルにおいて文字参照を用いることとする。
便宜上,文字を,字(letter)・数字・他の文字に分類する。一つの字(letter)は,アルファベット的若しくは
音節文字である基底文字又は漢字のような文字とする。各クラスにおける実際の文字についての完全な定
義は,附属書B 文字クラスに示す。
Nameは,字(letter)又は幾つかの区切り文字の一つで始まり,その後に字(letter),数字,ハイフン,下線,
コロン又はピリオドが続く。これらの文字を名前文字という。文字列"xml"で始まる名前,又は正規表現
(('X'|'x') ('M'|'m') ('L'|'l'))にマッチする任意の文字列で始まる名前は,この規格の現在の版又は将来の版での
標準化のために予約する。
備考 XML名前空間勧告(TR X 0023)は,コロン文字を含む名前に意味を与えている。そのため作者
は,名前空間の用途以外で名前にコロンを使用しないことが望ましい。XMLプロセサは,コロ
ンを名前文字として受け付けなければならない。
Nmtoken(名前トークン)は,名前文字の列とする。
名前及びトークン
――――― [JIS X 4159 pdf 9] ―――――
5
X 4159 : 2005
[4] NameChar ::= Letter | Digit | '.' | '-' | '' | ':' | CombiningChar | Extender
[5] Name ::= (Letter | '' | ':') (NameChar)*
[6] Names ::= Name (S Name)*
[7] Nmtoken ::= (NameChar)+
[8] Nmtokens ::= Nmtoken (S Nmtoken)*
備考 生成規則Names及び Nmtokensは,トークン化された属性値が正規化されたあとの妥当性を定義
するために使用する(3.3.1 属性の型を参照すること。)。
リテラルデータは,引用符で囲まれた文字列とし,その列を区切る引用符は含まない。リテラルは,内
部実体の内容(EntityValue),属性値(AttValue),外部識別子(SystemLiteral)の指定に使用する。SystemLiteral
はマーク付けの走査を行わずに解析できることに注意せよ。
リテラル
[9] EntityValue ::= '"' ([^%&"] | PEReference | Reference)* '"'
| "'" ([^%&'] | PEReference | Reference)* "'"
[10] AttValue ::= '"' ([^<&"] | Reference)* '"'
| "'" ([^<&'] | Reference)* "'"
[11] SystemLiteral ::=('"' [^"]* '"') | ("'" [^']* "'")
[12] PubidLiteral ::= '"' PubidChar* '"' | "'" (PubidChar - "'")* "'"
[13] PubidChar ::= #x20 | #xD | #xA | [a-zA-Z0-9] | [-'()+,./:=・;!*#@$%]
備考 生成規則EntityValueは,リテラルに単独の<を明示的に指定する実体定義(例えば <!ENTITY
mylt "<">)を認めている。この実体を参照すると整形式誤りが生じるため,この実体定義を避け
ることを強く勧める。
2.4 文字データ及びマーク付け テキストは,文字データ及びマーク付けから成る。マーク付けは,開
始タグ,終了タグ,空要素タグ,実体参照,文字参照,コメント,CDATAセクション の区切り子,文書
型宣言,処理命令及びXML宣言,テキスト宣言,文書の最上位レベルにあるすべての空白文字(つまり文
書要素の外側で他のマーク付けの内側でないもの)の形をとる。
マーク付けではないすべてのテキストは,文書の文字データを構成する。
アンパサンド(&)及び不等号(より小) (<)は,マーク付けの区切り子として使用する場合,又はコメント,
処理命令若しくはCDATAセクション 内で使用する場合にだけ,そのままの形で出現してよい。 これらの
文字が他の部分で必要な場合,番号による文字参照又は文字列"&"及び文字列"<"を用いて別扱いし
なければならない。不等号(より大) (>)は,文字列">"を用いて表現してもよい。内容の中で列"]]>"を使
用するときは,それが,CDATAセクションの終了をマーク付けしない限り,互換性のため,">"又は文
字参照を用いて別扱いしなければならない。
要素の内容では,いかなるマーク付けの開始区切り子も含まない任意の文字列が,文字データを構成す
る。CDATAセクションでは,CDATAセクションの終了区切り子"]]>"を含まない任意の文字列が,文字デ
ータを構成する。
属性値が一重引用符及び二重引用符を含むためには,アポストロフィ又は一重引用符(')は,"'"と
して表現し,二重引用符(")は,"""として表現する。
――――― [JIS X 4159 pdf 10] ―――――
次のページ PDF 11
JIS X 4159:2005の国際規格 ICS 分類一覧
- 35 : 情報技術.事務機械 > 35.240 : 情報技術(IT)の応用 > 35.240.30 : 情報,ドキュメンテーション及び出版業務におけるITの応用