サイトトップへこのカテゴリの一覧へ

X 4177-7:2011 (ISO/IEC 19757-7:2009) 

(1) 

2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。 

目 次 

ページ 

序文 ··································································································································· 1 

0 導入······························································································································· 1 

1 適用範囲 ························································································································· 1 

2 引用規格 ························································································································· 2 

3 用語及び定義 ··················································································································· 3 

4 表記法···························································································································· 3 

5 レパートリ,核及び殻 ······································································································· 3 

6 構文······························································································································· 4 

6.1 一般 ···························································································································· 4 

6.2 RELAX NGスキーマ ······································································································ 4 

6.3 NVDLスクリプト ·········································································································· 6 

6.4 文字クラス ··················································································································· 7 

7 意味······························································································································· 8 

7.1 一般 ···························································································································· 8 

7.2 char ···························································································································· 8 

7.3 union ··························································································································· 9 

7.4 intersection ·················································································································· 10 

7.5 difference····················································································································· 10 

7.6 ref ······························································································································ 10 

7.7 repertoire ···················································································································· 10 

8 検証······························································································································ 11 

附属書A(参考)適合するプロセサの差異 ··············································································· 12 

附属書B(参考)CREPDLスキーマの例·················································································· 13 

附属書C(参考)参考文献 ···································································································· 19 

X 4177-7:2011 (ISO/IEC 19757-7:2009) 

(2) 

2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。 

まえがき 

この規格は,工業標準化法第12条第1項の規定に基づき,財団法人日本規格協会(JSA)から,工業標

準原案を具して日本工業規格を制定すべきとの申出があり,日本工業標準調査会の審議を経て,経済産業

大臣が制定した日本工業規格である。 

この規格は,著作権法で保護対象となっている著作物である。 

この規格の一部が,特許権,出願公開後の特許出願又は実用新案権に抵触する可能性があることに注意

を喚起する。経済産業大臣及び日本工業標準調査会は,このような特許権,出願公開後の特許出願及び実

用新案権に関わる確認について,責任はもたない。 

JIS X 4177の規格群には,次に示す部編成がある。 

JIS X 4177-2 第2部:正規文法に基づく妥当性検証−RELAX NG 

JIS X 4177-3 第3部:規則に基づく妥当性検証−Schematron 

JIS X 4177-4 第4部:名前空間に基づく検証委譲言語−NVDL  

JIS X 4177-7 第7部:文字レパートリ記述言語(CREPDL) 

2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。 

日本工業規格          JIS 

X 4177-7:2011 

(ISO/IEC 19757-7:2009) 

文書スキーマ定義言語(DSDL)− 

第7部:文字レパートリ記述言語(CREPDL) 

Information technology-Document Schema Definition Languages (DSDL)- 

Part 7: Character Repertoire Description Language (CREPDL) 

序文 

この規格は,2009年に第1版として発行されたISO/IEC 19757-7を基に,技術的内容及び対応国際規格

の構成を変更することなく作成した日本工業規格である。 

導入 

JIS X 4177規格群は,Document Schema Definition Languages (DSDL)の集まりを規定する。DSDLは,XML 

1.0(拡張可能なマーク付け言語)文書に適用される一つ又はそれ以上の検証プロセスを規定する。DSDL

においては,既に規格の形で提供されていたり産業界から提供されていたりする検証技術を補完するため

に,幾つもの検証技術が標準化されている。 

JIS X 4177規格群の主な目的は,検証に関する複数の技術を集めて一つの拡張可能な枠組みとし,技術

を順番又は並列に適用して一つ以上の検証結果を得ることである。DSDLは,現時点では設計も仕様策定

も行われていない検証技術も許容するように設計されている。 

この規格は,文字レパートリを記述するための言語を規定する。この言語による記述は,スキーマから

参照できる。さらに,フォーム及びスタイルシートから参照することもできる。 

注記 CREPDLスキーマを参照するための機構をもつスキーマ言語は,この規格の制定時点では存在

しない。 

レパートリの記述は,厳密である必要はない。厳密でない記述をするため,この規格は,核及び殻(そ

れらは下限及び上限を提供する。)をそれぞれ提供する。 

この規格の構成を,次に示す。箇条5は,レパートリの核及び殻を導入する。箇条6は,CREPDLスキ

ーマの構文を規定する。箇条7は,正しいCREPDLスキーマの意味を規定する。すなわち,CREPDLスキ

ーマによって記述されたレパートリに文字が含まれるのはどんな場合かを規定する。箇条8は,CREPDL

プロセサ及びそれらの振る舞いを定義する。最後に,附属書Aは,適合するCREPDLプロセサの差異に

ついて記述し,附属書Bは,CREPDLスキーマの例を示す。 

適用範囲 

この規格は,Character Repertoire Description Language (CREPDL)を規定する。CREPDLスキーマは,文字

レパートリを記述する。 

注記 この規格の対応国際規格及びその対応の程度を表す記号を,次に示す。 

ISO/IEC 19757-7:2009,Information technology−Document Schema Definition Languages (DSDL)−

X 4177-7:2011 (ISO/IEC 19757-7:2009) 

2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。 

Part 7: Character Repertoire Description Language (CREPDL)(IDT) 

なお,対応の程度を表す記号“IDT”は,ISO/IEC Guide 21-1に基づき,“一致している”こ

とを示す。 

引用規格 

次に掲げる規格は,この規格に引用されることによって,この規格の規定の一部を構成する。これらの

引用規格は,その最新版(追補を含む。)を適用する。 

注記 次の文書のそれぞれには,本文中で参照するための一意の識別子が付与されている。一意の識

別子は,太字で示した名称とする。 

JIS X 4177-4 文書スキーマ定義言語(DSDL)−第4部:名前空間に基づく検証委譲言語−NVDL 

注記 対応国際規格:ISO/IEC 19757-4,Information technology−Document Schema Definition 

Languages (DSDL)−Part 4: Namespace-based Validation Dispatching Language (NVDL)(IDT) 

ISO/IEC 10646,Information technology−Universal Multiple-Octet Coded Character Set (UCS) 

注記 JIS X 0221:2007 国際符号化文字集合(UCS)がISO/IEC 10646:2003,Amendment 1:2005及

びAmendment 2:2006に一致する。しかし,Amendment 3:2008,Amendment 4:2008及び

Amendment 5:2008に一致するJISはない。 

ISO/IEC 19757-2,Information technology−Document Schema Definition Language (DSDL)−Part 2: 

Regular-grammar-based validation−RELAX NG 

注記 JIS X 4177-2:2005 文書スキーマ定義言語(DSDL)−第2部:正規文法に基づく妥当性検証

−RELAX NGがISO/IEC 19757-2:2003及びAmendment 1:2006に一致している。しかし,

ISO/IEC 19757-2:2008に一致するJISはない。 

W3C XML,Extensible Markup Language (XML) 1.0 (Fourth Edition),2006年8月16日 

注記1 

http://www.w3.org/TR/2006/REC-xml-20060816から入手可能である。 

注記2 

JIS X 4159:2005 拡張可能なマーク付け言語(XML)1.0がW3C勧告,Extensible Markup 

Language (XML) 1.0 (Third Edition),2004年2月4日に一致している。しかし,W3C勧告,

Extensible Markup Language (XML) 1.0 (Fourth Edition),2006年8月16日に一致するJISは

ない。 

W3C XML-NAMES,Namespaces in XML 1.0 (Second Edition),2006年8月16日 

注記1 

http://www.w3.org/TR/2006/REC-xml-names-20060816から入手可能である。 

注記2 

JIS X 4158:2005,XML名前空間がW3C勧告,Namespaces in XML 1.0,1999年1月14日

に一致している。しかし,W3C勧告,Namespaces in XML 1.0 (Second Edition),2006年8

月16日に一致するJISはない。 

W3C XML Schema Part 2,XML Schema Part 2: Datatypes (Second Edition),2004年10月28日 

注記 http://www.w3.org/TR/2004/REC-xmlschema-2-20041028から入手可能である。 

IETF RFC 3987,Internationalized Resource Identifiers (IRIs), Internet Standards Track Specification,2005

年1月 

注記 http://www.ietf.org/rfc/rfc3987.txtから入手可能である。 

IANA Charsets,IANA CHARACTER SETS 

注記 http://www.iana.org/assignments/character-setsから入手可能である。 

Unicode,The Unicode Standard, The Unicode Consortium 

X 4177-7:2011 (ISO/IEC 19757-7:2009) 

2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。 

注記 http://www.unicode.org/から入手可能である。 

CLDR,Unicode Common Locale Data Repository, The Unicode Consortium 

注記 http://www.unicode.org/cldr/から入手可能である。 

用語及び定義 

この規格で用いる主な用語及び定義は,ISO/IEC 10646で定義された文字及びレパートリのほかに,次

による。 

3.1 

核(kernel) 

レパートリ中に存在することを保証される文字の集合。 

3.2 

殻(hull) 

レパートリ中に存在してもよい文字の集合。 

表記法 

表記法は,次による。 

a) in(x, A): 

文字xはCREPDL要素Aによって記述されるレパートリ中に存在する。 

b) not-in(x, A): 

文字xはCREPDL要素Aによって記述されるレパートリ中に存在しない。 

c) unknown(x, A): 

文字xがCREPDL要素Aによって記述されるレパートリ中に存在するかどうかは分からない。 

レパートリ,核及び殻 

レパートリは,核と殻とを指定することによって記述されるものとする。核及び殻は,文字の集合とす

る。 

文字が核に含まれるとき,その文字はレパートリ中に存在しなければならない。文字の並びにある全て

の文字が核に含まれるとき,その並びはレパートリ中に存在しなければならない。 

文字が核にも殻にも含まれないとき,その文字はレパートリ中に存在しないものとする。文字の並びに

ある少なくとも一つの文字が核にも殻にも含まれないとき,その並びはレパートリ中に存在しないものと

する。 

文字が殻には含まれているが核には含まれていないとき,その文字はレパートリ中に存在するか存在し

ないか分からないものとする。文字の並びにある少なくとも一つの文字が核に含まれておらず,どの文字

も核又は殻に含まれているとき,その並びはレパートリ中に存在するか存在しないか分からないものとす

る。 

注記1 核及び殻は,W3C Note-charcol[3]によって導入された。附属書Bにある幾つかの例もそこから

借りている。 

注記2 レパートリには文字が追加され続けることがあるので,レパートリを正確に指定することは

できないことがある。しかし,どの文字が確実に含まれていて,どの文字が確実に除外され

ているかを指定することは多くの場合に可能である。核及び殻は,こうした非確定レパート

X 4177-7:2011 (ISO/IEC 19757-7:2009) 

2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。 

リを記述する助けとなる。核は,レパートリに確実に含まれている文字を指定するために用

い,殻は外側の境界を指定するために用いる。非確定レパートリの例は,B.4にある。 

注記3 この規格は,文字の集合を扱うことはできるが,文字の並びの集合を扱うことはできない。

言い換えれば,CREPDLスキーマは,ある結合文字を特定の基底文字の直後に限って許すと

いう指定はできない。同様に,CREPDLスキーマは名付けられた列(named sequence)を扱

うことはできず,名付けられた列に現れる文字を扱うことしかできない。実装を極めて容易

にするので,この規格にはこの制限が必要であると考えられている。 

注記4 核にあるいずれかの文字を許さない殻を指定することは可能であるが推奨はしない。文字が

レパートリ中に存在する条件は,殻に言及していないことに注意されたい。 

構文 

6.1 

一般 

CREPDLスキーマは,6.2のRELAX NG(ISO/IEC 19757-2参照)スキーマを参照する6.3のNVDL(JIS 

X 4177-4参照)スクリプトに対して妥当なXML文書(W3C XML参照)とする。このRELAX NGスキー

マが許容する要素は,http://purl.oclc.org/dsdl/crepdl/ns/structure/1.0名前空間(W3C XML-NAMES参照)に

属さなければならない。char要素,kernel要素,及びhull要素の文字内容についての更なる制約を6.4に

示す。 

注記1 W3C XML 1.1[6]は,CREPDLスキーマを表現するために使用してはならない。 

注記2 W3C XML勧告では,XML文書に現れる文字はU+0009(水平タブ),U+000A(改行),U+000D

(復帰),U+0020からU+D7FFまでの範囲の文字,U+E000からU+FFFDまでの範囲の文字,

又はU+10000からU+10FFFFまでの範囲の文字と規定されている。言い換えると,XML文

書はU+0000,U+0001,U+0002,U+0003,U+0004,U+0005,U+0006,U+0007,U+0008,

U+000B,U+000C,U+000E,U+000F,U+0010,U+0011,U+0012,U+0013,U+0014,U+0015,

U+0016,U+0017,U+0018,U+0019,U+001A,U+001B,U+001C,U+001D,U+001E,及び

U+001Fを含むことはできない。CREPDLスキーマはXML文書として表現されるので,これ

らの文字がCREPDLスキーマに直接出現することはできない。 

6.2 

RELAX NGスキーマ 

#$Id: crepdl.rnc 5 2009-05-02 09:48:49Z makoto $ 

# The following permission notice and disclaimer shall be included in all 

# copies of this schema ("the Schema"), and derivations of the Schema: 

#   

# Permission is hereby granted, free of charge in perpetuity, to any 

# person obtaining a copy of the Schema, to use, copy, modify, merge and 

# distribute free of charge, copies of the Schema for the purposes of 

# developing, implementing, installing and using software based on the 

# Schema, and to permit persons to whom the Schema is furnished to do so, 

# subject to the following conditions: 

X 4177-7:2011 (ISO/IEC 19757-7:2009) 

2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。 

#   

# THE SCHEMA IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 

# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 

# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 

# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR 

# OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, 

# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SCHEMA OR THE USE OR 

# OTHER DEALINGS IN THE SCHEMA. 

#   

# In addition, any modified copy of the Schema shall include the following 

# notice:  

#  

# THIS SCHEMA HAS BEEN MODIFIED FROM THE SCHEMA DEFINED IN ISO/IEC 19757-7, 

# AND SHOULD NOT BE INTERPRETED AS COMPLYING WITH THAT STANDARD. 

default namespace = "http://purl.oclc.org/dsdl/crepdl/ns/structure/1.0" 

start = coll 

coll = 

  union | intersection | difference | ref | repertoire | char 

union = element union { commonAtts, coll+ } 

intersection = element intersection { commonAtts, coll+ } 

difference = element difference { commonAtts, coll+ } 

ref = 

  element ref { 

    commonAtts, 

    attribute href { xsd:anyURI } 

  } 

repertoire = 

  element repertoire { 

    commonAtts, 

    attribute registry { text }, 

    attribute version { text }?,  

    (attribute name { text } | attribute number {xsd:int} } 

char =  

  element char { 

    commonAtts, 

    (text 

     | element kernel { commonAtts, text } 

     | element hull { commonAtts, text } 

     | (element kernel { commonAtts, text }, 

X 4177-7:2011 (ISO/IEC 19757-7:2009) 

2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。 

        element hull { commonAtts, text })) 

  } 

commonAtts = 

  attribute minUcsVersion { text }?, 

  attribute maxUcsVersion { text }? 

# Note that xml:id is allowed, since any foreign attribute is  

# allowed by the NVDL script. 

6.3 

NVDLスクリプト 

<?xml version="1.0" encoding="UTF-8"?> 

<!-- $Id: crepdl.nvdl 5 2009-05-02 09:48:49Z makoto $ --> 

<!-- 

The following permission notice and disclaimer shall be included in all 

copies of this schema ("the Schema"), and derivations of the Schema: 

Permission is hereby granted, free of charge in perpetuity, to any 

person obtaining a copy of the Schema, to use, copy, modify, merge and 

distribute free of charge, copies of the Schema for the purposes of 

developing, implementing, installing and using software based on the 

Schema, and to permit persons to whom the Schema is furnished to do so, 

subject to the following conditions: 

THE SCHEMA IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 

IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 

FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 

THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR 

OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, 

ARISING FROM, OUT OF OR IN CONNECTION WITH THE SCHEMA OR THE USE OR 

OTHER DEALINGS IN THE SCHEMA. 

In addition, any modified copy of the Schema shall include the following 

notice:  

THIS SCHEMA HAS BEEN MODIFIED FROM THE SCHEMA DEFINED IN ISO 19757-7, 

AND SHOULD NOT BE INTERPRETED AS COMPLYING WITH THAT STANDARD. 

--> 

<rules xmlns="http://purl.oclc.org/dsdl/crepdl/ns/structure/1.0"> 

    <namespace ns="http://purl.oclc.org/dsdl/crepdl/ns/structure/1.0"> 

        <validate schema="crepdl.rnc"  

                  schemaType="application/relax-ng-compact-syntax"> 

            <mode> 

                <anyNamespace match="elements"> 

                    <allow/> 

                </anyNamespace> 

X 4177-7:2011 (ISO/IEC 19757-7:2009) 

2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。 

                <namespace ns="" match="attributes"> 

                    <attach/> 

                </namespace> 

                <anyNamespace match="attributes"> 

                    <allow/> 

                </anyNamespace> 

            </mode> 

        </validate> 

    </namespace> 

 </rules> 

注記 このNVDLスクリプトは,外来の要素及び属性をどの要素にも許す。 

6.4 

文字クラス 

char要素,kernel要素,及びhull要素の文字内容は,文字の集合を定義する正規表現とする。 

この正規表現は,W3C XML Schema Part 2で指定されるcharClassと一致する。 

注記1 この規格は,文字列の集合ではなく文字の集合を記述するために正規表現を用いているので,

正規表現はChars 及びcharClassに制限されている。 

注記2 次の規則は,W3C XML Schema Part 2から参考として転記したものである。[29]〜[37]の意

味は,Unicodeの版によって変わる。 

[10] Char ::= [^.\?*+()|#x5B#x5D]  

[11] charClass  ::= charClassEsc | charClassExpr | WildcardEsc   

[12] charClassExpr ::= '[' charGroup ']' 

[13] charGroup ::= posCharGroup | negCharGroup | charClassSub 

[14] posCharGroup ::= ( charRange | charClassEsc )+ 

[15] negCharGroup ::= '^' posCharGroup 

[16] charClassSub ::= ( posCharGroup | negCharGroup )  

                      '-' charClassExpr 

[17] charRange ::= seRange | XmlCharIncDash 

[18] seRange ::= charOrEsc '-' charOrEsc 

[20] charOrEsc ::= XmlChar | SingleCharEsc 

[21] XmlChar ::= [^\#x2D#x5B#x5D] 

[22] XmlCharIncDash ::= [^\#x5B#x5D] 

[23] charClassEsc ::= ( SingleCharEsc | MultiCharEsc 

                        | catEsc | complEsc ) 

[24] SingleCharEsc ::= '\' [nrt\|.?*+(){}#x2D#x5B#x5D#x5E] 

[25] catEsc ::= '\p{' charProp '}' 

[26] complEsc ::= '\P{' charProp '}' 

[27] charProp ::= IsCategory | IsBlock 

[28] IsCategory ::= Letters | Marks | Numbers 

X 4177-7:2011 (ISO/IEC 19757-7:2009) 

2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。 

                    | Punctuation | Separators | Symbols | Others 

[29] Letters ::= 'L' [ultmo]? 

[30] Marks ::= 'M' [nce]? 

[31] Numbers ::= 'N' [dlo]? 

[32] Punctuation ::= 'P' [cdseifo]? 

[33] Separators ::= 'Z' [slp]? 

[34] Symbols ::= 'S' [mcko]? 

[35] Others ::= 'C' [cfon]? 

[36] IsBlock ::= 'Is' [a-zA-Z0-9#x2D]+ 

[37] MultiCharEsc ::= '\' [sSiIcCdDwW] 

[37a] WildcardEsc  ::= '.' 

注記3 W3C REC-xpath-functions[4]は,W3C XML Schema Part 2にある正規表現の定義を拡張してい

るため,W3C REC-xpath-functions[4]におけるChars 及びcharClass,並びにW3C XML Schema 

Part 2におけるChars及びcharClassは三つの点で異なる。第一に,W3C REC-xpath-functions[4]

におけるcharClassは\^及び\$をSingleCharEscとして許しているが,W3C XML Schema Part 

2におけるcharClassは許していない。第二に,W3C XML Schema Part 2におけるCharは$及

び^を許しているが,W3C REC-xpath-functions[4]におけるCharは許していない。第三に,W3C 

XML Schema Part 2におけるChar(生成規則[10])は,左中括弧({)及び右中括弧(})を

禁止していないという既知の誤りがあるが,W3C REC-xpath-functions[4]におけるCharはこれ

らを禁止している。 

W3C REC-xpath-functions[4]の正規表現の実装は,Charとして現れる$(例えば<kernel>$</kernel>)も^も

ない限り,char要素,kernel要素,及びhull要素の内容を安全に扱うことができる。 

意味 

7.1 

一般 

箇条7では,CREPDL要素の意味を三つの記法,すなわちin(x, A), not-in(x, A),又はunknown(x, A)を用

いて指定する。ここでxは文字,AはCREPDL要素とする。これらの記法は,箇条4において導入されて

いる。 

7.2 

char 

最初に,char要素,kernel要素,及びhull要素中に現れる正規表現の意味は,W3C XML Schema Part 2

に規定されているとおりとする。 

注記1 W3C XML Schema Part 2の正規表現は,UTS #18[7]にあるLevel-1適合性要件を満たさないの

で,この規格の実装はUTS #18[7]に適合しない。 

<char> ...</char>の意味を次に定義する。 

a) 場合1:char要素はkernel要素もhull要素も子要素としてもたない。 

この要素の文字内容と同一の内容をもつkernel要素及びhull要素をこの要素はもっているとみなす。

その後は場合4と同様とする。 

b) 場合2:repertoire 要素はkernel要素をもつが,hull要素をもたない。 

X 4177-7:2011 (ISO/IEC 19757-7:2009) 

2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。 

1) in(x, <repertoire> ... </repertoire>) は,kernel要素の内容として指定した正規表現にxが合致する場合

に成立する。 

2) not-in(x, <repertoire> ... </repertoire>)は決して成立しない。 

3) unknown(x, <repertoire> ... </repertoire>)は,kernel要素の内容として指定した正規表現にxが合致し

ない場合に成立する。 

c) 場合3:与えられたrepertoire 要素はhull要素をもつが,kernel要素をもたない。 

1) in(x, <repertoire> ... </repertoire>)は決して成立しない。 

2) not-in(x, <repertoire> ... </repertoire>)は,hull要素の内容として指定した正規表現にxが合致しない場

合に成立する。 

3) unknown (x, <repertoire> ... </repertoire>)は,hull要素の内容として指定した正規表現にxが合致する

場合に成立する。 

d) 場合4:与えられたrepertoire 要素はhull要素及びkernel要素をもつ。 

1) in(x, <repertoire> ... </repertoire>)は,kernel要素の内容として指定した正規表現にxが合致する場合

に成立する。 

2) not-in(x, <repertoire> ... </repertoire>) は,kernel要素の内容として指定した正規表現にxが合致せず,

hull要素の内容として指定された正規表現にxが合致しない場合に成立する。 

3) unknown(x, <repertoire> ... </repertoire>)は,kernel要素の内容として指定した正規表現にxが合致せ

ず,hull要素の内容として指定された正規表現にxが合致する場合に成立する。 

正規表現の意味は,Unicode標準の版に依存する。CREPDLスキーマの作成者は,minUcsVersion属性及

びmaxUcsVersion属性を指定して,どの版を意図しているかを示すことができる。 

例 <repertoire minUcsVersion="4.0" maxUcsVersion="4.0">\p{Nd}<repertoire>は,Unicode Version 4.0に

おけるカテゴリNdの文字からなる集合を表す。 

注記2 この二つの属性値の間の全ての版が,全ての文字について同一の特性を指定しているという

保証はない。しかし,スキーマ作成者は,相違を受け入れるものとみなされる。 

CREPDLプロセサがこの二つの間の版を使用することができない場合,エラーを報告することが望まし

く,正常な処理を止めてもよい。 

char要素が明示的にminUcsVersion属性を指定しない場合,この属性をもつ最も近い祖先要素を探索す

る。見つかる場合は,その属性値を使用する。見つからない場合,Unicode標準の版についての下限はな

い。同じ手続がmaxUcsVersionにも当てはまる。 

7.3 

union 

最初に,子要素A及びBを含む<union>A B</union>の意味を規定する。文字がこのunion要素によって

記述されるレパートリに存在するのは,Aによって記述されるレパートリに存在するとき,又はBによっ

て記述されるレパートリに存在するときとする。文字がこのunion要素によって記述されるレパートリに

存在しないのは,Aによって記述されるレパートリにもBによって記述されるレパートリにも存在しない

ときとする。 

a) in(x, <union>A B</union>)が成立するのは,in(x, A)又はin(x, B)が成立するときとする。 

b) not-in(x, <union>A B</union>)が成立するのは,not-in(x, A)及びnot-in(x, B)が成立するときとする。 

c) unknown(x, <union>A B</union>)が成立するのは,それ以外のときとする。 

10 

X 4177-7:2011 (ISO/IEC 19757-7:2009) 

2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。 

union要素がただ一つの子要素をもつ場合,子要素と同じ意味をもつ。union要素が三つ以上の子要素を

もつ場合,<union>A B</union>と同一の意味をもつ。ここで,Aは最初の子要素であり,Bは他の子要素

全てをunionでまとめたものとする。 

7.4 

intersection 

最初に,子要素A及びBを含む<intersection>A B</intersection>の意味を規定する。文字がこのintersection

要素によって記述されるレパートリに存在するのは, Aによって記述されるレパートリに存在し,かつ,

Bによって記述されるレパートリにも存在するときとする。文字がこのintersection要素によって記述され

るレパートリに存在しないのは,Aによって記述されるレパートリに存在しないとき,又はBによって記

述されるレパートリに存在しないときとする。 

a) in(x, <intersection>A B</intersection>)が成立するのは,in(x, A)及びin(x, B)が成立するときとする。 

b) not-in(x, <intersection>A B</intersection>) が成立するのは,not-in(x, A)又はnot-in(x, B)が成立するとき

とする。 

c) unknown(x, < intersection >A B</ intersection >)が成立するのは,それ以外のときとする。 

intersection 要素がただ一つの子要素をもつ場合は,子要素と同じ意味をこのintersection 要素はもつ。

intersection要素が三つ以上の子要素をもつ場合,<intersection>A B</intersection>と同一の意味をもつ。ここ

で,Aは最初の子要素であり,Bは他の子要素全てをintersectionでまとめたものとする。 

7.5 

difference 

最初に,子要素A及びBを含む<difference>A B </difference>の意味を規定する。文字がこのdifference

要素によって記述されるレパートリに存在するのは,Aによって記述されるレパートリには存在するが,

Bによって記述されるレパートリには存在しないときとする。文字がこのdifference要素によって記述され

るレパートリに存在するのは,Aによって記述されるレパートリに存在しないとき,又はBによって記述

されるレパートリに存在するときとする。 

a) in(x, <difference>A B</difference>)が成立するのは,in(x, A)及びnot-in(x, B)が成立するときとする。 

b) not-in(x, <difference>A B</difference>)が成立するのは,not-in(x, A)又はin(x, B)が成立するときとする。 

c) unknown(x, <difference>A B</difference>)が成立するのは,それ以外のときとする。 

difference要素がただ一つの子要素をもつ場合,子要素と同じ意味をもつ。difference要素が三つ以上の

子要素をもつ場合,<difference>A B </difference>と同一の意味をもつ。ここで,Aは最初の子要素であり,

Bは他の子要素全てをunionでまとめたものとする。 

7.6 

ref 

<ref href="iri"/>の意味を定義する。ここでiriは,IETF RFC 3987で規定されるIRIとする。最初に,iri

を参照してCREPDLスキーマSを得るものとする。iriによる参照が成功しない場合(例えば,ネットワ

ークの誤り。),CREPDLプロセサは誤りを報告することが望ましい。正常な処理を終了してもよく,

"unknown"が成立すると仮定して正常な処理を継続してもよい。iriによる参照が成功する場合,意味を次

のとおりに定義する。 

a) in(x,<ref href=" iri "/>)が成立するのは,in(x,S)が成立するときとする。 

b) not-in(x,<ref href=" iri "/>)が成立するのは,not-in(x,S)が成立するときとする。 

c) unknown(x,<ref href=" iri "/>)が成立するのは,unknown(x,S)が成立するときとする。 

7.7 

repertoire 

repertoire要素は,何らかの登録簿にあるレパートリを参照する。registry属性は,登録簿を指定する。name

属性又はnumber属性は,それぞれ名前又は数によってレパートリを指定する。 

11 

X 4177-7:2011 (ISO/IEC 19757-7:2009) 

2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。 

a) registry属性の値が"10646"である場合,ISO/IEC 10646の附属書Aで指定された組を参照する。 

b) registry属性の値が"CLDR"である場合,CLDR登録簿のロケールを参照する。version属性が存在すれ

ば,その値(例えば"1.6")がCLDR登録簿の版を指定する。どのロケールについても,CLDRから生

成されたPOSIXソースファイルが存在する。そのLC̲CTYPEフィールドに,このロケールにおける

全ての文字の一覧がある。number属性は無視される。 

c) registry属性の値が"IANA"である場合,IANAのcharset登録簿(IANA Charsets)に登録されたcharsetを

参照する。name属性は名前(name)又は別名(alias)を指定し,number属性はMIBenumを指定する。 

d) そうでない場合,この規格は,意味を定義しない。 

CREPDLプロセサは,repertoire要素によって指定されたレパートリを認識する必要はない。しかし,指

定されたレパートリをCREPDLプロセサが認識しない場合,エラーを報告することが望ましい。正常な処

理を中止してもよく,"unknown"が成立すると仮定して正常な処理を継続してもよい。 

注記 repertoire要素によって指定されたレパートリが認識される場合にも,登録簿は常に変わり続け

るため,CREPDLプロセサによって報告結果が異なることがある。 

検証 

CREPDLプロセサは,CREPDLスキーマに照らして文字を検証する計算機プログラムとする。 

CREPDLスキーマが正しくない場合,CREPDLプロセサは誤りを報告して停止しなければならない。 

文字及び正確なCREPDLスキーマを与えられて,CREPDLプロセサは"in","not-in",又は"unknown"を

報告しなければならない。 

文字列及び正確なCREPDLスキーマを与えられて,CREPDLプロセサは,最初に文字列を文字の並びへ

と分解し,次に文字を順に検査し,"in","not-in",又は"unknown"を報告しなければならない。 

12 

X 4177-7:2011 (ISO/IEC 19757-7:2009) 

2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。 

附属書A 

(参考) 

適合するプロセサの差異 

適合するCREPDLプロセサであっても,プロセサごとに結果が違うのは次の場合に限る。 

a) 場合1:IRIによる参照は失敗するかもしれない。しかし,適合するCREPDLプロセサの処理結果は

この失敗によって安全な方にしか変わらないことを意図してCREPDLの意味は定義されている。言い

換えれば,失敗することなく"not-in"又は"unknown"が報告される場合,失敗のために"in"が報告される

ことはない。同様に,失敗することなく"in"又は"unknown"が報告される場合,失敗のために"not-in"

が報告されることはない。 

b) 場合2:正規表現の意味はUnicodeバージョンによって変わる。したがって,適合するCREPDLプロ

セサによっては,全く異なった動作をするかもしれない。例えば,あるプロセサは"in"を報告し,別

のプロセサは"not-in"を報告するかもしれない。 

c) 場合3:repertoire要素によって指定されたレパートリは,CREPDLプロセサによっては認識されない

かもしれない。さらに,レパートリが認識される場合にも,CREPDLプロセサによってはレパートリ

の解釈が異なるかもしれない。 

d) 場合4:CREPDLプロセサがCREPDLスキーマ及び文字又は文字の並びを受け取る前に,文字正規化

(UAX #15[8]参照)が適用されることがある。文字正規化によって,適合する二つのCREPDLプロセ

サが著しく異なる振る舞いを示すことがある。 

13 

X 4177-7:2011 (ISO/IEC 19757-7:2009) 

2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。 

附属書B 

(参考) 

CREPDLスキーマの例 

B.1 

ISO/IEC 8859-6 

ISO/IEC 8859-6[1]のレパートリは,次のCREPDLスキーマで表現される。 

<union xmlns="http://purl.oclc.org/dsdl/crepdl/ns/structure/1.0"> 

  <char>\p{IsBasicLatin}</char> 

  <char 

>[&#xA0;&#xA4;&#xAD;&#x60C;&#x61B;&#x61F;&#x621;-&#x63A;&#x640;-&#x652;]</char> 

</union> 

注記 \p{IsBasicLatin}は,W3C XML Schema Part 2によって指定されたブロックエスケープであ

る。 

等価なスキーマを次に示す。 

<union xmlns="http://purl.oclc.org/dsdl/crepdl/ns/structure/1.0"> 

  <char>\p{IsBasicLatin}</char> 

  <char>[&#xA0;]</char> 

  <char>[&#xA4;]</char> 

  <char>[&#xAD;]</char> 

  <char>[&#x60C;]</char> 

  <char>[&#x61B;]</char> 

  <char>[&#x61F;]</char> 

  <char>[&#x621;-&#x63A;]</char> 

  <char>[&#x640;-&#x652;]</char> 

</union> 

もう一つの方法は,IANA登録簿を利用することである。 

<repertoire  xmlns="http://purl.oclc.org/dsdl/crepdl/ns/structure/1.0" 

  registry="IANA" name="ISO̲8859-6:1987" /> 

B.2 

ISO/IEC 8859-15 

ISO/IEC 8859-15[2]は,次のCREPDLスキーマで表現される。 

<union xmlns="http://purl.oclc.org/dsdl/crepdl/ns/structure/1.0"> 

14 

X 4177-7:2011 (ISO/IEC 19757-7:2009) 

2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。 

  <char>\p{IsBasicLatin}</char> 

  <char>[&#xA0;-&#xA3;]</char> 

  <char>[&#xA5;]</char> 

  <char>[&#xA7;]</char> 

  <char>[&#xA9;-&#xB3;]</char> 

  <char>[&#xB5;-&#xB7;]</char> 

  <char>[&#xB9;-&#xBB;]</char> 

  <char>[&#xBF;-&#xFF;]</char> 

  <char>[&#x152;-&#x153;]</char> 

  <char>[&#x160;-&#x161;]</char> 

  <char>[&#x178;]</char> 

  <char>[&#x17D;-&#x17E;]</char> 

  <char>[&#x20AC;]</char> 

</union> 

もう一つの方法は, IANA登録簿を利用することである。number属性の値である111は,charset ISO/IEC 

8859-15のMIBenumである。 

<repertoire  xmlns="http://purl.oclc.org/dsdl/crepdl/ns/structure/1.0" 

  registry="IANA" number="111" /> 

B.3 

ARMENIAN組 

組11 "ARMENIAN"が,ISO/IEC 10646の附属書Aに示されている。この組は確定組である。言い換え

れば,この組の全ての文字は既に割り当てられており,今後に文字が割り当てられることはない。 

この組を参照するCREPDLスキーマを次に示す。number="11"をname="ARMENIAN"に置き換えてもよ

い。 

<repertoire  xmlns="http://purl.oclc.org/dsdl/crepdl/ns/structure/1.0" 

  registry="10646" number="11"/> 

もう一つの方法は,割り当てられている文字を明示的に指定する正規表現を用いることである。 

<char xmlns="http://purl.oclc.org/dsdl/crepdl/ns/structure/1.0" 

>[&#x0530;-&#x058F;]</char> 

注記 この例は,ARMENIAN組の内容を表現することを意図している。アルメニア語において実際

に使われる文字全てを表現するという意図はない。 

B.4 

MALAYALAM組 

組24 " MALAYALAM"が,ISO/IEC 10646の附属書Aに示されている。この組は非確定組である。言い

15 

X 4177-7:2011 (ISO/IEC 19757-7:2009) 

2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。 

換えれば,この組には割り当てられていない文字があり,それらが今後に割り当てられることがある。 

この組を参照するCREPDLスキーマを次に示す。number="24"をname=" MALAYALAM"に置き換えても

よい。 

<repertoire  xmlns="http://purl.oclc.org/dsdl/crepdl/ns/structure/1.0" 

  registry="10646" number="24"/> 

もう一つの方法は,割り当てられている文字を明示的に指定する正規表現を用いることである。一つの

正規表現にすることも可能だが,次に示すCREPDLスキーマでは,二つの正規表現を用い,union要素に

よってこれらをまとめている。 

<union xmlns="http://purl.oclc.org/dsdl/crepdl/ns/structure/1.0"> 

  <char>[&#x0D00;-&#x0D7F;]</char> 

  <char>[&#x200C;-&#x200d;]</char> 

</union> 

しかし,このCREPDLスキーマは割り当てられていない文字(例えば,U+0D11)を用いている。より

優れた解決策は,U+0D00からU+0D7Fまでの文字, 文字U+200C,及び文字U+200Dを含む殻と,割り当

てられた文字だけを含む核とを用いることである。 

<char xmlns="http://purl.oclc.org/dsdl/crepdl/ns/structure/1.0"> 

    <kernel>[...assinged characters...]</kernel> 

    <hull>[&#x0D00;-&#x0D7F;&#x200C;-&#x200d;]</hull> 

</char> 

この例のkernel要素は,読みやすさのため省いている。この単一の要素は,この組に割り当てられた全

ての文字を記述するため,長大でほとんど読めないものとなっている。union要素及びintersection要素を

使用すれば,より読みやすいCREPDLスキーマになる。 

<intersection  xmlns="http://purl.oclc.org/dsdl/crepdl/ns/structure/1.0"> 

  <union> 

    <char><kernel>[&#xD02;-&#xD03;]</kernel></char> 

    <char><kernel>[&#xD05;-&#xD0C;]</kernel></char> 

    <char><kernel>[&#xD0E;-&#xD10;]</kernel></char> 

    <char><kernel>[&#xD12;-&#xD28;]</kernel></char> 

    <char><kernel>[&#xD2A;-&#xD39;]</kernel></char> 

    <char><kernel>[&#xD3D;-&#xD44;]</kernel></char> 

    <char><kernel>[&#xD46;-&#xD48;]</kernel></char> 

    <char><kernel>[&#xD4A;-&#xD4D;]</kernel></char> 

    <char><kernel>[&#xD57;]</kernel></char> 

16 

X 4177-7:2011 (ISO/IEC 19757-7:2009) 

2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。 

    <char><kernel>[&#xD60;-&#xD63;]</kernel></char> 

    <char><kernel>[&#xD66;-&#xD75;]</kernel></char> 

    <char><kernel>[&#xD79;-&#xD7F;]</kernel></char> 

  </union> 

  <char>[&#x0D00;-&#x0D7F;&#x200C;-&#x200d;]</char> 

</intersection> 

もう一つの方法はunion要素だけを用いることである。この方法の方が更に簡潔でおそらく理解しやす

い。 

<union  xmlns="http://purl.oclc.org/dsdl/crepdl/ns/structure/1.0"> 

  <union> 

    <char>[&#xD02;-&#xD03;]</char> 

    <char>[&#xD05;-&#xD0C;]</char> 

    <char>[&#xD0E;-&#xD10;]</char> 

    <char>[&#xD12;-&#xD28;]</char> 

    <char>[&#xD2A;-&#xD39;]</char> 

    <char>[&#xD3D;-&#xD44;]</char> 

    <char>[&#xD46;-&#xD48;]</char> 

    <char>[&#xD4A;-&#xD4D;]</char> 

    <char>[&#xD57;]</char> 

    <char>[&#xD60;-&#xD63;]</char> 

    <char>[&#xD66;-&#xD75;]</char> 

    <char>[&#xD79;-&#xD7F;]</char> 

  </union> 

  <char><hull>[&#x0D00;-&#x0D7F;&#x200C;-&#x200d;]</hull></char> 

</union> 

注記 この例は,MALAYALAM組の内容を表現することを意図している。マラヤラム語において実

際に使われる文字全てを表現するという意図はない。 

B.5 

学年別漢字配当表の第1学年に配当されている漢字 

小学校学習指導要領[5]の付録にある学年別漢字配当表は,各学年にどの漢字が配当されているかを示し

ている。第1学年に配当されている漢字(80字)の一覧を,CREPDLスキーマを用いて表現したものを次

に示す。 

<union xmlns="http://purl.oclc.org/dsdl/crepdl/ns/structure/1.0"> 

  <char>[一右雨円王]</char> 

  <char>[音下火花貝]</char> 

  <char>[学気九休玉]</char> 

17 

X 4177-7:2011 (ISO/IEC 19757-7:2009) 

2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。 

  <char>[金空月犬見]</char> 

  <char>[口校左三山]</char> 

  <char>[子四糸字耳]</char> 

  <char>[七車手十出]</char> 

  <char>[女小上森人]</char> 

  <char>[水正生青夕]</char> 

  <char>[石赤千川先]</char> 

  <char>[早草足村大]</char> 

  <char>[男竹中虫町]</char> 

  <char>[天田土二日]</char> 

  <char>[入年白八百]</char> 

  <char>[文木本名目]</char> 

  <char>[立力林六五]</char> 

</union> 

注記 この表は,単一の正規表現によって表現することも可能である。しかし,数千の漢字を含む他

の表を単一の正規表現で表現することは現実的ではない。 

B.6 

学年別漢字配当表の第2学年に配当されている漢字 

学年別漢字配当表において第2学年に配当されている漢字(160字)の一覧を,CREPDLスキーマを用

いて表現したものを次に示す。 

<union xmlns="http://purl.oclc.org/dsdl/crepdl/ns/structure/1.0"> 

  <char>[引羽雲園遠]</char> 

  <char>[何科夏家歌]</char> 

  <char>[画回会海絵]</char> 

  <char>[外角楽活間]</char> 

  <char>[丸岩顔汽記]</char> 

  <char>[帰弓牛魚京]</char> 

  <char>[強教近兄形]</char> 

  <char>[計元言原戸]</char> 

  <char>[古午後語工]</char> 

  <char>[公広交光考]</char> 

  <char>[行高黄合谷]</char> 

  <char>[国黒今才細]</char> 

  <char>[作算止市矢]</char> 

  <char>[姉思紙寺自]</char> 

  <char>[時室社弱首]</char> 

  <char>[秋週春書少]</char> 

  <char>[場色食心新]</char> 

18 

X 4177-7:2011 (ISO/IEC 19757-7:2009) 

2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。 

  <char>[親図数西声]</char> 

  <char>[星晴切雪船]</char> 

  <char>[線前組走多]</char> 

  <char>[太体台地池]</char> 

  <char>[知茶昼長鳥]</char> 

  <char>[朝直通弟店]</char> 

  <char>[点電刀冬当]</char> 

  <char>[東答頭同道]</char> 

  <char>[読内南肉馬]</char> 

  <char>[売買麦半番]</char> 

  <char>[父風分聞米]</char> 

  <char>[歩母方北毎]</char> 

  <char>[妹万明鳴毛]</char> 

  <char>[門夜野友用]</char> 

  <char>[曜来里理話]</char> 

</union> 

19 

X 4177-7:2011 (ISO/IEC 19757-7:2009) 

2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。 

附属書C 
(参考) 
参考文献 

[1] ISO/IEC 8859-6:1999,Information technology−8-bit single-byte coded graphic character sets−Part 6: 

Latin/Arabic alphabet 

[2] ISO/IEC 8859-15:1999,Information technology−8-bit single-byte coded graphic character sets−Part 15: 

Latin alphabet No. 9 

[3] A Notation for Character Collections for the WWW,W3Cノート,2000年1月14日, 

http://www.w3.org/TR/charcol/から入手可能である。 

[4]  XQuery 1.0 and XPath 2.0 Functions and Operators,W3C 勧告,2007年1月23日, 

http://www.w3.org/TR/2007/REC-xpath-functions-20070123/から入手可能である。 

[5] 小学校学習指導要領第1節 国語,文部省告示第175号,平成10年12月14日, 

http://www.mext.go.jp/b̲menu/shuppan/sonota/990301b/990301d.htmから入手可能である。 

[6] Extensible Markup Language (XML) 1.1 (Second Edition), W3C勧告,2006年 8月16日, 

http://www.w3.org/TR/2006/REC-xml11-20060816/から入手可能である。 

[7] Unicode Regular Expressions, Unicode Technical Standard #18,http://unicode.org/reports/tr18/から入手可

能である。 

[8] Unicode Normalization Forms, Unicode Standard Annex #15,http://unicode.org/reports/tr15/から入手可能

である。