6-2 XMLデータファイル
XMLデータファイルとは、文書構造を構成する要素を、タグを使って記述するものです。タグを使った記述方式を採用することで、データの意味やデータ構造を持ったままデータ交換ができます。
XMLデータファイルの書き方と制約、Universal Connect/Xで使用するXMLタグや要素、データ定義の形式について説明します。
データ構造
Universal Connect/Xの印刷データとして使用するXMLデータファイルのデータ構造について説明します。
Universal Connect/Xの印刷データとして使用するXMLファイルのデータ構造は次のようになっています。
<vfreport> ルートタグ <document> ドキュメントタグ <form> フォームタグ <customer><![CDATA[株式会社ABC]]> 固定項目データタグ </customer> 終了固定項目データタグ <record> レコードタグ <product><![CDATA[ABCプリンター]]> レコードデータタグ </product> 終了レコードデータタグ </record> 終了レコードタグ </form> 終了フォームタグ </document> 終了ドキュメントタグ </vfreport> 終了ルートタグ
ルートタグ/終了ルートタグ
XML文書を作成する場合に1つだけ定義する必要があります。同階層で2つ以上は定義できません。
ルートタグからXML文書の開始、終了ルートタグでXML文書の終了を定義できます。
ドキュメントタグ/終了ドキュメントタグ
印刷文書の状態を設定します。ドキュメントタグの属性に、状態を属性値として指定し、終了ドキュメントタグで状態の終了を定義します。終了ドキュメントタグで終了した後も、新しくドキュメントタグを定義するまでその状態は継続されます。ドキュメントタグは省略できます。
フォームタグ/終了フォームタグ
印刷様式の状態を設定します。フォームタグの属性に、状態を属性値として指定し、終了フォームタグで状態の終了を定義します。終了フォームタグで終了した後も、その後新しくフォームタグを定義するまで、その状態が継続されます。フォームタグは省略できます。
固定項目データタグ/終了固定項目データタグ
印刷する固定項目のフィールド名とデータの指定をします。タグにあたる部分が印刷フィールド名、次に続くデータが印刷データ、最後が印刷データ終了タグです。
レコードタグ/終了レコードタグ
レコードタグから終了レコードタグまでのデータを、レコードデータとしてあつかいます。レコードデータを定義する前には、必ず定義します。省略はできません。
レコードデータタグ/終了レコードデータタグ
印刷するレコードデータのフィールド名とデータを指定します。タグにあたる部分が印刷レコードフィールド名、次に続くデータが印刷レコードデータ、最後が印刷レコードデータ終了タグです。
XMLのデータ定義形式
簡易形式
簡易形式は、XMLデータ内にフィールド名とデータのみを定義する形式です。
ルートタグ/ルート終了タグ
レコードタグ/終了レコードタグ
を定義する必要があります。
下記は簡易形式のXMLのデータ定義例です。
<?xml version="1.0" encoding="Shift_JIS" ?> <vfreport> <record> <classification_code>1</classification_code> <product_code>1</product_code> <product_name><![CDATA[果汁100% オレンジ]]></product_name> <component_unit><![CDATA[200gx12瓶]]></component_unit> <unit_price><![CDATA[200.0000]]></unit_price> <stock>10</stock> <order>0</order> <supplier><![CDATA[東京コーヒー]]></supplier> <product_type><![CDATA[飲料]]></product_type> </record> <record> <classification_code>1</classification_code> <product_code>2</product_code> <product_name><![CDATA[果汁100% グレープ]]></product_name> <component_unit><![CDATA[200gx12瓶]]></component_unit> <unit_price><![CDATA[200.0000]]></unit_price> <stock>12</stock> <order>0</order> <supplier><![CDATA[東京コーヒー]]></supplier>
完全形式
完全形式は、印刷にかかわる属性などもあわせて定義する形式です。[データ構造]の項目のすべてのタグを使って定義できます。
下記は完全形式のXMLのデータ定義例です。
<?xml version="1.0" encoding="Shift_JIS" ?> <vfreport> <document name="sample2" printer="NEC PCPR201" port="PR201" file="C:\sample\sample2.pdf" stack="1"> <form file="D:\xml_test\syohin5.xml" mode="4" copies="1" calc="0" duplex="1,20"> <record> <classification_code>1</classification_code> <product_code>1</product_code> <product_name><![CDATA[果汁100% オレンジ]]</product_name> <component_unit><![CDATA[200gx12瓶]]</component_unit> <unit_price><![CDATA[200.0000]]</unit_price> <stock>10</stock> <order>0</order> <supplier><![CDATA[東京コーヒー]]</supplier> <product_type><![CDATA[飲料]]</product_type> </record> <record> <classification_code>1</classification_code> <product_code>2</product_code> <product_name><![CDATA[果汁100% グレープ]]</product_name> <component_unit><![CDATA[200gx12瓶]]</component_unit> <unit_price><![CDATA[200.0000]]</unit_price> <stock>12</stock> <order>0</order> <supplier><![CDATA[東京コーヒー]]</supplier> <product_type><![CDATA[飲料]]</product_type>
XMLデータの制約
Universal Connect/Xの印刷データとしてXMLデータファイルを使用する場合の制約について説明します。
タグ文字種
タグは、<>で囲んで定義します。タグ自体に<>を含めて定義できません。
Universal Connect/Xでは、タグが印刷フィールド名で表されます。タグ文字として使用できる文字のみで印刷フィールド名を定義します。
データ文字種
データは、開始タグと終了タグで囲んで定義します。<>など含むデータの場合は、XMLの仕様に従って定義してください。
<remarks><![CDATA[</biko> is end tag]]></remarks>
属性文字種
属性値は、開始タグの中に次のように定義します。「"」「'」の両方が含まれる定義はできません。
属性名="属性値"
属性名='属性値'
データレコードの区切り
データレコードはレコードタグ~終了レコードタグまでを1レコードとして定義できます。
<record> ~ </record>
リピートフィールドへのデータ出力
リピートフィールドへの出力は、データタグに属性値を書き込む形式で定義できます。
<product no="1">aaaaaaaa</product>
フィールドへの属性値出力
属性値は、データタグに属性値を書き込む形式で定義できます。属性値については、『SVF Java PRODUCTS API関数 リファレンスマニュアル』を参照してください。
<quantity attr="Bold=1">100</quantity>