4.14.2 プロパティマッピング定義ファイルの記述形式

ここでは,プロパティマッピング定義ファイルの記述形式について説明します。

プロパティマッピング定義の記述形式を次の図に示します。

図4-3 プロパティマッピング定義の記述形式

[図データ]

プロパティマッピング定義はセクション形式で指定します。プロパティマッピング定義は複数のセクションで構成され,それぞれのセクションは複数のエントリで構成されます。なお,1行の長さは,2,048バイトまで(改行文字を含む)です。

<この項の構成>
(1) セクションの文法
(2) エントリの文法
(3) コメントの文法

(1) セクションの文法

セクションを記述する場合の文法を次に示します。

セクション名::=文字列
予約セクション名:EDM_MAPPING_CLASS_LIST
その他のセクション名::={各セクションのエントリで定義したセクション名}
セクション名に指定できる文字を次に示します。
  • 半角英数字
  • 半角記号
ただし,「[」(左角括弧)および「]」(右角括弧)を除きます。

セクションの種類は,次に示す3種類があります。

以降,それぞれのセクションの文法について説明します。

(a) マッピング先クラス一覧セクション

マッピング先となるクラスを指定するセクションです。セクション名には, EDM_MAPPING_CLASS_LISTを指定してください。このセクションは,プロパティマッピング定義中に1か所だけ存在します。

エントリには,マッピング先クラス名と,マッピング内容を記述するセクションの名称(マッピング先クラス用セクション名)を定義します。エントリには使用するすべてのクラスについて定義します。エントリに定義するクラスは,dmaClass_ConfigurationHistoryクラスのサブクラスおよびdmaClass_DocVersionクラスのサブクラスです。それぞれ一つずつまたはどちらか一つについて定義します。

エントリの内容を次に示します。

(b) マッピング先クラス用セクション

マッピング先となるプロパティ名とタグ名(属性名)の対応を定義するセクションです。セクション名には,「(a) マッピング先クラス一覧セクション」で定義したマッピング先クラス用セクション名を指定します。使用するすべてのマッピング先クラスについて,このセクションを定義します。エントリには,次に示す内容を定義します。

マッピング先に指定できるプロパティはユーザ追加プロパティだけです。マッピング先がVariableArray型プロパティの場合,タグ名との対応は別セクションで定義するので,このセクションではVariableArray型プロパティ名とそのプロパティ用のセクションの名称(マッピング先VariableArray型プロパティ用セクション名)を定義します(VariableArray型プロパティ名エントリ)。エントリの内容を次に示します。

(c) マッピング先VariableArray型プロパティ用セクション

マッピング先VariableArray型プロパティ中の要素プロパティ名とタグ名(属性名)の対応を定義するセクションです。セクション名には「(b) マッピング先クラス用セクション」で定義したマッピング先VariableArray型プロパティ用セクション名を指定します。「(b) マッピング先クラス用セクション」で定義したすべてのマッピング先VariableArray型プロパティについて,このセクションを定義します。エントリには次に示す内容を定義します。

まず,EDM_RECORDエントリで親タグを定義し,次に各要素プロパティ名とタグ(属性)名の対応を定義します。親タグは,すべての子タグの上位にあり,繰り返し出現するタグである必要があります。なお,EDM_RECORDエントリはセクションの先頭だけに記述できます。エントリの内容を次に示します。

(2) エントリの文法

エントリを記述する場合の文法を次に示します。

エントリ名::=文字列
予約エントリ名:EDM_TAGおよびEDM_RECORD
その他のエントリ名::={クラス名|プロパティ名}
データ::={タグ文字列|EDM_RECORD用タグ文字列|セクション名}
タグ文字列::="{タグ名[/タグ名]...[/属性名] | 属性名}"
次のどちらかの形式で指定します。
  • 1個以上のタグ名,および0個または1個の属性名を指定します。
  • 1個の属性名を指定します。
タグ名とタグ名との間,およびタグ名と属性名との間は「/」(スラント)で区切ります。
EDM_RECORD用タグ文字列::="タグ名[/タグ名]..."
EDM_RECORDエントリ専用の記述形式です。タグ名は1回以上指定します。タグ名とタグ名との間は「/」(スラント)で区切ります。
タグ名::= {文字列 | .}
タグ名または「.」(ピリオド)を指定します。
属性名::= @文字列
注意
  • エントリ名に指定できる文字はメタ情報のクラス名(edmProp_DisplayNameプロパティに指定した値)として指定できる文字です。
  • タグ名および属性名に指定できる文字列は,XMLの名前文字列として使用できる文字列です。XMLの名前文字列は,1文字目は,半角英字,全角文字(全角数字を除く),「_」(下線文字),または「:」(コロン)です。2文字目以降は,半角英数字,全角文字(全角数字を除く),「_」(下線文字),「:」(コロン),「.」(ピリオド),または「-」(マイナス記号)です。

エントリの種類は,次に示す5種類があります。

以降,それぞれのエントリの文法について説明します。

(a) クラス名エントリ

マッピング先クラス一覧セクション内だけで記述できるエントリです。エントリ名でマッピング先クラスを定義すると同時に,データでマッピング内容を記述するセクションの名称を定義します。

クラス名には,次のクラスを指定できます。

指定内容を次に示します。

(b) EDM_TAGエントリ

プロパティ名エントリの解析時にカレントとして扱うタグ階層を指定するエントリです。このエントリ以降に出現するプロパティ名エントリでは,指定されたタグはこのエントリで指定したタグの下の階層に存在するものとして解析されます。マッピング先クラス用セクションとマッピング先VariableArray型プロパティ用セクションで記述できます。

このエントリの指定は,次のEDM_TAGエントリが出現するか,セクションが終了するまで有効です。ただし,このエントリの指定後にマッピング先VariableArray型プロパティ用セクション名が定義されている場合,そのマッピング先VariableArray型プロパティ用セクションには,このエントリの指定内容が引き継がれます。

マッピング先VariableArray型プロパティ用セクションでこのエントリを指定した場合,指定したタグ階層はEDM_RECORDエントリで指定したタグの下の階層に存在するものとして解析されます。

このエントリで「.」(ピリオド)だけを指定すると「セクションの基本のEDM_TAGエントリ指定にする」という意味になります。このように指定すると,マッピング先クラス用セクション内ではカレントとして扱うタグ階層がないことを示し,マッピング先VariableArray型プロパティ用セクション内ではEDM_RECORDエントリの指定タグ階層を示します。指定内容を次に示します。

(c) EDM_RECORDエントリ

VariableArray型プロパティにマッピングする子タグ群の親の位置に当たる繰り返しタグ(親タグ)を定義するエントリです。VariableArray型プロパティの配列数は,ここで定義したタグの出現回数になります。このエントリは上位セクションのEDM_TAGエントリの指定を引き継ぐので,定義したタグの前には引き継いできたタグ階層が追加されます(上位セクションのEDM_TAG+指定タグ)。マッピング先VariableArray型プロパティ用セクションの先頭に必ず記述してください。

このエントリ以降に出現するEDM_TAGエントリおよびプロパティ名エントリでは,指定されたタグは,すべてこのエントリで指定したタグの下の階層に存在するものとして解析されます。このエントリの指定は,セクションが終了するまで有効です。

このエントリを記述する場合の注意事項を次に示します。

指定内容を次に示します。

(d) プロパティ名エントリ

マッピング先プロパティとマッピングするタグ(属性)を定義するエントリです。指定値によってマッピングする対象が異なります。プロパティ名のタグの指定形式について次の表に示します。

表4-22 プロパティ名のタグの指定形式

タグの指定形式マッピング対象
タグ名指定したタグの開始タグおよび終了タグに囲まれた文字列(タグ間のテキスト)をマッピングします。
属性名指定した属性の値をマッピングします。対象タグは上位のEDM_TAGエントリおよびEDM_RECORDエントリで指定したタグです。
「.」(ピリオド)タグ間テキストをマッピングします。対象タグは上位のEDM_TAGエントリおよびEDM_RECORDエントリで指定したタグです。

(b) EDM_TAGエントリ」および「(c) EDM_RECORDエントリ」で説明したように,プロパティ名エントリで指定したタグは,これらの二つのエントリが上位に存在するかどうかで解析のしかたが変わります。上位エントリによる指定タグの解析の違いについて次の表に示します。

表4-23 上位エントリによる指定タグの解析の違い

上位エントリ解析結果および説明
EDM_TAGエントリ有り
EDM_TAG+指定タグ
説明
このエントリで指定したタグの前にEDM_TAGエントリで指定したタグ階層を追加して解析します。
EDM_RECORDエントリ有り
上位セクションのEDM_TAG+EDM_RECORD+指定タグ
説明
このエントリで指定したタグの前にEDM_RECORDエントリで指定したタグを追加して解析します。
両方有り
上位セクションのEDM_TAG+EDM_RECORD+EDM_TAG+指定タグ
説明
このエントリで指定したタグの前にEDM_RECORDエントリで指定したタグとEDM_TAGエントリで指定したタグを追加して解析します。
両方なし
指定タグだけ
説明
このエントリで指定したタグをそのまま解析します。解析結果にタグ名は必要なので,この場合,属性名だけの指定や,「.」(ピリオド)の指定はできません。

このエントリはマッピング先クラス用セクションとマッピング先VariableArray型プロパティ用セクションで記述できます。マッピング先VariableArray型プロパティ用セクションでは,EDM_RECORDエントリが上位セクションのEDM_TAGエントリを引き継いでいるので,タグの内容には注意する必要があります。

マッピング先として指定できるプロパティはユーザ追加プロパティだけです。ただし,マッピング対象となる属性にはマッピング元XMLタグ定義(DCD)によってデータ型が設定されているので,プロパティと属性のデータ型の組み合わせによってはマッピングできない場合があります。マッピングできるデータ型の組み合わせを次の表に示します。

表4-24 マッピングできるデータ型の組み合わせ

プロパティのデータ型マッピング対象のマッピング元XMLタグ定義(DCD)データ型
DMA_DATATYPE_INTEGER32string,number,int,fixed,decimal,i1,i2,i4,ui1,ui2,ui4,fixed14.4(値が整数値を表す文字列であること)
DMA_DATATYPE_BOOLEAN同上(ただし値が'0'または'1'であること)
DMA_DATATYPE_STRINGentity,entities,bin.hex,bin.base64以外の型
注1
タグ間テキストのマッピング元XMLタグ定義(DCD)データ型はstring型です。
注2
マッピング元XMLタグ定義(DCD)データ型のboolean型は,DMA_DATATYPE_STRING型にだけマッピングできます。

指定内容を次に示します。

(e) VariableArray型プロパティ名エントリ

マッピング先VariableArray型プロパティのマッピング内容を記述するセクションのセクション名を定義するエントリです。マッピング先クラス用セクション内だけで記述できます。指定内容を次に示します。

(3) コメントの文法

「;」(セミコロン)で始まる行はコメント行として扱われます。