Skip to main content

This documentation is for an older version of this product. See the latest version of this content.Opens in a new tab

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

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

InterSystems IRIS でサポートされる XML 規格の詳細は、"InterSystems IRIS でサポートされる規格" を参照してください。

基礎編

オブジェクトを 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 ドキュメントがどのようにそのクラスのインスタンスに対応するかを決定します。以下はその例です。

An XML projection of the Employee Class. The XML does not include all the properties of the Employee Class.

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

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

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

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

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

これらのパラメータの大半は、XML 対応クラスを使用するすべてのシナリオに影響します。このドキュメントに記載されているとおり、いくつかのパラメータは、特定のシナリオでのみ適用されます。

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

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

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

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

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

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

  • クラス定義における XData ブロックの内容として使用できます。"クラスの定義と使用" の "XData ブロック" を参照してください。

FeedbackOpens in a new tab