X 0138-3:2004 (ISO/IEC 15475-3:2002)
(1)
2019年7月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)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
目 次
ページ
序文 ··································································································································· 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 2進数値 ····················································································································· 5
7.2.3 8進数値 ····················································································································· 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)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
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
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
日本工業規格 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)
第3部:符号化ENCODING.1
(JIS X 0138-3)
図 1 CDIF規格群
図1は,CDIF規格群を構成する種々の規格を示す。網掛け部分は,この規格のCDIF規格群の中での
2
X 0138-3:2004 (ISO/IEC 15475-3:2002)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
位置を示す。
この規格は,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. 適合性 ある製品がこの規格の附属書Aに示すすべての定義及び規則に従い, JIS X0137-1の2.で
規定するCDIFアーキテクチャ適合である場合に限り,その製品は,CDIF転送形式一般規則の規格に適合
する。製品は,転送形式一般規則の規格への適合性あり又は適合性なしのいずれかとなる。CDIF転送形
式一般規則の一部を規定する規格に対する部分適合は,規定しない。
ある製品がJIS X 0138-3の附属書Aに適合し,かつJIS X 0138-2にも適合する場合に限り,その製品は,
CDIF符号化規格に適合する。ある製品がJIS X 0138-2の附属書Aに適合する場合に限り,その製品は,
CDIF構文規格に適合する。
3. 引用規格 次に掲げる規格は,この規格に引用されることによって,この規格の規定の一部を構成す
る。これらの引用規格は,発効年(又は発行年)を付記してあるものは,記載の年の版だけがこの規格を構
成するものであって,その後の改正版・追補には適用しない。発効年(又は発行年)を付記していない引用規
格は,その最新版を適用する。
3
X 0138-3:2004 (ISO/IEC 15475-3:2002)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
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)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
メタモデル(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)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
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>の符号化において大文字と小文字とを区別し,それ以外で
は区別しない。詳細は,附属書Aに示す。
2 以降に示す例は,欧文アルファベットでのものである。多バイト表記の例を附属書Bに本文
の例に対応させてまとめて示す。
7.2
符号化構造
7.2.1
10進整数値 10進整数値は,次のとおり規定する。
6
X 0138-3:2004 (ISO/IEC 15475-3:2002)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
<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〜101023までの範囲の高々10進16けたの値をもつ。
浮動小数値は,次のとおり規定する。
7
X 0138-3:2004 (ISO/IEC 15475-3:2002)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
<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)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
有効な及び無効な時間の例を次に示す。
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)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
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)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
有効な及び無効なテキスト文字列の例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.]#
-
無効:╲]の後ろに#がない。
注1 これらのテキスト文字列の例は,表記上用いる復帰,改行のような空白類文字を使って記述する。
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)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
<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>
-
無効:区切り記号がない。
注2 これらのコメントの例は,表記上用いる復帰,改行のような空白類文字を使って記述する。
<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)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
有効な及び無効な識別子の例を次に示す。
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)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
附属書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)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
<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)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
[ <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)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
[ <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)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
<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)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
附属書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)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
9)
#[一つの右大かっこ,╲],エスケープされてこの文書中に埋め込まれています。]#
-
無効:“╲]”は,テキスト文字列の一部として許されない。
“╲]”の直後は“#”であることを必要とする。なお,“╲]#”
は,“]#”をテキスト文字列の途中に含めるための表現であ
る。
注3) これらのテキスト文字列の例は,表記上用いる復帰,改行のような空白類文字を使って記述す
る。
B.4 7.2.12コメントの例 CDIF符号化の規格で表記されるコメントの有効な及び無効な例4)を次に示す。
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)
鈴木 太郎
-
有効:漢字空白の挿入は許されている。