ページの先頭行へ戻る
Interstage Shunsaku Data Manager アプリケーション開発ガイド

L.1.4 attributeRule


説明

列の値をXML文書の属性として変換する場合のルールを指定します。


書式


<attributeRule id="属性値" { colname="属性値"| colno="属性値" }
 attrname="属性値" attrof="属性値" null="属性値" handler="属性値"
 handler-arg="属性値" />

注) colname属性とcolno属性は、どちらか一方を指定します。


属性

属性名

説明

省略

id

マッピングルール識別子(注1)を指定します。
id属性の指定は必須です。

不可

colname

attributeRuleタグの要素として取り出したい結果表の列名を指定します。
colname属性またはcolno属性のどちらか一方を必ず指定してください。

条件により可

colno

attributeRuleタグの要素として取り出したい結果表の列の番号を指定します。
番号は1から始まる整数です。
colname属性またはcolno属性のどちらか一方を必ず指定してください。

条件により可

attrname

attributeRuleタグの属性名を指定します。attrname属性値を指定しない場合、属性値には結果表の列名が設定されます(注2)。
属性値には、空文字("")を指定することはできません。

不可

attrof

attributeRuleタグを指定するカラムルールのマッピングルール識別子を指定します。
attrof属性の設定は必須です。

不可

null

列の値がnullである場合の属性の出力形式を指定します。
以下のいずれかを指定できます。

  • empty:
    列の値を空文字("")として出力します。

  • omit:
    列の値を省略します。

null属性を指定しない場合は、“empty”が指定されたとみなします。

handler

結果表の列に格納されているデータがバイナリデータの場合、データを文字コード変換して、XML文書として出力します。
結果表の列がバイナリデータの場合、handler属性に“BINARYDATA”を指定します。handler-arg属性には、変換するデータ種別と文字コードを指定します。
結果表の列のデータがバイナリデータでない場合は、handler属性の設定は不要です。

handler-arg

handler属性に“BINARYDATA”を指定している場合に有効となる属性です。
バイナリデータから文字コード変換するデータ種別と結果表の列に格納されているデータの文字コードを指定します。
データ種別と文字コードは、カンマで区切って指定します。

  • データ種別
    データ種別は、データをテキストデータとしてXML文書に出力する場合に指定します。データ種別には、“TEXT”を指定します。
    実体参照(注3)の変換処理を行います。

  • 文字コード
    文字コードにはJavaの文字コード名を指定します。handler-arg属性で指定した文字コード名は、文字コード名を必要とするJavaの各種メソッドに引数として渡されます。

handler-arg属性を指定しない場合、データ種別は“TEXT”、文字コードは“UTF-8”が指定されたとみなします。

注1) マッピングルール識別子は、ルールを識別するために使用する識別子です。この識別子は、1つのマッピングルールファイル内で一意である必要があります。

注2) CSVファイルからの変換の場合、CSVSourceクラスのsetFirstRecordToColumn()メソッドにより、1行目のデータを列名として扱うことができます。

注3) XML変換機能で使用できる実体参照を以下に示します。

実体参照

表す記号

&lt;

<

&gt;

>

&amp;

&

&apos;

'

&quot;

"


要素

ありません。


注意事項

以下の場合、attributeRuleタグのcolname属性とcolno属性が、1つのマッピングルールファイル内に同時に指定されているため、エラーとなります。


<attributeRule id="a1" colname="B" attrname="NUM" attrof="c1" />
<attributeRule id="a2" colno="3" attrname="NAME" attrof="c1" />

以下の場合、1つのマッピングルールファイル内に、colname属性とcolno属性が同時に指定されているため、エラーとなります。


<columnRule id="c1" colname="A" tagname="NAME" parent="p1" />
<attributeRule id="a1" colno="2" attrname="NUM" attrof="c1" />
<attributeRule id="a2" colno="3" attrname="NAME" attrof="c1" />

以下の場合、同一のカラムルールに対する属性ルールの属性名に、同じ属性名が指定されているため、エラーとなります。

<columnRule id="c1" colname="B" tagname="NAME" parent="p1" />
<attributeRule id="a1" colname="A" attrname="foo" attrof="c1" />
<attributeRule id="a2" colname="C" attrname="foo" attrof="c1" />