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

X 4177-7

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

(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)

まえがき

この規格は,工業標準化法第 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)


日本工業規格

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 を基に,技術的内容及び対応国際規格

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

0

導入

JIS X 4177

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

1.0

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

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

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

JIS X 4177

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

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

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

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

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

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

しない。

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

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

)をそれぞれ提供する。

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

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

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

プロセサ及びそれらの振る舞いを定義する。最後に,

附属書 は,適合する CREPDL プロセサの差異に

ついて記述し,

附属書 は,CREPDL スキーマの例を示す。

1

適用範囲

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

レパートリを記述する。

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

ISO/IEC 19757-7:2009

,Information technology−Document Schema Definition Languages (DSDL)−


2

X 4177-7

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

Part 7: Character Repertoire Description Language (CREPDL)

(IDT)

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

“一致している”こ

とを示す。

2

引用規格

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

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

)を適用する。

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

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

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


3

X 4177-7

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

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

CLDR

,Unicode Common Locale Data Repository, The Unicode Consortium

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

3

用語及び定義

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

による。

3.1

核(kernel)

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

3.2

殻(hull)

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

4

表記法

表記法は,次による。

a) in(x,

A):

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

b) not-in(x,

A):

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

c) unknown(x,

A):

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

5

レパートリ,核及び殻

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

る。

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

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

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

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

する。

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

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

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

る。

注記 1  核及び殻は,W3C Note-charcol

[3]

によって導入された。

附属書 にある幾つかの例もそこから

借りている。

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

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

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


4

X 4177-7

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

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

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

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

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

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

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

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

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

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

6

構文

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:


5

X 4177-7

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

#

# 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 },


6

X 4177-7

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

        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>


7

X 4177-7

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

                                <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


8

X 4177-7

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

                                        | 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

意味

7.1

一般

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

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

いる。

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 要素をもたない。


9

X 4177-7

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

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)

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)

a

) registry

属性の値が"10646"である場合,ISO/IEC 10646 

附属書 で指定された組を参照する。

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 プロセサによって報告結果が異なることがある。

8

検証

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)

附属書 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)

附属書 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)

  <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 

附属書 に示されている。この組は確定組である。言い換え

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

この組を参照する 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 

附属書 に示されている。この組は非確定組である。言い


15

X 4177-7

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

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

この組を参照する 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)

    <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

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

小学校学習指導要領

[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)

  <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 学年に配当されている漢字(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)

  <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)

附属書 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/から入手可能

である。