JIS X 4159:2005 拡張可能なマーク付け言語(XML)1.0 | ページ 6

                                                                                             21
X 4159 : 2005
トと呼ぶ。このテキストは,文書の本体の一部として解釈する。
解析対象外実体は,内容がテキストでもそうでなくともよい資源とする。テキストの場合,XMLでなく
ともよい。各解析対象外実体には,記法が関連付けられ,この記法は,名前で特定する。XMLプロセサが
実体や記法の識別子を応用プログラムに渡すという要件以外は,XMLは解析対象外実体の内容を制限しな
い。
解析対象実体は,実体参照によって名前で呼び出す。解析対象外実体は,ENTITY型又はENTITIES型
の属性の値として,名前で呼び出す。
一般実体は,文書内容の中で使用する実体とする。あいまいにならない限り,この規格では,一般実体
を単に実体と呼ぶ。パラメタ実体は,DTD内で使用する解析対象実体とする。これらの2種類の実体は,
異なる書式で参照し,異なる文脈で認識される。さらに,それらは異なる名前空間にある。したがって,
同じ名前のパラメタ実体と一般実体は,ふたつの異なった実体である。
4.1 文字参照及び実体参照 文字参照は,JIS X 0221-1文字集合の特定の文字,例えば,入力機器から直
接入力不可能な文字を参照する。
文字参照
[66] CharRef ::= '&#' [0-9]+ ';'
| '&#x' [0-9a-fA-F]+ ';' [整形式制約: 使用できる文字]
整形式制約: 使用できる文字
文字参照を用いて参照する文字は,生成規則Charにマッチしなければならない。
文字参照が"&#x"で始まれば,終端の;までの数字及び字(letter)は,JIS X 0221-1の文字符号位置を16進
数で表現する。文字が "&#" で始まれば,終端の;までの数字は,文字符号位置を10進数で表現する。
実体参照は,名前の付いた実体の内容を参照する。一般解析対象実体への参照は,アンド記号(&)及びセ
ミコロン記号(;)を区切り子として用いる。パラメタ実体への参照は,パーセント記号(%)及びセミコロン(;)
を区切り子として用いる。
実体参照
[67] Reference ::= EntityRef | CharRef
[68] EntityRef ::= '&' Name ';'
[整形式制約: 実体が宣言されていること]
[妥当性制約: 実体が宣言されていること]
[整形式制約: 解析対象実体]
[整形式制約: 再帰なし]
[69] PEReference ::= '%' Name ';'
[妥当性制約: 実体が宣言されていること]
[整形式制約: 再帰なし]
[整形式制約: DTDの中]
整形式制約: 実体が宣言されていること
DTDをもたない文書,パラメタ実体参照を含まない内部DTDサブセットだけをもつ文書又は

――――― [JIS X 4159 pdf 26] ―――――

22
X 4159 : 2005
"standalone='yes'"をもつ文書において,外部サブセット又はパラメタ実体中に出現しない実体参照で
は,その実体参照のNameは,外部サブセット又はパラメタ実体で出現しない実体宣言にマッチしなけ
ればならない。ただし,整形式の文書は,実体amp,lt,gt,apos,quotを宣言する必要はない。 一
般実体の場合は,属性リスト宣言のデフォルト値内での参照より先に,宣言が現れなければならない。
パラメタ実体又は外部サブセットで出現する実体宣言の読み込み・処理を,妥当性を検証しないプ
ロセサに義務付けてはいないことに注意。それらの文書では,実体は宣言されなければならないとい
う規則は,standalone='yes'の場合だけ,整形式制約となる。
妥当性制約: 実体が宣言されていること
外部サブセット又は外部パラメタ実体をもち,さらに "standalone='no'"をもつ文書において,実体参
照で用いる Name は,ある実体宣言に含まれる名前とマッチしなければならない。相互運用性のため
には,妥当な文書は4.6 定義済み実体で指定した書式によって,実体 amp,lt,gt,apos,quotを宣
言することが望ましい。パラメタ実体の場合は,宣言は,参照より先に現れなければならない。同様
に,一般実体の場合は,その一般実体への直接又は間接的な参照をともなったデフォルト値を含む属
性リスト宣言よりも先に,宣言が現れなければならない。
整形式制約: 解析対象実体 実体参照は,解析対象外実体の名前を含んでいてはならない。解析対象
外実体は,ENTITY型又はENTITIES型として宣言した属性値としてだけ参照できる。
整形式制約: 再帰なし
解析対象実体は,それ自体への参照を,直接にも間接にも含んではならない。
整形式制約: DTDの中
パラメタ実体参照は,DTD内にだけ,出現してよい。
文字参照及び実体参照の例を,次に示す。
Type <key>less-than</key> (&#x3C;) o save options.
This document was prepared on &docdate; and
is classified &security-level;.
パラメタ実体参照の例を,次に示す。
<!-- declare the parameter entity "ISOLat2"... -->
<!ENTITY % ISOLat2
SYSTEM "http://www.xml.com/iso/isolat2-xml.entities" >
<!-- ... now reference it. -->
%ISOLat2;
4.2 実体宣言 実体は,次のとおりに宣言する。
実体宣言
[70] EntityDecl ::= GEDecl| PEDecl
[71] GEDecl ::= '<!ENTITY' S Name S EntityDef S・ '>'
[72] PEDecl ::= '<!ENTITY' S '%' S Name S PEDef S・ '>'
[73] EntityDef ::= EntityValue | (ExternalID NDataDecl・)
[74] PEDef ::= EntityValue | ExternalID
Nameは,実体参照において実体を特定する。解析対象外実体ならば,ENTITY 型又はENTITIES型の属

――――― [JIS X 4159 pdf 27] ―――――

                                                                                             23
X 4159 : 2005
性値において,Nameは実体を特定する。同一の実体が複数回宣言されれば,最初の宣言を用いる。利用者
の任意選択によっては,複数回宣言される実体に関し,XMLプロセサは,警告を出してもよい。
4.2.1 内部実体 実体の定義が EntityValueのとき,これを内部実体という。これは,別個の物理的記憶
単位をもたず,実体の内容は宣言内で与える。正しく置換テキストを生成するには,リテラル実体値内で
の実体参照及び文字参照の処理が必要となるかもしれないことに注意する。詳細は,4.5 内部実体置換テ
キストの構築を参照。
内部実体は,解析対象実体とする。
内部実体宣言の例を,次に示す。
<!ENTITY Pub-Status "This is a pre-release of the specification.">
4.2.2 外部実体 内部実体でない実体は外部実体であって,次のとおりに宣言する。
外部実体宣言
[75] ExternalID ::= 'SYSTEM' S SystemLiteral
| 'PUBLIC' S PubidLiteral S SystemLiteral
[76] NDataDecl ::= S 'NDATA' S Name [妥当性制約: 記法が宣言されていること]
NDataDecl が存在すれば,この実体は,一般解析対象外実体とし,そうでなければ,解析対象実体とす
る。
妥当性制約: 記法が宣言されていること
Name は,宣言した記法の名前とマッチしなければならない。
SystemLiteral を,実体のシステム識別子と呼ぶ。XMLプロセサが,実体の置換テキストを生成するに
は,入力を必要とする。入力を得るためにシステム識別子を参照する処理の一部として,統一資源識別子
(URI)参照(IETF RFC 2396で定義され,IETF RFC 2732で改訂された。) に変換してから参照することが意
図されている。 素片識別子(#文字で始まるもの。)がシステム識別子に含まれることは誤りとする。 この
規格の適用範囲外の情報(例えば,ある特定のDTDの特別なXML要素又は特定の応用プログラムの仕様
によって定義された処理命令)によって上書きされない限り,相対的な統一資源識別子(URI)は,その実体
の位置,すなわち,その実体宣言が現れる資源に相対的とする。実体宣言が現れる資源とは,この実体宣
言を宣言として構文解析した時点で,先頭の'<'を含む外部実体とする。 したがって,統一資源識別子(URI)
は,文書実体・外部DTDサブセットを含む実体・なんらかの外部パラメタ実体に対して相対的とする。
統一資源識別子(URI)によって特定される資源を得ようとするとき,パーサのレベルでリダイレクトされて
もよく(例えば,実体リゾルバ),下位プロトコルのレベル(例えば,HTTPのLocation:ヘッダ)によってリダ
イレクトされてもよい。この規格の適用範囲外の付加的な情報が資源の中に存在しない限り必ず,資源の
基底統一資源識別子(base URI)は実際に返された資源の統一資源識別子(URI)とする。言い換えれば,すべ
てのリダイレクションが起こったあとで得られる資源の統一資源識別子(URI)とする。
システム識別子(及び他の統一資源識別子(URI)参照として使用されるXML文字列)が含む文字の幾つか
は,IETF RFC 2396及びIETF RFC 2732に従えば,参照された資源を得るために統一資源識別子(URI)を使用
する前に別扱いする必要がある。これらの別扱いが必要な文字は,#x0から #x1Fまでの制御文字及び#x7F
の制御文字(そのほとんどはXMLでは出現できない。),スペース#x20,区切り子('<' #x3C,'>' #x3E及び
'"' #x22),unwise文字( '[{' #x7B,'}]' #x7D,'|' #x7C,'\' #x5C(バックスラッシュ),'^' #x5E及び '' #x60)並
びに #x7Fを超える文字とする。 別扱いは常にまったく可逆的な処理であるというわけではないので,絶

――――― [JIS X 4159 pdf 28] ―――――

24
X 4159 : 2005
対に必要なときに限って,できるだけ後の段階で別扱いを行うものとする。特に,相対的な統一資源識別
子(URI)を絶対的なものに変換する処理は,別扱いを起動しないことが望ましい。統一資源識別子(URI)参
照を参照するプロセス又はソフトウェア部品に統一資源識別子(URI)参照を渡す処理も,別扱いを起動しな
いことが望ましい。別扱いが本当に起きるときは,次のとおりに行わなければならない。
a) 別扱いされる各文字は,UTF-8では1バイト以上のバイトとして表現される。
b) )で表現されたバイト列はすべて,統一資源識別子(URI)の別扱い機構によって別扱いする(つま
り,%HH に変換される。ここでHHはバイト値の16進表記とする。)。
c) (別扱い対象の)元の文字を,b)の別扱いの結果として得られる文字列に置き換える。
システム識別子以外に,外部識別子は,公開識別子を含んでもよい。 実体の内容を取り出すXMLプロ
セサは,公開識別子及びシステム識別子並びにこの仕様の範囲外の付加的な情報をどのように組み合わせ
て,代わりの統一資源識別子(URI)参照の生成を試みてもよい。XMLプロセサがこれに失敗した場合は,
システムリテラルとして指定した統一資源識別子(URI)参照を用いなければならない。マッチする前に,公
開識別子内にある空白文字からなる文字列は,すべて単一のスペース文字(#x20)に正規化しなければなら
ず,先頭及び末尾の空白文字はすべて削除しなければならない。
外部実体宣言の例を,次に示す。
<!ENTITY open-hatch
SYSTEM "http://www.textuality.com/boilerplate/OpenHatch.xml">
<!ENTITY open-hatch
PUBLIC "-//Textuality//TEXT Standard open-hatch boilerplate//EN"
"http://www.textuality.com/boilerplate/OpenHatch.xml">
<!ENTITY hatch-pic
SYSTEM "../grafix/OpenHatch.gif"
NDATA gif >
4.3 解析対象実体
4.3.1 テキスト宣言 外部解析対象実体は,テキスト宣言で始まることが望ましい。
テキスト宣言
[77] TextDecl ::= '<・xml' VersionInfo・ EncodingDecl S・ '・>'
テキスト宣言は,そのままの形で現れなければならず,解析対象実体への参照を経由してはならない。
外部解析対象実体において,テキスト宣言は,先頭以外のいかなる位置にも出現しない。外部解析対象実
体中のテキスト宣言は,置換テキストに含まれるとは見なさない。
4.3.2 整形式の解析対象実体 ラベルdocumentをもつ生成規則にマッチすれば,文書実体は整形式とする。
ラベルextParsedEntをもつ生成規則にマッチすれば,外部の一般解析対象実体は,整形式とする。すべての
外部パラメタ実体は整形式になるように定義されていることに注意。
整形式の外部解析対象実体
[78] extParsedEnt ::= TextDecl・ content
置換テキストが,ラベルcontentをもつ生成規則にマッチすれば,内部の一般解析対象実体は,整形式と

――――― [JIS X 4159 pdf 29] ―――――

                                                                                             25
X 4159 : 2005
する。すべての内部のパラメタ実体は,定義から整形式になる。
一般実体はすべて整形式なので,XML文書の論理的及び物理的構造は,厳密に入れ子となる。開始タグ,
終了タグ,空要素タグ,要素,コメント,処理命令,文字参照及び実体参照が,一つの実体で開始し,別
の実体で終了することはない。
4.3.3 実体における文字符号化 XML文書内の外部解析対象実体は,それぞれ別の文字符号化を用いて
もよい。すべてのXMLプロセサは,UTF-8で符号化した実体,及びUTF-16で符号化した実体を処理でき
なければならない。この規定での"UTF-8"及び"UTF-16"という用語は,他のラベルをもつ符号化には適用
されない。その符号化がどれほど "UTF-8"又は"UTF-16"に類似していても,適用されない。
UTF-16で符号化した実体は,JIS X 0221-1:2001の附属書H,Unicodeの2.4又はUnicode3の2.7で規定す
る“印”(しるし)(ZERO WIDTH NO-BREAK SPACE文字,#xFEFF)で始まらなければならない。UTF-8で符
号化した実体は,“印”(しるし)で始まってもよい。これは,符号化の印であって,XML文書のマーク付け
の一部でも,文字データの一部でもない。XMLプロセサは,この文字を用いて,UTF-8で符号化した文書
とUTF-16で符号化した文書との区別を行えなければならない。
XMLプロセサは,UTF-8及びUTF-16で符号化した実体を読めなければならない。他の符号化が世界で
は用いられることも多く,それらの符号化を用いる実体をXMLプロセサは処理できることが望ましい。
外部の文字符号化情報(MIMEヘッダなど)がない場合,UTF-8又はUTF-16以外の符号化を用いて格納する
解析対象実体は,符号化宣言を含むテキスト宣言 (4.3.1 テキスト宣言を参照のこと。)で始めなければな
らない。
符号化宣言
[80] EncodingDecl::= S 'encoding' Eq ('"' EncName '"' | "'" EncName "'")
[81] EncName ::= [A-Za-z] ([A-Za-z0-9.] | '-')*

文書実体では,符号化宣言は,XML宣言の一部として含まれる。EncNameは,使用する符号化の名前と
する。
符号化宣言では,値"UTF-8","UTF-16","ISO-10646-UCS-2"及び"ISO-10646-UCS-4"は,Unicode及び
JIS X 0221-1の各種符号化のために用いることが望ましい。値 "ISO-8859-1","ISO-8859-2",...
"ISO-8859-n"(ここでnはパート番号とする。)は,ISO 8859の対応するパートのために用いる。値
"ISO-2022-JP","ShiftJIS"及び"EUC-JP"は,JIS X 0208-1997の各種符号化のために用いることが望まし
い。インタネット割当て番号主体(Internet Assigned Numbers Authority)が定めたIANA-CHARSETS(附属書A
のA.1引用規定を参照。)に,(charsetsとして)登録された文字符号化については,ここに挙げたもの以外
についても,登録された名前で参照することが望ましい。それ以外の符号化は,接頭辞"x-"で始まる名前
を使うことが望ましい。XMLプロセサは,文字符号化の名前を大文字・小文字の区別をせずにマッチをと
ることが望ましい。IANAに登録された名前は,IANAにその名前で登録された符号化を示すと解釈する,
又は不明であるとして扱うことが望ましい(もちろん,IANAに登録されたすべての符号化の実装をプロセ
サ に要求するものではない。)。
外部の伝送プロトコル(すなわち,HTTP,MIMEなど)で与えられる情報が存在しない場合,XMLプロ
セサに渡された実体が,符号化宣言を含むにもかかわらず,宣言で示したもの以外の方式で符号化されて
いるとき,又は“印”(しるし)でも符号化宣言でも始まらない実体が,UTF-8以外の符号化を使用したとき

――――― [JIS X 4159 pdf 30] ―――――

次のページ PDF 31

JIS X 4159:2005の国際規格 ICS 分類一覧