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

X 0138-3

:2004 (ISO/IEC 15475-3:2002)

(1)

まえがき

この規格は,工業標準化法に基づき,日本工業標準調査会の審議を経て,経済産業大臣が制定した日本

工業規格である。

制定に当たっては,日本工業規格と国際規格との対比,国際規格に一致した日本工業規格の作成及び日

本工業規格を基礎にした国際規格原案の提案を容易にするため,ISO 15475-3:2002,Information technology

- CDIF transfer format - Part3: Encoding ENCODING.1

を基礎として用いた。

この規格の一部が,技術的性質をもつ特許権,出願公開後の特許出願,実用新案権,又は出願公開後の

実用新案登録出願に抵触する可能性があることに注意を喚起する。経済産業大臣及び日本工業標準調査会

は,このような技術的性質をもつ特許権,出願公開後の特許出願,実用新案権,又は出願公開後の実用新

案登録出願にかかわる確認について,責任はもたない。

JIS X 0138-3

には,次に示す附属書がある。

附属書 A(規定)ENCODING.1 形式文法

附属書 B(参考)多バイトの例

JIS X 0138

の規格群は,次に示す部編成からなる。

JIS X 0138-1 CASE

データ交換形式―CDIF 転送形式―第 1 部:構文及び符号化の一般規則

JIS X 0138-2 CASE

データ交換形式―CDIF 転送形式―第 2 部:構文 SYNTAX.1

JIS X 0138-3 CASE

データ交換形式―CDIF 転送形式―第 3 部:符号化 ENCODING.1


X 0138-3

:2004 (ISO/IEC 15475-3:2002)

(2)

目  次

ページ

序文 

1

1.

  適用範囲

1

2.

  適合性

2

3.

  引用規格

3

4.

  定義

3

4.1

  他の規格からの定義

3

4.1.1

  JIS X 0137-1 からの定義 

3

4.1.2

  JIS X 0138-1 からの定義 

4

4.1.3

  ISO/IEC FCD 13238-1 からの定義

4

4.2

  (削除) 

4

5.

  記号

4

5.1

  命名法及び図式記法

4

5.2

  BNF の規則 

4

5.3

  略語

4

6.

  CDIF 転送の概念及び機能 

4

6.1

  符号化識別子 

4

6.2

  可読テキスト 

4

6.3

  文字集合 

5

7.

  CDIF 転送における符号化の構造及びキーワード

5

7.1

  導入

5

7.2

  符号化構造 

5

7.2.1

  10 進整数値 

5

7.2.2

  進数値 

5

7.2.3

  進数値 

6

7.2.4

  16 進数値 

6

7.2.5

  浮動小数値 

6

7.2.6

  日付

7

7.2.7

  時間

7

7.2.8

  識別子値 

7

7.2.9

  列挙値 

8

7.2.10

  文字列 

8

7.2.11

  テキスト文字列

8

7.2.12

  コメント 

10

7.2.13

  メタメタオブジェクト名

11

7.2.14

  メタオブジェクト名 

11


X 0138-3

:2004 (ISO/IEC 15475-3:2002)

(3)

7.2.15

  識別子 

11

7.2.16

  多バイト識別子

11

7.3

  キーワード 

12

附属書 A(規定)ENCODING.1  形式文法

13

附属書 B(参考)多バイトの例 

18

B.1

  7.2.9 列挙値の例 

18

B.2

  7.2.10 文字列の例 

18

B.3

  7.2.11 テキスト文字列の例

18

B.4

  7.2.12 コメントの例

19

B.5

  7.2.16  多バイト識別子の例 

19

 


日本工業規格

JIS

 X

0138-3

:2004

(ISO/IEC 15475-3

:2002

)

CASE

データ交換形式−CDIF 転送形式ー

第 3 部:符号化 ENCODING.1

Information technology - CDIF transfer format -

Part3:Encoding ENCODING.1

序文  この規格は,2002 年に第 1 版として発行された ISO 15475-3:2002,Information technology - CDIF

transfer format - Part3: Endoding ENCODING.1

を翻訳し,技術的内容及び規格票の様式を変更することなく

作成した日本工業規格である。

なお,この規格で点線の下線を施してある“参考”は,原国際規格にはない事項である。

1. 

適用範囲  CDIF 規格群は,主としてモデル化ツール間の情報転送のための機構を記述するように設

計された。CDIF を用いれば,移入側と移出側との双方のツールの開発者が,CDIF に適合するという合意

以外には何も共有しないときでも,容易に転送を成功させる。転送形式を規定するための言語は,リポジ

トリの移入/移出のための一般言語として用いることもできる。モデル化ツールを規定するための CDIF

意味メタモデルは,リポジトリで用いられている標準記述の基盤として利用できる。

完全な CDIF 規格を構成する規格群は,JIS X 0137-1

(CASE データ交換形式−CDIF フレームワーク−

第 1 部:概要)

で示されている。これらの規格群は,全般的なフレームワーク,転送形式及び CDIF 意味

メタモデルを網羅する。

CDIF

意 味 メ タ モ デル ( ISO/IEC 15476

CDIF

フ レ ー ム ワ ー ク ( JIS X 0137

第 1 部:概 要 ( JIS X 0137-1)

第 2 部:モ デル 化 及び 拡 張性

( JIS X 0137-2)

第 1 部:基 盤 ( ISO/IEC 15476-1)

第 2 部:共 通 ( ISO/IEC 15476-2)

第 3 部:デ ー タ 定 義

( ISO/IEC 15476-3)

第 4 部:デ ー タ モ デル

( ISO/IEC 15476-4)

第 5 部:デ ー タ 流 れモ デ ル

( ISO/IEC 15476-5)

第 6 部:状 態 事 象 モデ ル

( ISO/IEC 15476-6)

CDIF

転 送 形 式 ( JIS X 0138

第 1 部:構 文及 び 符号 化 の 一 般 規則

( JIS X 0138-1)

第 2 部:構文 SYNTAX.1

( JIS X 0138-2)

第 部 :符 号 化 ENCODING.1 

( JIS X 0138-3

  1  CDIF 規格群

図 は,CDIF 規格群を構成する種々の規格を示す。網掛け部分は,この規格の CDIF 規格群の中での


2

X 0138-3

:2004 (ISO/IEC 15475-3:2002)

位置を示す。

この規格は,JIS X 0138-2

(CASE  データ交換形式−CDIF 転送形式−第 2 部:構文 SYNTAX.1)

で規

定した規格 CDIF 転送構文のための CDIF 転送符号化規格を規定する。

この規格は,CDIF を理解し及び/または使用したいと希望する人に使われることを意図している。こ

の規格は,CDIF 規格群全体への導入部を提供し,次の人々の利用に適している。

−  CDIF を評価する人

−  CDIF 転送の概念及び原理を理解したいと希望する人

−  CDIF 移入ツール及び CDIF 移出ツールの開発する人

JIS X 0137-1

及び JIS X 0137-2

(CASE  データ交換形式−CDIF フレームワーク−第 2 部:モデル化及

び拡張性)

は,CDIF 規格群を最初に調査するとき,他の CDIF 規格を読む前に最初に読むことが望まし

い。

この規格は,JIS X 0138-1

(CASE  データ交換形式−CDIF 転送形式−第 1 部:構文及び符号化の一般

規則)

及び JIS X 0138-2 と併せて読むとよい。

この規格を読むに当たっては,特定の前提知識は,必要としないが,次の各事項を理解していれば読者

の助けになる。

−  実体関係属性モデル化(Entity-Relationship-Attribute modelling)

−  モデル化(CASE)ツール

−  情報リポジトリ

−  データ辞書

−  多重メタ階層モデル化

−  形式構文

−  転送形式

備考  この規格の対応国際規格を,次に示す。

なお,対応の程度を表す記号は,ISO/IEC Guide21 に基づき,IDT(一致している)

,MOD(修

正している)

,NEQ(同等でない)とする。

ISO/IEC 15475-3:2002, Information technology - CDIF transfer format - Part3: Encoding

ENCODING.1 (IDT)

2. 

適合性  ある製品がこの規格の附属書 に示すすべての定義及び規則に従い,  JIS X0137-1 の 2.で

規定する CDIF アーキテクチャ適合である場合に限り,その製品は,CDIF 転送形式一般規則の規格に適合

する。製品は,転送形式一般規則の規格への適合性あり又は適合性なしのいずれかとなる。CDIF 転送形

式一般規則の一部を規定する規格に対する部分適合は,規定しない。

ある製品が JIS X 0138-3 

附属書 に適合し,かつ JIS X 0138-2 にも適合する場合に限り,その製品は,

CDIF 符号化規格に適合する。ある製品が JIS X 0138-2 の附属書 A に適合する場合に限り,その製品は,
CDIF 構文規格に適合する。

3. 

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

る。これらの引用規格は,発効年(又は発行年)を付記してあるものは,記載の年の版だけがこの規格を構

成するものであって,その後の改正版・追補には適用しない。発効年(又は発行年)を付記していない引用規

格は,その最新版を適用する。


3

X 0138-3

:2004 (ISO/IEC 15475-3:2002)

JIS X 0137-1:2003

  CASE データ交換形式― CDIF フレームワーク−第 1 部:概要

備考  ISO/IEC 15474-1:2002 Information technology−CDIF framework−Part1:Overview  が,この規格

と一致している。

JIS X 0137-2:2003

  CASE データ交換形式― CDIF フレームワーク−第 2 部:モデル化及び拡張性

備考  ISO/IEC 15474-1:2002, Information technology − CDIF framework − Part2:Modeling and

extensibility

が,この規格と一致している。

JIS X 0138-1:2003

  CASE  データ交換形式−CDIF 転送形式−第 1 部:構文及び符号化の一般規則

備考  ISO/IEC 15475-1:2002, Information technology−CDIF transfer format−Part1:General rules for

syntaxes and encodings

が,この規格と一致している。

JIS X 0138-2:2003

  CASE  データ交換形式−CDIF 転送形式−第 2 部:構文 SYNTAX.1

備考  ISO/IEC 15475-2:2002, Information technology−CDIF transfer format−Part2:Syntax SYNTAX.1

が,この規格と一致している。

ISO/IEC 9075:1992,Information technology

−Database languages−SQL

備考  JIS X 3005-1:1995  データベース言語 SQL  第 1 部:枠組(SQL/Framework)データベース言

語 SQL  が,この規格と一致しているが,IS 及び JIS ともに新しい版が出版済みである。

ISO/IEC 10646-1:1993/Amd.2:1996, Information technology

−Universal Multiple-Octet Coded Character

Set(UCS)

−Part1:Architecture and Basic Multilingual Plane.Amendment 2:UCS Transformation Format

8(UTF-8)

備考  JIS X 0221-1:1995  国際符号化文字集合(UCS)  ―  第 1 部:体系及び基本多言語面が,こ

の規格と一致しているが,JIS 及び IS ともに新しい版が発効又は発行済みである。

ISO/IEC 13238-1

  Information technology - Data management export/import facilities - Part 1:

Standardization framework

*

この規格は,国際の場で現在審議中である。

4.

定義  この規格で用いる主な用語の定義は,次による。

4.1 

他の規格からの定義

4.1.1 

JIS X 0137-1

からの定義  この規格は,  JIS X 0137-1 で定義された次の用語を使用する。

CDIF(CASE Data Interchange Format) 
CDIF 規格群(CDIF family of standards) 
CDIF 図記法(CDIF graphical notation) 
CDIF 意味メタモデル(CDIF semantic metamodel) 
CDIF メタメタモデル(CDIF meta-metamodel) 
CDIF 転送(CDIF transfer) 
CDIF 転送ファイル(CDIF transfer file) 
CDIF 転送形式(CDIF transfer format)

文字集合(character set)

符号化(encoding) 
ENCODING.1(ENCODING.1)

メタ属性(meta-attribute)

メタ実体(meta-entity)


4

X 0138-3

:2004 (ISO/IEC 15475-3:2002)

メタモデル(metamodel)

メタオブジェクト(meta-object)

メタ関係(meta-relationship)

モデル(model)

非終端記号(non-terminal symbol)

生成規則(production rule)

対象分野(subject area)

構文(syntax) 
SYNTAX.1(SYNTAX.1)

終端記号(terminal symbol)

転送(transfer)

転送形式(transfer format)

4.1.2 

JIS X 0138-1

からの定義  この規格は,  JIS X 0138-1 で定義された次の用語を使用する。

メタモデル部(metamodel section)

転送ヘッダ(transfer header)

4.1.3 

ISO/IEC FCD 13238-1

からの定義  この規格は,  ISO/IEC FCD 13238-1 で定義された次の用語を

使用する。

転送ファイル(transfer file)

移出プロセス(export process)

移出者(exporter)

移入プロセス(import process)

移入者(importer)

可読テキストファイル符号化(clear text file encoding)

4.2  (削除)

  参考  原国際規格では,この規格に対する新規用語をここで定義すると規定しているが,この規格では

        新規用語を定義していないので,この項目を削除した。

5. 

記号

5.1 

命名法及び図式記法  CDIF におけるすべてのメタオブジェクト及びメタメタオブジェクトの名称

は,メタオブジェクト及びメタメタオブジェクトを構成する単語をつなげたものとする。そして,各単語

の最初の文字を大文字とし,残りの文字を小文字とする(例えば,MetaAttribute, AttributeDerivation,

IsDrawnUsing, IsOptional

参考  この命名記法は,次期国際規格見直しときに,多バイト文字に対応する修正を実施する予定で

ある。

メタモデル及びメタメタモデルで用いられる CDIF 図記法は,フレームワーク規格(JIS X0137-2)で

規定する。

5.2 BNF

の規則  転送ファイル内のデータの構造を規定し,データの並びを規定するため,拡張バッカ

スナウア形式(Backus Naur Form)

(BNF)を使用する。

この規格では,  JIS X 0138-1 の 5.2 で規定するとおりに使用する。

5.3 

略語  この規格で用いる略語は,次のとおりとする。


5

X 0138-3

:2004 (ISO/IEC 15475-3:2002)

BNF  バッカスナウア形式(Backus Naur Form) 
CDIF CASE データ交換形式(CASE Data Interchange Format) 

6. CDIF

転送の概念及び機能

6.1 

符号化識別子  この規格のこの版で規定する符号化は,符号化識別子として,識別子を示す

ENCODING.1”及び版を示す“15475-3:2002”を用いなければならない。構文の識別子を示す“SYNTAX.1”

及び構文の版を示す“

15475-2:2002”による CDIF 構文規格に適合する CDIF 転送では,規格化された符

号化を指定するために,この符号化識別子を用いる(JIS X 0138-2 参照)

CDIF 符号化の識別子及び版を示す構文は,次のとおりとする。

<EncodingID> ::=

'ENCODING.1'

<EncodingVersion> ::=  '15475-3:2002'

6.2 

可読テキスト  可読テキストによる符号化の目的は,次のとおりとする。

−  機械によって記述可能となるのがよい。すなわち,この符号化を利用している転送ファイルが,計

    算機ソフトウェアによって生成可能となるのがよい。

−  機械によって判読可能となるのがよい。すなわち,この符号化を利用している転送ファイルが,計

    算機ソフトウェアによって構文解析可能となるのがよい。

−  人間によって判読可能となるのがよい。すなわち,この符号化を利用している転送ファイルが,

    転送される内容についてよく知る人間によって判読可能及び理解可能となるのがよい。

人間による作成又は編集は難しいことではないが,CDIF 転送ファイルは人間によって作成又は編集さ

れるように設計されるものではない。

6.3 

文字集合  空白類文字は,字句を分離し,転送の形式を整えて,読みやすさを改善するために,文

字列,テキスト文字列及びコメント以外の部分で利用される。字句を識別した後,これらの空白類文字は

CDIF

移入ツールにより無視される。空白類文字には,空白,水平タブ,垂直タブ,復帰,改行及び頁送

りからなる。

転送ファイル中の空白類文字及びその他のすべての文字は,転送ヘッダで指定される文字集合を用いて

符号化される。

空白類文字は, JIS X 0138-2 で規定されている構文中で規定されている場所以外には出現してはなら

ない。このことは,テキスト文字列が印字不可な文字をもつことができないことを意味しているわけでは

ない。詳細は,7.2.11 に規定している。

7. CDIF

転送における符号化の構造及びキーワード

7.1 

導入  この可読テキストによる符号化で表現された転送は,空白類文字によって分離された字句の

列を形成している文字の並びからなる。字句の分離規則は,JIS X 0138-2 による。

参考 1  欧文アルファベットでは,

<GeneralPrintableChar>, <UpperCaseAlphabeticChar>  及び

<UpperOrLowerCaseAlphabeticChar>の符号化において大文字と小文字とを区別し,それ以外で

は区別しない。詳細は,附属書 に示す。

2

  以降に示す例は,欧文アルファベットでのものである。多バイト表記の例を附属書 に本文

の例に対応させてまとめて示す。

7.2 

符号化構造

7.2.1 10

進整数値  10 進整数値は,次のとおり規定する。


6

X 0138-3

:2004 (ISO/IEC 15475-3:2002)

<DecimalIntegerValue> ::=

<DecimalRadix> <Integer>

<DecimalRadix> ::=

#D

<Integer> ::=

[ <Sign> ] <Digit> ...

有効な及び無効な 10 進整数値の例を次に示す。

1)

#d12345

-

有効:正の 10 進数

2)

#d-12345

-

有効:負の 10 進数

3)

#d+12345

-

有効:正の 10 進数

4)

#d123e43

-

無効:'e'  は数字ではない。

7.2.2 2

進数値  2 進数値は,次のとおり規定する。

<BinaryValue> ::=

<BinaryRadix> <BinaryNumber>

<BinaryRadix> ::=

#B

<BinaryNumber> ::=

[ <Sign> ] <BinaryDigit> ...

<BinaryDigit> ::=

0 │ 1

有効な及び無効な 2 進数値の例を次に示す。 
1)

#b10101

-

有効:正の 2 進数値

2)

#b-10101

-

有効:負の 2 進数値

3)

#b11021

-

無効:'2'は 2 進数の数字ではない。

7.2.3 8

進数値  8 進数値は,次のとおりする。

<OctalValue> ::=

<OctalRadix> <OctalNumber>

<OctalRadix> ::=

#O

<OctalNumber> ::=

[ <Sign> ] <OctalDigit> ...

<OctalDigit> ::=

0 │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7

有効な及び無効な 8 進数値の例を次に示す。 
1)

#o31727

-

有効:正の 8 進数値

2)

#o-31727

-

有効:負の 8 進数値

3)

#o31923

-

無効:'9'は 8 進数の数字ではない。

7.2.4 16

進数値  16 進数値は,次のとおり規定する。

<HexaDecimalValue> ::=

<HexRadix> <HexNumber>

<HexRadix> ::=

#H

<HexNumber> ::=

[ <Sign> ] <HexDigit> ...

<HexDigit> ::=

0 │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9

│ A │ B │ C │ D │ E │ F

│ a │ b │ c │ d │ e │ f

有効な及び無効な 16 進数値の例を次に示す。

1)

#h1e2cf

-

有効:正の 16 進数値

2)

#hffffffff   -  有効:正の 16 進数値

3)

#h-ffffffff

-  有効:負の 16 進数値

4)

#h122g9

-

無効:'g'は 16 進数の数字ではない。

7.2.5 

浮動小数値  浮動小数値は,10

-1023

∼10

1023

までの範囲の高々10 進 16 けたの値をもつ。

浮動小数値は,次のとおり規定する。


7

X 0138-3

:2004 (ISO/IEC 15475-3:2002)

<FloatValue> ::=

<FloatDesignator> <Mantissa> <Exponent>

<FloatDesignator> ::=

#F

<Mantissa> ::=

[ <Sign> ] <Digit> ...

[ <DecimalPoint> [ <Digit> ... ] ]

<DecimalPoint> ::=

.

<Exponent> ::=

<Exp> <Integer>

<Exp> ::=

E

有効な及び無効な浮動小数値の例を次に示す。 
1)

#f4E9

-

有効

2)

#f123.45E2   -  有効

3)

#f-123.45E15

-

有効

4)

#f+0.23E5   - 有効

5)

#f0.23E-3   - 有効

6)

#f0.23E+3   - 有効

7)

#f123.45

-

無効:指数ではない。

8)

#f.23E3

-

無効:基数#f の後は符号又は数字でなければならない。

9)

#f23.32-2   - 無効:指数を表す'E'がない。

7.2.6 

日付  日付は,次のとおり規定する。

<Date> ::=

<YearValue> <DateDelimiter>

<MonthValue> <DateDelimiter>

<DayValue>

<YearValue> ::=

<Integer>

<MonthValue> ::=

<Integer>

<DayValue> ::=

<Integer>

<DateDelimiter> ::=

/

有効な及び無効な日付の例を次に示す。 
1)

1940/12/07   -  有効

2)

0002/10/11   -  有効

3)

1941/Dec/12

-  無効:月は整数でなければならない。

4)

1991/11/31   -  無効:日付がその月に存在しない。

7.2.7 

時間  時間は,次のとおり規定する。

<Time> ::=

<Hours> <TimeDelimiter>

<Minutes> <TimeDelimiter>

<Seconds>

<Hours> ::=

<Integer>

<Minutes> ::=

<Integer>

<Seconds> ::=

<Integer>

[ <DecimalPoint> <Digit>

[<Digit> [ <Digit> ] ] ]

<TimeDelimiter> ::=

:


8

X 0138-3

:2004 (ISO/IEC 15475-3:2002)

有効な及び無効な時間の例を次に示す。

1)

07:20:23

-

有効

2)

03:59:59

-

有効

3)

00:00:00.250

-

有効

4)

29:25:19

-

無効:29 時は正しくない。

7.2.8 

識別子値  識別子値の構文を次に示す。

<IdentifierValue> ::=

* <MultibyteIdentifier> *

!! <MultibyteIdentifier> must be a member of the list of values

given in the definition of the Meta-attribute.

有効な及び無効な識別子値の例を次に示す。

1)

*johnBrownsBody*

-

有効

2)

*sysrange*   -  有効

3)

*CUSTOMER-RECORD* - 無効:ハイフン(-)が途中に入っている。

4)

*9system*   - 有効

7.2.9 

列挙値  列挙値の構文を次に示す。

<EnumeratedValue> ::=

< <MultibyteIdentifier> >

!! <MultibyteIdentifier> must be a member of the list of values

given in the definition of the Meta-attribute.

有効な列挙値の例を次に示す。

1)

<red>

-

有効

2)

<10>

-

有効

7.2.10 

文字列  文字列は,次のとおり規定する。

<String> ::=

<StringDelimiter> [ <StringElement> ] ...

<StringDelimiter>

<StringDelimiter> ::=

"

<StringElement> ::=

<GeneralPrintableChar>

│ ]

│ │

│ #

│ <EscapeCharacter> <StringDelimiter>

│ <EscapeCharacter> <EscapeCharacter>

<StringDelimiter>に合致するパターンを文字列に含める必要がある場合,パターンの出現ごとに

<EscapeCharacter>を前置して“退避する”ことを必要とする。<EscapeCharacter>のパターンを埋め込む

ためには,

<EscapeCharacter>を前置することを必要とする。],  │,  及び  #は,<GeneralPrintableChar>で

はないので,

<StringElement>群として明示的に列挙する。  ", ], │,  及び  #は,文字列,テキスト文字列及

びコメント中の区切り記号(又は区切りの一部)であるので,

<GeneralPrintableChar>は,これらを含ま

ない。

有効な及び無効な文字列の例を次に示す。 
1)

"This is a string" -  有効

2)

"This is a "string" -  無効:退避されずに区切り記号が途中に入っている。


9

X 0138-3

:2004 (ISO/IEC 15475-3:2002)

3)

"This is a ╲ "string╲ "" -

有効:途中の区切り記号は退避されている。

4)

"Here is an escape character ╲ ╲  (backslash) in a string"

-

有効

7.2.11 

テキスト文字列  テキスト文字列は,印字可能文字の列で表し,空白類文字を含んでもよい。テキ

スト文字列は,次のとおり規定する。

<TextString> ::=

<OpenText>

[ <TextElement> ] ... [ ] ]

<CloseText>

<OpenText> ::=

#[

<TextElement> ::=

<GeneralPrintableChar>

│ "

│ │

│ #

│ <WhiteSpace>

│ <EscapeCharacter> <CloseText>

│ <EscapeCharacter> <EscapeCharacter>

│ ] <TextElementExcludingHashSign>

│ <OtherChar>

<TextElementExcludingHashSign> ::=

<GeneralPrintableChar>

│ "

│ │

│ <WhiteSpace>

│ <EscapeCharacter> <CloseText>

│ <EscapeCharacter> <EscapeCharacter>

│ ] <TextElementExcludingHashSign>

│ <OtherChar>

<OtherChar> ::=

<EscapeCharacter> <HexaDecimalValue>

<EscapeCharacter>

<CloseText> ::=

]#

<TextString>の最大長は,<OpenText>  及び  <CloseText>区切り記号の間にはさまれた 1024 文字とする。

<CloseText>区切り記号に合致するパターンを文字列に含める必要がある場合,パターンの出現ごとに

<EscapeCharacter>を前置して“退避する”ことを必要とする。<EscapeCharacter>のパターンを埋め込む

ためには,

<EscapeCharacter>を前置することを必要とする。",  │,  及び  #は,<GeneralPrintableChar>

ではないので,

<TextElement>群として明示的に列挙する。  ", ], │,  及び  #は,文字列,テキスト文字列及

びコメント中の区切り記号(又は区切りの一部)であるので,

<GeneralPrintableChar>は,これらを含ま

ない。

印字不可な文字(

<GeneralPrintableChar> , ", #, ], <EscapeCharacter>  又は  <WhiteSpace>でない文字)

を埋め込むためには,

<OtherChar>を用いる。<OtherChar>は,退避された 16 進数によって一文字を符号

化する。この 16 進数は,転送される文字を表す 2 進数と同値な 16 進数にする。


10

X 0138-3

:2004 (ISO/IEC 15475-3:2002)

有効な及び無効なテキスト文字列の例

i)

を次に示す  。

1)

#[Program SumIntegers(Input,Output);

var

total,input_integer : Integer;

begin

while not EOF(Input) do

begin

ReadLn(input_integer);

total:=total+input_integer

end;

WriteLn('Total =',total);

end.]#

-

有効

2)

#This is some text]#

-

無効:不完全なテキスト区切り記号になっている。

3)

#[The end of text marker is "]#"]#

-

無効:]#は退避されていない。

4)

#[Here is how to embed a ╲ ]# in the text]#

-

有効

5)

#[And here is how to embed two backslashes ╲ ╲ ╲ ╲  in the text]#

-

有効

6)

#[This is some text] -

無効:末尾に#がない。

7)

#[Control-Z is usually the character ╲ #H1A╲ , which is not printable.]#

-

有効

8)

#[There is a right square bracket, ], embedded in this text.]#

-

有効

9)

#[There is a right square bracket, ╲ ], embedded (and escaped) in this text.]#

-

無効:╲ ]の後ろに#がない。

これらのテキスト文字列の例は,表記上用いる復帰,改行のような空白類文字を使って記述する。

7.2.12 

コメント  コメントは,次のとおり規定する。

<Comment> ::=

<OpenComment> <CommentBody> <CloseComment>

<OpenComment> ::=

#│

<CommentBody> ::=

[ <CommentBodyChar> ] ... [ │ ]

<CommentBodyChar> ::=

<WhiteSpace>

│ <GeneralPrintableChar>

│ "

│ ]

│ #

│ <EscapeCharacter> <CloseComment>

│ <EscapeCharacter> <EscapeCharacter>

│ │ <CommentBodyCharExcludingHashSign>


11

X 0138-3

:2004 (ISO/IEC 15475-3:2002)

<CommentBodyCharExcludingHashSign> ::=

<WhiteSpace>

│ <GeneralPrintableChar>

│ "

│ ]

│ <EscapeCharacter> <CloseComment>

│ <EscapeCharacter> <EscapeCharacter>

│ │ <CommentBodyCharExcludingHashSign>

<CloseComment> ::=

│#

",  ],  及び  #は,<GeneralPrintableChar>ではないので,<CommentBodyChar>群として明示的に列挙す

る。

", ], │,  及び  #  は,文字列,テキスト文字列及びコメント中の区切り記号(又は区切りの一部)で

あるので,

<GeneralPrintableChar>は,これらを含まない。

CDIF 符号化規格で表記するコメントの有効な及び無効な例

2)

を次に示す。

1)

#│ this is

a multi-line comment │#

-

有効

2)

(#d1 #d2 #│ buckle my shoe │# #d3 #d4)

-

有効:行の中のコメントである。

3)

#│ hello ... <eof> -  無効:区切り記号がない。

これらのコメントの例は,表記上用いる復帰,改行のような空白類文字を使って記述する。

      <eof>は,ファイルの最後を表すために用いる。

7.2.13 

メタメタオブジェクト名  メタメタオブジェクト名は,次のとおり規定する。

<MetaMetaObjectName> ::=

<UpperCaseAlphabeticChar>

[ <UpperOrLowerCaseAlphabeticChar> ] ...

有効な及び無効なメタメタオブジェクト名の例を次に示す。

1)

CollectableMetaObject -

有効

2)

Meta-Entity

-  無効:ハイフン(-)はアルファベット文字ではない。

3)

metaattribute

-

無効:大文字で始まっていない。

7.2.14 

メタオブジェクト名  メタオブジェクト名は,次のとおり規定する。

<MetaObjectName> ::=

<MultibyteIdentifier>

有効な及び無効なメタオブジェクト名の例を次に示す。

1)

DataModel   - 有効

2)

Entity

-

有効

3)

DataModelAttribute

-

有効

4)

Security-Classification -

無効:途中にハイフン(-)がある。

5)

role

-

無効:大文字で始まっていない。

7.2.15 

識別子  識別子は,次のとおり規定する。

<Identifier> ::=

{ <UpperOrLowerCaseAlphabeticChar>│ <Digit> }

[ <UpperOrLowerCaseAlphabeticChar>

│ <Digit> │ <UnderScore> │ <Hyphen> ] ...


12

X 0138-3

:2004 (ISO/IEC 15475-3:2002)

有効な及び無効な識別子の例を次に示す。

1)

johnBrownsBody

-

有効

2)

custRec.employeeBadgeId -

無効:途中にドット(.)がある。

3)

sysrange

-

有効

4)

CUSTOMER-RECORD

-

有効

5)

9system

-

有効

6)

John Brown   -  無効:途中に空白がある。

7)

EMPLOYEE_RECORD

-

有効

7.2.16 

多バイト識別子  多バイト識別子は,次のとおり規定する。

<MultibyteIdentifier> ::=

<MultibyteIdentifierChar> ...

<MultibyteIdentifierChar> ::=  !! Printable characters defined in the character set

specified by the Transfer Header, excluding '╲ ','"','[', ']',

'│', '#', '<', '>', '*', ':', '+', '-', '(', ')', ',', '.',

and space.

参考

<MultibyteIdentifierChar>は,転送ヘッダで指定した文字集合で規定する印字可能な文字であ

る。ただし,'╲ ','

"','[', ']','│', '#', '<', '>', '*', ':', '+', '-', '(', ')', ',', '.'及び空白を除く。

7.3 

キーワード  キーワードは,転送ヘッダで指定した文字集合を用いてアルファベット文字,数字,

アンダスコア(_),ハイフン(-)及びコロン(:)の文字列として符号化する。キーワード中のアルファベット文

字は,大文字と小文字とを区別しない。キーワードの符号化を次に示す。

<BitmapKeyword> ::=

:BITMAP

<DateKeyword> ::=

:DATE

<ExtendMetaAttributeKeyword> ::=

:EXTENDMETA-ATTRIBUTE

<HeaderKeyword> ::=

:HEADER

<HeightKeyword> ::=

:HEIGHT

<IntegerListKeyword> ::=

:INTEGERLIST

<MetaModelKeyword> ::=

:META-MODEL

<ModelKeyword> ::=

:MODEL

<PointKeyword> ::=

:POINT

<PointListKeyword> ::=

:POINTLIST

<SubjectAreaReferenceKeyword> ::=

:SUBJECTAREAREFERENCE

<SummaryKeyword> ::=

:SUMMARY

<TimeKeyword> ::=

:TIME

<VersionNumberKeyword> ::=

:VERSIONNUMBER

<WidthKeyword> ::=

:WIDTH


13

X 0138-3

:2004 (ISO/IEC 15475-3:2002)

附属書 A(規定)ENCODING.1  形式文法

ここ附属書では,符号化の生成規則を規定する。規則の中には,7.  で出現したものもある。BNF 単独

で ENCODING.1 を完全に規定しているわけではない。追加の定義及び制約は,  6.  及び  7.  に示す。

欧 文 ア ル フ ァ ベ ッ ト で は

<GeneralPrintableChar>,  <UpperCaseAlphabeticChar>  及 び

<UpperOrLowerCaseAlphabeticChar>の符号化において大文字と小文字とを区別し,それ以外では区別しな

い。

符号化規則を次に示す。

<Absolute> ::=

ABSOLUTE

<AbsoluteUTC> ::=

ABSOLUTEUTC

<AbsoluteLocal> ::=

ABSOLUTELOCAL

<BinaryDigit> ::=

0 │ 1

<BinaryNumber> ::=

[ <Sign> ] <BinaryDigit> ...

<BinaryRadix> ::=

#B

<BinaryValue> ::=

<BinaryRadix> <BinaryNumber>

<BitmapKeyword> ::=

:BITMAP

<CloseComment> ::=

│#

<CloseScope> ::=

)

<CloseText> ::=

]#

<Comment> ::=

<OpenComment> <CommentBody> <CloseComment>

<CommentBody> ::=

[ <CommentBodyChar> ] ... [ │ ]

<CommentBodyChar> ::=

<WhiteSpace>

│ <GeneralPrintableChar>

│ "

│ ]

│ #

│ <EscapeCharacter> <CloseComment>

│ <EscapeCharacter> <EscapeCharacter>

│ │ <CommentBodyCharExcludingHashSign>

<CommentBodyCharExcludingHashSign> ::=

<WhiteSpace>

│ <GeneralPrintableChar>

│ "

│ ]

│ <EscapeCharacter> <CloseComment>

│ <EscapeCharacter> <EscapeCharacter>

│ │ <CommentBodyCharExcludingHashSign>

<Date> ::=

<YearValue> <DateDelimiter>

<MonthValue> <DateDelimiter>


14

X 0138-3

:2004 (ISO/IEC 15475-3:2002)

<DayValue>

<DateKeyword> ::=

:DATE

<DateDelimiter> ::=

/

<DayValue> ::=

<Integer>

<DecimalIntegerValue> ::=

<DecimalRadix> <Integer>

<DecimalPoint> ::=

.

<DecimalRadix> ::=

#D

<Digit> ::=

0 │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9

<Dot> ::=

.

<EnumeratedSeparator> ::=

,

<EnumeratedValue> ::=

< <MultibyteIdentifier> >

<EscapeCharacter> ::=

<Exp> ::=

E

<Exponent> ::=

<Exp> <Integer>

<ExtendMetaAttributeKeyword> ::=

:EXTENDMETA-ATTRIBUTE

<FalseValue> ::=

-FALSE-

<FloatDesignator> ::=

#F

<FloatValue> ::=

<FloatDesignator> <Mantissa> <Exponent>

<GeneralPrintableChar> ::=

!! Printable characters defined in the character set specified

by the Transfer Header, excluding '╲ ', '"', ']', '│' and '#'.

!!

Note

The characters ╲ , ", ], │, and # have been purposely left out

of <GeneralPrintableChar> because ╲  is used as an escape

character and the others are used as or in delimiters.

参考

<GeneralPrintableChar>は,転送ヘッダで指定した文字集合で規定する印字可能な文字である。

      ただし,'╲ ','

"', ']','│'及び'#'を除く。'╲ 'は退避文字として利用し,'"', ']','│'及び'#'は区切り記号と

      して利用するため,'╲ ','

"', ']','│'及び'#'を<GeneralPrintableChar>から除く。

<HeaderKeyword> ::=

:HEADER

<HeightKeyword> ::=

:HEIGHT

<HexaDecimalValue> ::=

<HexRadix> <HexNumber>

<HexDigit> ::=

0 │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9

│ A │ B │ C │ D │ E │ F

│ a │ b │ c │ d │ e │ f

<HexNumber> ::=

[ <Sign> ] <HexDigit> ...

<HexRadix> ::=

#H

<Hours> ::=

<Integer>

<Hyphen> ::=

-

<Identifier> ::=

{ <UpperOrLowerCaseAlphabeticChar>

│ <Digit> }


15

X 0138-3

:2004 (ISO/IEC 15475-3:2002)

  [ <UpperOrLowerCaseAlphabeticChar>

│ <Digit> │ <UnderScore>

│ <Hyphen> ] ...

<IdentifierValue> ::=

* <MultibyteIdentifier> *

<Integer> ::=

[ <Sign> ] <Digit> ...

<IntegerListKeyword> ::=

:INTEGERLIST

<ListSeparator> ::=

,

<LowerCaseAlphabeticChar> ::=  a │ b │ c │ d │ e │ f │ g │ h │ i │ j │ k

│ l │ m │ n │ o │ p │ q │ r │ s │ t │ u

│ v │ w │ x │ y │ z

<Mantissa> ::=

[ <Sign> ] <Digit> ...

[ <DecimalPoint> [ <Digit> ... ] ]

<MetaModelKeyword> ::=

:META-MODEL

<MetaMetaObjectName> ::=

<UpperCaseAlphabeticChar>

[ <UpperOrLowerCaseAlphabeticChar> ] ...

<MetaObjectName> ::=

<MultibyteIdentifier>

<Minutes> ::=

<Integer>

<ModelKeyword> ::=

:MODEL

<MonthValue> ::=

<Integer>

<MultibyteIdentifier> ::=

<MultibyteIdentifierChar> ...

<MultibyteIdentifierChar> ::=  !! Printable characters defined in the character set specified

by the Transfer Header, excluding '╲ ', '"','[', ']', '│', '#',

'<', '>', '*', ':', '+', '-', '(', ')', ',', '.', and space.

<OctalDigit> ::=

0 │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7

<OctalNumber> ::=

[ <Sign> ] <OctalDigit> ...

<OctalRadix> ::=

#O

<OctalValue> ::=

<OctalRadix> <OctalNumber>

<OpenComment> ::=

#│

<OpenScope> ::=

(

<OpenText> ::=

#[

<OtherChar> ::=

<EscapeCharacter> <HexaDecimalValue> <EscapeCharacter>

<PixelIntensity> ::=

0 .. 255

<PixelSeparator> ::=

,

<PointKeyword> ::=

:POINT

<PointListKeyword> ::=

:POINTLIST

<PointSeparator> ::=

<Space>

<PositiveInteger> ::=

[ + ] <Digit> ...

<RelativeNegative> ::=

RELATIVENEGATIVE

<RelativePositive> ::=

RELATIVEPOSITIVE

<Seconds> ::=

<Integer>


16

X 0138-3

:2004 (ISO/IEC 15475-3:2002)

[ <DecimalPoint> <Digit>

[<Digit> [ <Digit> ] ] ]

<Sign> ::=

+ │ -

<Space> ::=

!! Space character as defined in the character set specified by

the Transfer Header.

<String> ::=

<StringDelimiter> [ <StringElement> ] ...

<StringDelimiter>

<StringDelimiter> ::=

"

<StringElement> ::=

<GeneralPrintableChar>

│ ]

│ │

│ #

│ <EscapeCharacter> <StringDelimiter>

│ <EscapeCharacter> <EscapeCharacter>

<SubjectAreaReferenceKeyword> ::=

:SUBJECTAREAREFERENCE

<SummaryKeyword> ::=

:SUMMARY

<TextElement> ::=

<GeneralPrintableChar>

│ "

│ │

│ #

│ <WhiteSpace>

│ <EscapeCharacter> <CloseText>

│ <EscapeCharacter> <EscapeCharacter>

│ ] <TextElementExcludingHashSign>

│ <OtherChar>

<TextElementExcludingHashSign> ::=

<GeneralPrintableChar>

│ "

│ │

│ <WhiteSpace>

│ <EscapeCharacter> <CloseText>

│ <EscapeCharacter> <EscapeCharacter>

│ ] <TextElementExcludingHashSign>

│ <OtherChar>

<TextString> ::=

<OpenText> [ <TextElement> ] ... [ ] ]

<CloseText>

<Time> ::=

<Hours> <TimeDelimiter>

<Minutes> <TimeDelimiter>

<Seconds>


17

X 0138-3

:2004 (ISO/IEC 15475-3:2002)

<TimeKeyword> ::=

:TIME

<TimeDelimiter> ::=

:

<TrueValue> ::=

-TRUE-

<UnderScore> ::=

_

<UpperCaseAlphabeticChar> ::=  A │ B │ C │ D │ E │ F │ G │ H │ I │ J │ K

│ L │ M │ N │ O │ P │ Q │ R │ S │ T │ U

│ V │ W │ X │ Y │ Z

<UpperOrLowerCaseAlphabeticChar> ::=

<UpperCaseAlphabeticChar>

│ <LowerCaseAlphabeticChar>

<VersionNumberKeyword> ::=

:VERSIONNUMBER

<WhiteSpace> ::=

!! Space, horizontal tab, vertical tab, carriage return, line

feed or form feed character as defined in the character set

specified by the Transfer Header.

<WidthKeyword> ::=

:WIDTH

<YearValue> ::=

<Integer>


18

X 0138-3

:2004 (ISO/IEC 15475-3:2002)

附属書 B(参考)多バイトの例

この附属書(参考)は,本体及び附属書(規定)に関係する事柄を補足するもので,規定の一部ではな

い。

ここでは,CDIF 転送形式のどの部分が多バイト文字を受け入れられるのかを示す例を記載する。各々

の例に対応する本文中の例示を次に示す。

B.1 7.2.9

列挙値の例  有効な列挙値の例を次に示す。

1)

<赤>

-

有効

2)

<10>

-

有効

B.2 7.2.10

文字列の例  有効な及び無効な文字列の例を次に示す。

1)

"文字列です"

-

有効

2)

""文字列です"

-

無効:退避されない区切り記号を含んでいる。

3)

"╲ "文字列╲ "です" -          有効:途中の区切り記号が退避されている。

4)

"文字列中のエスケープ文字╲ ╲ (逆スラッシュ)です"

-

有効

B.3 7.2.11

テキスト文字列の例  有効な及び無効なテキスト文字列の例

3)

を次に示す。

1)

#[Program SumIntegers(Input,Output);

var

total, input_integer : Integer;

begin

while not EOF(Input) do

 

begin

 

ReadLn(input_integer);

 

total:=total+input_integer

 

end;

WriteLn('合計=',total);

end. ]#

-

有効

2)

#これは文章です]# - 無効:文字の区切り記号が不完全になっている。

3)

#[文章の終端記号は"]#"]#]

-

無効:]#が退避されていない。

4)

#[これは╲ ]#の文章中への埋め込み方です]#

-

有効

5)

#[そしてこれは 2 つの逆スラッシュ  ╲ ╲ ╲ ╲ の文章中への埋め込み方です]#

-

有効

6)

#[これは文章です] - 無効:末尾に#がない。

7)

#[制御符号-Z は通常、文字╲ #H1A╲ です,これは印刷不能です。]#

-

有効

8)

#[一つの右大かっこ,],がこの文書中に埋め込まれています。]#

-

有効


19

X 0138-3

:2004 (ISO/IEC 15475-3:2002)

9)

#[一つの右大かっこ,╲ ],エスケープされてこの文書中に埋め込まれています。]#

-

無効:

“╲ ]”は,テキスト文字列の一部として許されない。

        “╲ ]”の直後は“#”であることを必要とする。なお,

“╲ ]#”

        は,

“]#”をテキスト文字列の途中に含めるための表現であ

        る。

  注

3)

これらのテキスト文字列の例は,表記上用いる復帰,改行のような空白類文字を使って記述す

        る。

B.4 7.2.12

コメントの例  CDIF 符号化の規格で表記されるコメントの有効な及び無効な例

)

を次に示す。

1)

#│  これは

改行入りコメントです  │#

-

有効

2)

(#d1 #d2 #│  私の靴の留め金  │# #d3 #d4) -

有効:行の途中に挿入されたコメント。

3)

#│ こんにちは...<eof>

-

無効:区切り記号がない。

  注

4)

これらのコメントの例は,表記上用いる復帰,改行のような空白類文字を使って記述する。

      <eof>は,ファイルの最後を表すために用いる。

B.5 7.2.16 

多バイト識別子の例  多バイト識別子の有効な及び無効な例を次に示す。

1)

鈴木太郎の本体

-

有効

2)

顧客記録.従業員名札番号 -

無効:途中に多バイト文字でないドット(.)がある。

3)

SYSRANGE

-

有効

4)

顧客-記録   - 無効:途中に多バイト文字でないハイフン(-)がある。

5)

9システム   -  有効

6)

鈴木  太郎   - 無効:途中に多バイト文字でない空白がある。

7)

従業員_記録

-  有効

8)

顧客記録:従業員名札番号 -

無効:途中に多バイト文字でないコロン(:)がある。

9)

鈴木  太郎   -  有効:漢字空白の挿入は許されている。