XML 対応オブジェクトと XML 仮想ドキュメントの比較
XML メッセージでプロダクションを開発する場合、以下の構造のいずれかを使用して XML ドキュメントを含めることができます。
-
XML 仮想ドキュメント
-
XML 対応オブジェクト
入力 XML ドキュメントの要素のうちアクセスする必要があるものが少数の場合、XML 仮想ドキュメントを使用できますが、入力 XML ドキュメントのほとんどの要素にアクセスする必要がある場合、より効率的な XML 対応オブジェクトを選択する必要があります。これは特に、多くの要素を含むオブジェクトが変換によって処理される場合に当てはまります。XML 対応オブジェクトを処理するために、以下のビジネス・サービスとビジネス・オペレーションが用意されています。
-
EnsLib.XML.Object.Service.FileService
-
EnsLib.XML.Object.Service.FTPService
-
EnsLib.XML.Object.Operation.FileOperation
-
EnsLib.XML.Object.Operation.FTPOperation
XML 対応オブジェクトのビジネス・サービスは、XML ドキュメントを含むファイルを読み取り、これを 1 つ以上のオブジェクトに変換します。XML 要素を定義し、オブジェクトに変換するプロパティを指定します。XML ルート・ドキュメントに 1 つの要素が含まれている場合、サービスはこれを 1 つのオブジェクトに変換しますが、XML ルート・ドキュメントに一連の要素が含まれている場合、別々のオブジェクトに変換します。
XML 対応オブジェクトのサービスを使用するには、以下を実行します。
-
処理する入力 XML ドキュメントの構造に一致するクラスを定義します。このクラスは、XML ドキュメント全体に対応するか、またはルート XML ドキュメント内の繰り返し要素を照合できます。XML スキーマ・ウィザードを使用してこのクラスを定義できます。オプションでこのクラスに NAMESPACE パラメータを定義できます。このパラメータは XML ネームスペースを指定します。
-
ビジネス・サービスの [クラス名] フィールドでクラス名を指定します。
-
オプションで、[要素名] フィールドで要素名を指定します。このフィールドを指定する場合、サービスは、ルート XML オブジェクト内でこの名前を持つ 1 つ以上の XML 要素を探します。要素が見つかるたびに、指定したクラスのインスタンスに変換されます。このフィールドを指定しない場合、サービスは、ルート・ドキュメントを指定したクラスと照合します。
-
オプションで [形式] パラメータを指定し、さらにオプションで [Null を無視] を選択します。[形式] パラメータの値には、"literal"、"encoded"、または "encoded12" のいずれかを指定できます。これらのパラメータは、%XML.AdaptorOpens in a new tab クラスの対応するパラメータを指定します。
XML 対応オブジェクトのビジネス・オペレーションは、オブジェクトを XML ドキュメントに変換し、そのドキュメントをファイルに書き込みます。XML クラスおよび要素についての情報の指定に加えて、オペレーションが %XML.WriterOpens in a new tab クラスを呼び出すときに使用するプロパティを指定できます。
オペレーションの以下のプロパティを指定します。
-
[ルート要素名] — このプロパティを指定すると、これはルート要素名として使用されます。この要素を指定しないと、オペレーションは入力要素名を使用します。
-
[ネームスペース] — XML ネームスペースを指定します (クラスが NAMESPACE プロパティを定義している場合を除く)。クラスが NAMESPACE プロパティを定義している場合、オペレーションは常にクラスで定義された XML ネームスペースを使用します。
-
[想定されるクラス名] — XML 対応オブジェクトのクラス名。想定される名前が実際の名前と一致しない場合、%XML.WriterOpens in a new tab は xsi:type 属性を XML 要素に追加します。
-
[インデント・タイプ] — %XML.WriterOpens in a new tab の対応するプロパティを指定します。[インデント・タイプ] は、XML 出力のインデントを実行するかどうかとインデントのタイプを指定します。
-
[インデントの幅] — %XML.WriterOpens in a new tab の対応するプロパティを指定します。[インデントの幅] は、インデントに使用するインデント文字数を指定します。 "タブ" のデフォルトは 1 です。 "スペース" のデフォルトは 4 です。
-
[文字セット] — %XML.WriterOpens in a new tab の対応するプロパティを指定します。文字セットは、XML 出力のエンコードに使用する文字セットです。 デフォルトは出力先によって決まります。"UTF-8" は、ファイルまたはバイナリ・ストリームへの出力のデフォルトです。Unicode システムでは、"UTF-16" が文字ストリームおよび文字列への出力のデフォルトです。8 ビット・システムでは、ロケールのデフォルト文字セットは、文字ストリームおよび文字列への出力のデフォルト文字セットです。
-
[XML 宣言なし] — %XML.WriterOpens in a new tab の対応するプロパティを指定します。[XML 宣言なし] が 1 (真) の場合、%XML.WriterOpens in a new tab は XML 宣言を書き込みません。 デフォルトは %XML.WriterOpens in a new tab による XML 宣言の書き込みありです。ただし、文字セットが指定されておらず、出力先が文字列または文字ストリームである場合を除きます。この条件が当てはまる場合には、XML 宣言を書き込みません。
-
[実行時に Null を無視] — %XML.WriterOpens in a new tab の対応するプロパティを指定します。
-
[要素が限定] — %XML.WriterOpens in a new tab の対応するプロパティを指定します。
-
[属性が限定] — %XML.WriterOpens in a new tab の対応するプロパティを指定します。
-
[デフォルトネームスペース] — %XML.WriterOpens in a new tab の対応するプロパティを指定します。
-
[xmlns を抑制] — %XML.WriterOpens in a new tab の対応するプロパティを指定します。
-
[形式] — %XML.WriterOpens in a new tab の対応するプロパティを指定します。
-
[インラインを参照] — %XML.WriterOpens in a new tab の対応するプロパティを指定します。