Skip to main content

This is documentation for Caché & Ensemble. See the InterSystems IRIS version of this content.Opens in a new tab

For information on migrating to InterSystems IRISOpens in a new tab, see Why Migrate to InterSystems IRIS?

オブジェクトの XML への投影の概要

このドキュメントでは、Caché オブジェクトを XML に投影する方法、および XML の要素、属性、およびタイプへの投影を制御する方法について説明します。

この章では、オブジェクトを XML に投影する方法を紹介し、その使用目的について説明します。

Caché でサポートされる XML 規格の詳細は、"Caché XML ツールの使用法" の “Caché でサポートされる規格” を参照してください。

基礎編

オブジェクトを XML に投影するという表現は、オブジェクトを XML ドキュメントとして使用可能にする方法を定義することを意味します。オブジェクトを XML に投影するには、オブジェクトを定義するクラスのスーパークラス・リストに %XML.AdaptorOpens in a new tab を追加します。そのクラスで使用する他のオブジェクト・クラスも同様です。ただし、少数の例外があります。

また、この作業は、オブジェクトを定義したりそのクラスを XML 対応にするクラスの XML プロジェクションの定義とも呼びます。

動作内容

クラスの XML プロジェクションを定義すると、以下のようになります。

  • システムでは、さらにクラスの INT コードを生成して、クラスのインスタンスを XML ドキュメントとして使用できるようにします (このコードはクラスのコンパイル時に生成されます。編集はしないでください)。

  • クラスの各プロパティは、%XML.PropertyParametersOpens in a new tab から自動的に継承します。

  • %XML.AdaptorOpens in a new tab により、クラスの XML 関連パラメータがクラスに追加されます。

  • %XML.PropertyParametersOpens in a new tab により、プロパティの XML 関連パラメータがクラスのプロパティに追加されます。

  • データ型プロパティにより、LogicalToXSD() メソッドと XSDToLogical() メソッドが定義されます。これによって、XML への出力または XML からの入力が行われたときにデータがどのように変換されるかが制御されます。

次に、既定のプロジェクションがニーズに適合しない場合は、必要に応じて、クラスの XML 関連パラメータを編集します。

プロジェクション・オプション

指定されたクラスに対する XML プロジェクションは、そのクラスのインスタンスがどのように XML ドキュメントに対応するか、また XML ドキュメントがどのようにそのクラスのインスタンスに対応するかを決定します。以下はその例です。

generated description: xmlobj

以下の方法を含めて、XML プロジェクションは多くの方法で制御できます。

  • プロパティの投影先の構造を制御する。例えば、単純なプロパティは要素または属性として投影できます。それ以外は、これまでの例で示してきたように、投影できません。

  • XML の要素名と属性名を制御する。

  • 要素と属性が割り当てられた XML ネームスペースを制御する。

  • Caché クラスが XML スキーマにどのようにマッピングされるかについて、詳細を制御する。

これらのパラメータの大半は、XML 対応クラスを使用するすべてのシナリオに影響します。一部のパラメータは特定のシナリオに適用されます。このドキュメントではこれらの例外が明記されています。

XML ドキュメントに対して考えられるアプリケーション

XML ドキュメントは、以下のように、さまざまな実用的アプリケーションで使用できます。

  • メッセージ・アプリケーションで、標準形式として使用できます。これには、業界標準のプロトコルのほかに、ローカルなソリューションも含まれます。

  • アプリケーションとユーザ間の、データ変換のための標準形式として使用できます。

  • 外部データ・ストレージに対する、標準的な表現として使用できます。これには、従来のデータベース・レコードや、ドキュメントのようなより複雑なコンテンツも含まれる場合があります。

  • Web サービスと Web クライアントの間で送信される SOAP メッセージのペイロードとして使用できます。

  • クラス定義における XData ブロックの内容として使用できます。詳細は、"Caché オブジェクトの使用法" の “XData ブロック” を参照してください。

FeedbackOpens in a new tab