この規格ページの目次
- 7. 単純化
- 7.1 一般事項
- 7.2 注釈
- 7.3 空白
- 7.4 datatypeLibrary属性
- 7.5 value要素のtype属性
- 7.6 href 属性
- 7.7 externalRef要素
- 7.8 include 要素
- 7.9 element要素及びattribute要素のname 属性
- 7.11 QName
- 7.12 div 要素
- 7.13 子要素の数
- 7.14 mixed 要素
- 7.15 optional 要素
- 7.16 zeroOrMore 要素
- 7.17 制約
- JIS X 4177-2:2005の引用国際規格 ISO 一覧
- JIS X 4177-2:2005の国際規格 ICS 分類一覧
- JIS X 4177-2:2005の関連規格と引用規格一覧
8
X 4177-2 : 2005 (ISO/IEC 19757-2 : 2003)
明示的に示される属性に加えて,どの要素も ns属性をもつことができ,どの要素も datatypeLibrary属
性をもつことができる。ns属性は,どんな値でももつことができる。datatypeLibrary属性の値は,前の段
落に示されるanyURI記号とマッチしなければならない。さらに,URI参照の相対形式は用いてはならず,
素片識別子をもってはならない。例外として,この属性の値は空文字列であってもよい。
どの要素も,文法に示される属性に加えて,外来の属性をもつこともできる。外来の属性とは,属性で
あって,その名前が属する名前空間URIが空文字列でもRELAX NG名前空間URIでもないものとする。
文字列である子をもつことができないどの要素(つまり,value, param及びname以外の要素とする。)も,
文法に示される子要素に加えて,外来の子要素をもつことができる。外来の要素とは,要素であって,そ
の名前が属する名前空間URIがRELAX NG名前空間URIでないものとする。他の子要素と外来の子要素
との間の相対的な位置についての制約はない。
どの要素も,子として,完全に空白文字だけから成る文字列をもつことができる。ここで空白文字は,
#x20,#x9,#xD又は#xAの一つとする。空白文字列である子と子要素との間の相対的な位置についての制
約はない。
name,type及びcombineの各属性の値,並びに各name要素の内容は,先頭及び末尾に空白をもっても
よい。
pattern ::=
<element name="QName"> pattern+ </element>
| <element> nameClass pattern+ </element>
| <attribute name="QName"> [pattern] </attribute>
| <attribute> nameClass [pattern] </attribute>
| <group> pattern+ </group>
| <interleave> pattern+ </interleave>
| <choice> pattern+ </choice>
| <optional> pattern+ </optional>
| <zeroOrMore> pattern+ </zeroOrMore>
| <oneOrMore> pattern+ </oneOrMore>
| <list> pattern+ </list>
| <mixed> pattern+ </mixed>
| <ref name="NCName"/>
| <parentRef name="NCName"/>
| <empty/>
| <text/>
| <value [type="NCName"]> string </value>
| <data type="NCName"> param* [exceptPattern] </data>
| <notAllowed/>
| <externalRef href="anyURI"/>
| <grammar> grammarContent* </grammar>
param ::=
<param name="NCName"> string </param>
exceptPattern ::=
――――― [JIS X 4177-2 pdf 11] ―――――
9
X 4177-2 : 2005 (ISO/IEC 19757-2 : 2003)
<except> pattern+ </except>
grammarContent ::=
start
| define
| <div> grammarContent* </div>
| <include href="anyURI"> includeContent* </include>
includeContent ::=
start
| define
| <div> includeContent* </div>
start ::=
<start [combine="method"]> pattern </start>
define ::=
<define name="NCName" [combine="method"]> pattern+ </define>
method ::=
choice
| interleave
nameClass ::=
<name> QName </name>
| <anyName> [exceptNameClass] </anyName>
| <nsName> [exceptNameClass] </nsName>
| <choice> nameClass+ </choice>
exceptNameClass ::=
<except> nameClass+ </except>
7. 単純化
7.1 一般事項
6.で与えられた完全な構文は,7.で示す変換規則を順番どおりに適用することによって,
より単純な構文に変換される。それぞれの規則は,次の規則が適用される前に,スキーマ内のすべての要
素に適用された場合と同じ効果をもつものとする。個々の変換規則は,正しいスキーマが満たさなければ
ならない制約を指定している場合がある。変換規則は,データモデルのレベルで適用する。変換を適用す
る前に,スキーマを解析してデータモデルのインスタンスを構築する。
7.2 注釈
外来の属性及び要素を,取り除く。
参考 この段階でxml:base属性を取り除くことは安全である。なぜなら,xml:base属性は要素情報項
目の[base URI]を確定するために用いられ,更に [base URI]から要素の文脈の基底URIが作ら
れている。したがって,文書を解析してデータモデルの要素を得た後では,xml:base属性を破
棄することができる。
7.3 空白
value及びparamを除くどの要素についても,空白文字だけからなる文字列である子を取り除
く。
name, type及びcombine属性の値,並びにname要素の内容から,先頭及び末尾の空白文字を取り除く。
――――― [JIS X 4177-2 pdf 12] ―――――
10
X 4177-2 : 2005 (ISO/IEC 19757-2 : 2003)
7.4 datatypeLibrary属性
datatypeLibary属性の値は,W3C XLINKの5.4で指定されるとおりに,許容
されない文字を別扱いすることによって変換する。
datatypeLibrary属性をもたないどのdata要素又はvalue要素にも,datatypeLibrary属性を追加する。追加
されるdatatypeLibrary属性の値は,datatypeLibrary属性をもつ祖先要素であって最も近いものの
datatypeLibrary属性の値とする。DatatypeLibrary属性をもつ祖先が存在しない場合は空文字列とする。次に,
datatypeLibrary属性であって,data又はvalue以外の要素に附属するものを取り除く。
7.5 value要素のtype属性
type属性をもたないvalue要素には,値がtokenであるtype属性を付け加え,
datatypeLibrary属性の値を空文字列に置き換える。
7.6 href 属性
externalRef要素又はinclude要素のhref属性の値は,まず,W3C XLINKの5.4で指定さ
れるとおりに,許されない文字を別扱いすることによって変換する。次に,URI参照をIETF RFC 2396の
5.2に規定したとおりに絶対形式に帰着させる。これは,href属性をもつ要素の文脈から得られる基底URI
を用いて行う。
href属性の値は要素(5.で示されたもの。)を構築するために使用する。これは,次のとおりに行わなけ
ればならない。URI参照は,URIそれ自体及び素片識別子からなる(素片識別子は省いてもよい。)。まず,
URIによって特定される資源を取り出す。その結果はMIME実体(IETF RFC 2045を参照。)であって,MIME
メディア型(IETF RFC 2046を参照。)がラベルとして付されたバイト列になる。MIME実体及び素片識別
子(素片識別子はなくてもよい。)から要素がどのように構築されるかは,メディア型によって定まる。メ
ディア型が,application/xml又はtext/xmlのとき,適用されるRFC(この規格の制定時点ではIETF RFC 3023
が適用される。)に従って,MIME実体はXML文書として解析されなければならない。そして,解析結果
から,5.で指定されたとおりに要素を構築しなければならない。特に,charsetパラメタは,このRFCで指
定されたとおりに扱われなけばならない。この規格は,application/xml及びtext/xmlを除き,メディア型の
取扱いを定義しない。href属性によって特定される資源のもつメディア型の登録が,そのメディア型のた
めの素片識別子の解釈の仕方を定義している場合を除いて,href属性は素片識別子を含んではならない。
参考 IETF RFC 3023は,application/xml又はtext/xmlの素片識別子の解釈を定義しない。
7.7 externalRef要素
externalRef要素は次のとおりに変換する。7.6で指定されたとおりに,href属性の
値であるURI参照を用いて要素を構築する。この要素は,パターンの構文にマッチしなければならない。
この要素を,7.7で与えた規則及び7.7より前の箇条で与えた規則を適用して再帰的に変換する。この変換
は,繰返しに陥ってはならない。言い換えれば,参照された要素を変換するとき,同じ値のhref属性をも
つexternalRef要素への参照が起こってはならない。
参照された要素がns属性をもたない場合は,externalRef要素のns属性を参照された要素に記述する。
次に,externalRef要素を,参照された要素で置き換える。
7.8 include 要素
include要素は,次のとおりに変換する。7.6で指定されたとおりに,href属性の値を
URI参照として用いて要素を構築する。この要素は,文法の構文にマッチするgrammar要素でなければな
らない。
このgrammar要素は,7.8で与えた規則及び7.8より前の節で与えた規則を適用して再帰的に変換する。
この変換は,繰返しに陥ってはならない。言い換えれば,grammar要素を変換するとき,同じ値のhref属
性をもつinclude要素の参照が起こってはならない。
ある要素の構成部品とは,その要素のすべての子及びすべてのdiv子要素の構成部品であると定義する。
include要素がstart構成部品をもつ場合,grammar要素は,少なくとも一つのstart構成部品をもたなければ
ならない。この場合は,すべてのstart構成部品をgrammar要素から取り除く。include要素がdefine構成
――――― [JIS X 4177-2 pdf 13] ―――――
11
X 4177-2 : 2005 (ISO/IEC 19757-2 : 2003)
部品をもつ場合,grammar要素は,同じ名前のdefine構成部品を少なくとも一つもたなければならない。
これらのdefine構成部品すべてをgrammar要素から取り除く。
include要素をdiv要素に変換する。まず,div要素の属性は,include要素の属性からhref属性を除いた
ものとする。div要素の子は,grammar要素(直前の段落で示したとおりにstart構成部品及びdefine構成
部品を取り除いた後のものとする。)にinclude要素のすべての子を付け加えたものとする。次に,grammar
要素をdiv要素に変換する。
7.9 element要素及びattribute要素のname 属性
element要素及びattribute要素のname属性は,name
子要素に変換する。
attribute要素がname属性をもちns属性をもたない場合,ns=""属性をname子要素に追加する。
7.10 ns属性 ns属性をもたないname要素,nsName要素及びvalue要素には,ns要素を追加する。追加
されるns属性の値は,ns属性をもつ最も近い祖先要素のns属性の値とする。ns属性をもつ祖先要素が存
在しない場合には空文字列とする。次に,ns属性であって,name,nsName又はvalue以外の要素にあるも
のを取り除く。
備考 ns属性の値には,許されない文字を別扱いする変換又は他のいかなる変換も適用しない。これ
は,インスタンスの中の名前空間URIにはどのような変換も適用されず,ns属性の値はこの名
前空間URIと比較されることによる。
参考 include要素及びexternalRef要素が解決されるのは,datatypeLibrary属性が追加された後かつns
属性が追加される前なので,ns属性は外部スキーマにも継承されるが,datatypeLibrary属性は
継承されない。
7.11 QName
接頭辞をもつどのname要素についても,接頭辞を取り除き,ns属性を追加する。既存の
ns属性があっても置き換える。追加するns属性の値は,name要素の文脈での名前空間対応付けにおいて
この接頭辞に対応付けられたものとする。この文脈は,この接頭辞についての対応付けをもたなければな
らない。
7.12 div 要素
div要素は,その子によって置き換える。
7.13 子要素の数
define要素,oneOrMore要素,zeroOrMore要素,optional要素,list要素及びmixed要
素は,正確に一つの子要素をもつように変換する。一つより多くの子要素をもつ場合,それらをgroup要
素によってまとめる。同様に,element要素は正確に二つの子要素をもつように変換する。最初のものは名
前クラスとし,2番目のものはパターンとする。二つより多くの子要素をもつ場合,最初の要素以外の子
要素をgroup要素にまとめる。
except要素は,正確に一つの子要素をもつように変換する。一つより多くの子要素をもつ場合,子要素
をchoice要素によってまとめる。
attribute要素がただ一つの子要素(名前クラス)をもつ場合,text要素を追加する。
choice要素, group要素又はinterleave要素は,正確に二つの子要素をもつように変換する。一つの子要
素をもつ場合,その子要素によって置き換える。二つより多くの子要素をもつ場合,親要素と同じ名前の
新しい要素によって最初の二つの子要素をまとめる。
<choice> p1 p2 p3 </choice>
これは,次のとおりに変換する。
<choice> <choice> p1 p2 </choice> p3 </choice>
この操作は,子要素の数を一つ減らす。子要素の数が正確に二つになるまで,この変換を繰り返し適用
する。
――――― [JIS X 4177-2 pdf 14] ―――――
12
X 4177-2 : 2005 (ISO/IEC 19757-2 : 2003)
7.14 mixed 要素
mixed要素は,text要素を伴うインタリーブに変換する。
<mixed> p </mixed>
これは,次のとおりに変換する。
<interleave> p <text/> </interleave>
7.15 optional 要素
optional要素は,choice要素に変換する。このchoice要素の片方の子は,optional要
素の子とし,もう一方の子はemptyとする。
<optional> p </optional>
これは,次のとおりに変換する。
<choice> p <empty/> </choice>
7.16 zeroOrMore 要素
zeroOrMore要素は,choice要素に変換する。このchoice要素の片方の子は,
<oneOrMore> p </oneOrMore>要素とし,もう一方の子はempty要素とする。ここで,p はzeroOrMore要素
の子とする。
<zeroOrMore> p </zeroOrMore>
これは,次のとおりに変換する。
<choice> <oneOrMore> p </oneOrMore> <empty/> </choice>
7.17 制約
この規則は,変換は行わないが,様々な制約を検査する。
参考 7.17の制約は,10.で規定される制約とは異なり,いかなるref要素も解決することなしに検査
できる。そのために,これらの制約は,到達可能ではない(7.20参照)という理由又はnotAllowed
(7.21参照)が原因でこの後の段階の単純化によって消えてしまうパターンにも適用される。
anyName要素の子要素であるexcept要素は,anyName子孫要素をもってはならない。nsName要素の子
要素であるexcept要素は,nsName子孫要素又はanyName子孫要素をもってはならない。
attribute要素の最初の子,又はattribute要素の最初の子の子孫として出現し,ns要素が空文字列と等し
いname要素は,xmlnsと等しい内容をもってはならない。
attribute要素の最初の子,又はattribute要素の最初の子の子孫として出現する,name要素又はnsName
要素は,http://www.w3.org/2000/xmlnsという値のns属性をもってはならない。
参考 W3C XML-Infosetは,名前空間宣言属性の名前空間URIをhttp://www.w3.org/2000/xmlnsとす
ると定義している。
data要素又はvalue要素は,データ型を正しく使用しなければならない。特に,type属性は,datatypeLibrary
属性の値で識別されるデータ型ライブラリに含まれるデータ型を特定しなければならない。data要素にお
いて,パラメタリストはこのデータ型(9.3.8参照)で許されるものでなければならない。
――――― [JIS X 4177-2 pdf 15] ―――――
次のページ PDF 16
JIS X 4177-2:2005の引用国際規格 ISO 一覧
- ISO/IEC 19757-2:2003(IDT)
JIS X 4177-2:2005の国際規格 ICS 分類一覧
- 35 : 情報技術.事務機械 > 35.240 : 情報技術(IT)の応用 > 35.240.30 : 情報,ドキュメンテーション及び出版業務におけるITの応用
JIS X 4177-2:2005の関連規格と引用規格一覧
- 規格番号
- 規格名称