XML スキーマのインポートと表示 (仮想ドキュメント)
XML ドキュメントを仮想ドキュメントとして使用する場合、通常、対応する XML スキーマを InterSystems IRIS® データ・プラットフォームにインポートする必要があります。ここでは、その方法と XML スキーマの表示方法について説明します。
概要
XML ドキュメントを仮想ドキュメントとして使用する場合は、対応する XML スキーマを InterSystems IRIS にインポートする必要があります。インポートしたら、データ変換を定義し、必要に応じてスキーマ依存プロパティ・パスを指定できます。
このドキュメントで説明しているように、これらのスキーマは、XML 仮想ドキュメントの処理をサポートするためだけに使用できます。InterSystems IRIS では、その他の目的では使用されません。
また、
-
InterSystems IRIS では、XML ドキュメントの読み取り時に、XML 宣言、すべての処理手順、およびすべてのコメントが削除されます。
-
要素または属性の名前にピリオド (.) が含まれている場合は、チルダ (~) に置換されます。
例えば、XML 要素の名前が My.Element の場合、InterSystems IRIS では My~Element のように表示されます。
-
InterSystems IRIS では、スキーマ内の型への参照 (ref) を介して要素が定義される XML スキーマをサポートしていないため、ref ではなく type を使用します。例えば、以下のスキーマのフラグメントを考えてみます。
<xs:element name="test1" ref="sometype"></xs:element> <xs:element name="test2" type="sometype"></xs:element>
このスキーマがインポートされる場合、要素 test1 は完全には定義されません。この形式の最上位要素定義はサポートされていないためです。例えば、スキーマ・ビューワでは、test1 の完全な要素タイプは表示されません。一方、test2 は期待どおりにスキーマに表示されます。
この制限は、XML 仮想ドキュメントで使用されるスキーマにのみ適用されます。
XML スキーマ構造ページの使用法
[相互運用性]→[相互運用]→[XML]→[XML スキーマ構造] ページを使用すると、XML スキーマ仕様のインポートと表示を行うことができます。
このページの使用に関する一般情報は、"スキーマ構造ページの使用法" を参照してください。
スキーマ・ファイルをインポートする前に、名前をそのネームスペース内で一意のわかりやすいものに変更します。ファイル名は、管理ポータルなどでスキーマ・カテゴリ名として使用されます。ファイル名が、ファイル拡張子 .xsd で終わる場合、このファイル拡張子はスキーマ・カテゴリ名から省略されます。それ以外の場合、ファイル拡張子は名前に含まれます。
スキーマ・ファイルのインポート後に、そのファイルをファイル・システム内の現在の場所から削除しないでください。XML パーサは、XML 仮想ドキュメントを処理する際、InterSystems IRIS データベースに格納されているスキーマではなくスキーマ・ファイルを使用します。
XML ドキュメント・ビューワ・ページの使用法
[Interoperability]→[相互運用]→[XML]→[XML ドキュメント・ビューワ] ページを使用すると、XML ドキュメントを表示して、さまざまな方法で解析することによって、使用する DocType を決定できます。また、変換をテストすることもできます。ドキュメントは、外部ファイルにすることも、プロダクション・メッセージ・アーカイブからのドキュメントにすることもできます。
このページを表示するには、[Interoperability]、[相互運用]、[XML] の順にクリックします。次に、[XML ドキュメント・ビューワ] をクリックし、[進む] をクリックします。
このページの使用に関する一般情報は、"ドキュメント・ビューワ・ページの使用法" を参照してください。
XML スキーマのプログラムによるインポート
スキーマは、プログラムによってロードすることもできます。それには、EnsLib.EDI.XML.SchemaXSDOpens in a new tab クラスを直接使用します。このクラスには、Import() クラス・メソッドが用意されています。このメソッドに対する最初の引数は、インポートするファイルの名前であり、そのディレクトリの完全パスを含めます。以下に例を示します。
set status= ##class(EnsLib.EDI.XML.SchemaXSD).Import("c:\iiris\myapp.xsd")
EnsLib.EDI.XML.SchemaXSDOpens in a new tab クラスには、ImportFiles() メソッドも用意されています。このメソッドの場合は、最初の引数を以下のいずれかの方法で指定できます。
-
ファイルのインポート元のディレクトリの名前として指定する。ファイル拡張子に関係なく、このディレクトリ内のすべてのファイルのインポートが試行されます。以下に例を示します。
set status=##class(EnsLib.EDI.XML.SchemaXSD).ImportFiles("c:\iiris\")
-
セミコロンで区切られたファイル名のリストとして指定する。これらのファイル名の前にディレクトリの完全パスを含める必要があります。また、ファイル名にはワイルドカードを使用できます。以下に例を示します。
set status=##class(EnsLib.EDI.XML.SchemaXSD).ImportFiles("c:\iiris\*.xsd;*.XSD")
詳細は、EnsLib.EDI.XML.SchemaXSDOpens in a new tab のクラス参照を参照してください。
スキーマ・ファイルのインポート後に、そのファイルをファイル・システム内の現在の場所から削除しないでください。XML パーサは、InterSystems IRIS データベースに格納されているスキーマではなくスキーマ・ファイルを使用するからです。