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

InterSystems XML ツールの概要

InterSystems IRIS® では、オブジェクトを XML ドキュメントの直接表現として使用でき、XML ドキュメントの直接表現をオブジェクトとして使用できます。InterSystems IRIS には、ネイティブのオブジェクト・データベースが含まれているため、このようなオブジェクトを直接データベース内で使用できます。さらに、InterSystems IRIS には、任意の XML ドキュメントと DOM (ドキュメント・オブジェクト・モデルOpens in a new tab) を操作するためのツールが用意されています。ドキュメントが InterSystems IRIS のいずれのクラスにも関連していない場合でも同じです。

XML でのオブジェクト・データの表現

XML ツールの一部は、主として XML 対応のクラスと併用することを目的としています。クラスを XML 対応にするには、そのスーパークラス・リストに %XML.AdaptorOpens in a new tab を追加します。%XML.AdaptorOpens in a new tab クラスを使用すると、そのクラスのインスタンスを XML ドキュメントとして表すことができます。クラス・パラメータとプロパティ・パラメータを追加して、プロジェクションを微調整します。"オブジェクトの XML への投影" を参照してください。

A class with multiple properties can be represented as an object or an XML document.

XML 対応のクラスでは、データは以下のすべての形式で使用できます。

  • クラス・インスタンスに含まれています。クラスによっては、データをディスクに保存することもでき、ディスク上では、他の永続クラスとまったく同じように使用できます。

  • XML ドキュメントに含まれています。これは、ファイルやストリームなどのドキュメントの場合もあります。

  • DOM に含まれています。

以下の図は、これらの形式の間でデータを変換するために使用するツールの概要です。

%XML.Writer can create an XML document from an XML-enabled class or a DOM. %XML.Reader can do the reverse operation.

XML 対応クラスのコンテキストで、%XML.WriterOpens in a new tab クラスは、XML ドキュメントとしてのデータのエクスポートを可能にします。出力先は通常、ファイルまたはストリームです。

%XML.ReaderOpens in a new tab を使用すると、クラスのインスタンスに適切な XML ドキュメントをインポートできます。ソースは通常、ファイルまたはストリームです。このクラスを使用するには、クラス名と XML ドキュメントに含まれている要素との間の相関関係を指定します。指定された要素は、対応するクラスで予想される構造になっている必要があります。次に、ノードごとにドキュメントを読み取ります。読み取ると、そのクラスのメモリ内インスタンスが作成され、そこには XML ドキュメント内で見つかったデータが含まれます。

XML ドキュメントを操作する場合には、DOM も役に立ちます。%XML.ReaderOpens in a new tab クラスを使用すると、XML ドキュメントを読み取り、それを表す DOM を作成できます。この表現では、DOM は一連のノードであり、必要に応じてノード間を移動します。具体的には、%XML.DocumentOpens in a new tab のインスタンスを作成します。これはドキュメント自体を表し、ノードを含みます。その後、%XML.NodeOpens in a new tab を使用し、ノードを検査して操作します。必要に応じて、%XML.WriterOpens in a new tab を使用して XML ドキュメントを再度記述します。

InterSystems IRIS XML ツールには、XML ドキュメントと DOM にあるデータにアクセスしたり、この両方を変更したりする方法が数多く用意されています。

任意の XML の作成

任意の XML (つまり、いずれの InterSystems IRIS クラスにもマップしない XML) の作成と操作にも InterSystems IRIS XML ツールを使用できます。任意の XML ドキュメントを作成するには、%XML.WriterOpens in a new tab を使用します。このクラスには、要素の追加、属性の追加、ネームスペース宣言の追加などを行うメソッドが用意されています。

任意の DOM を作成するには、%XML.DocumentOpens in a new tab を使用します。このクラスには、1 つの空のノードと共に DOM を返すクラス・メソッドが用意されています。次に、必要に応じて、そのクラスのインスタンス・メソッドを使用してノードを追加します。

または、%XML.ReaderOpens in a new tab を使用して任意の XML ドキュメントを読み取り、そのドキュメントから DOM を作成します。

データへのアクセス

InterSystems IRIS XML ツールには、XML 形式のデータにアクセスする方法がいくつか用意されています。次の図に概要を示します。

The XML Document tools are %XML.TextReader and %XML.XPATH.Document. The DOM tools are %XML.Document and %XML.Node.

適格な XML ドキュメントでは、以下のクラスを使用して、そのドキュメント内のデータを操作できます。

InterSystems IRIS では、DOM は %XML.DocumentOpens in a new tab のインスタンスです。このインスタンスはドキュメント自体を表し、ノードを含みます。DOM から値を取得するには、このクラスのプロパティおよびメソッドを使用します。ノードの検査と操作には、%XML.NodeOpens in a new tab を使用します。詳細は、"XML ドキュメントの DOM 表現" を参照してください。

XML の変更

InterSystems IRIS XML ツールには、XML 形式のデータを変更する方法も用意されています。次の図に概要を示します。

%XML.XSLT.Transformer can modify an XML Documents, while %XML.Document can modify a DOM.

XML ドキュメントでは、%XML.XSLT.TransformerOpens in a new tab のクラス・メソッドを使用して、XSLT 変換を実行し、変更後のドキュメントを取得できます。"XSLT 変換の実行" を参照してください。

DOM では、%XML.DocumentOpens in a new tab のメソッドを使用して DOM を変更できます。例えば、要素または属性を追加するか、または削除することができます。

SAX パーサ

InterSystems IRIS XML ツールでは、InterSystems IRIS SAX (Simple API for XML) パーサが使用されます。これは、標準 Xerces ライブラリを使用した、組み込みの SAX XML 検証パーサです。SAX は、完全な XML 検証とドキュメントの解析を提供する解析エンジンです。InterSystems IRIS SAX は、高性能なプロセス内コールイン・メカニズムを使用して、InterSystems IRIS プロセスと通信します。InterSystems IRIS の組み込み XML サポートを使用するか、または InterSystems IRIS 内で独自のカスタム SAX インタフェース・クラスを提供することで、このパーサを使用して XML ドキュメントを処理できるようになります。

特殊なアプリケーションの場合は、カスタムのエンティティ・リゾルバとコンテンツ・ハンドラを作成できます。業界標準の XML DTD またはスキーマ検証を使用して、受信 XML を検証したり、解析対象の XML 項目を指定することもできます。"SAX パーサの使用法のカスタマイズ" を参照してください。

追加の XML ツール

InterSystems IRIS XML サポートには、以下の追加のツールが含まれています。

FeedbackOpens in a new tab