XML スキーマの生成

このトピックでは、XML スキーマの生成の動作について説明します。 例えば、WebSphere Message Broker が作成する XML インスタンス文書を続けて妥当性検査できるように、 メッセージ定義ファイルから生成されたスキーマを使用できます。

緩い生成

緩い生成は、「内容の妥当性検査」を 「オープン」または「オープン定義」に設定する複合タイプ、 または「構成」を「UnorderedSet」 に設定する複合タイプが、どのように生成されるスキーマで表現されるかに影響を与えます。 そうした妥当性検査スキーマは、 MRM パーサーの妥当性検査より広範囲のメッセージを許可する点に注意してください。

「内容の妥当性検査」が「オープン」または「オープン定義」に設定されている
ここでは、複合タイプ (グローバルまたは無名) の内容が、anyType の単一エレメントで置き換えられます。 以下の生成パターンは、 「内容の妥当性検査」を「オープン」 に設定した複合タイプに対して使用されます。
<element name="xmlNameOfMessage">
<complexType>
<sequence>
<any processContent="lax"
minOccurs="0" maxOccurs="unbounded"/>
</sequence>
</complexType>
</element>

内容の妥当性検査」が「オープン定義」に設定されている場合、以下のパターンが使用されます。 (ここでリストされるネーム・スペースはすべて、それらを含むメッセージ・セットで定義されているものです。)

<element name="xmlNameOfMessage">
<complexType>
<sequence>
<any processContent="lax"
minOccurs="0" maxOccurs="unbounded"
namespace="http://www.ns1 http://www.ns2" />
</sequence>
</complexType>
</element>
「構成」が「UnorderedSet」に設定されている
構成」が「UnorderedSet」に設定されており、 非順序の性質を模倣したい場合は、適切な基数を持つ選択項目が挿入されます。 これは以下に示されています。
<element name="xmlNameOfMessage">
<complexType>
<sequence maxOccurs="unbounded"
minOccurs= "(minOccurs of original sequence) *
          (items in original sequence)">
<choice>
.. sequence contents ..
</choice>
</sequence>
</complexType>
</element>

厳密な生成

厳密な生成は、「内容の妥当性検査」を 「オープン」または「オープン定義」に設定する複合タイプ、 または「構成」を「UnorderedSet」 に設定する複合タイプが、どのように生成されるスキーマで表現されるかに影響を与えます。 そうした妥当性検査スキーマは、 MRM パーサーの妥当性検査より狭い範囲のメッセージを許可する点に注意してください。

厳密はデフォルトの生成オプションであり、モデルの拡張をせずに、 メッセージ定義ファイルに保持されているスキーマと一致するスキーマを生成します。

「内容の妥当性検査」が「オープン」または「オープン定義」に設定されている
複合タイプ (グローバルまたは無名) は、自己定義エレメントを含む機能を失い、クローズします。
「構成」が「UnorderedSet」に設定されている
複合タイプ (グローバルまたは無名) は、非順序になる機能を失い、シーケンスになります。

xsd:element のレンダリング

XML 物理形式がスキーマ生成時に指定された場合、 ワイヤー形式カスタマイズが論理モデルに適用されます。 これらのプロパティーは、モデル内のエレメントが XML ワイヤー形式に対するメッセージ内に表示される時に実際にどのようにレンダーされるかを制御します。 使用可能な別のレンダー・オプションについては、『XML のレンダリング・オプション』を参照してください。生成されるスキーマの例が以下にあり、 ローカル・エレメント用に使用可能な様々なレンダー・オプションに対して何が生成されるかが示されています。 これらの例では、ID 属性名または値属性名プロパティーのネーム・スペースを変更しない点に注意してください。また、complexType1 で指定されるすべての エレメントが、スキーマ組み込みのタイプ・ストリングであると想定します。

<xsd:complexType name="complexType1">
<xsd:sequence>
<!-- Local element Render = 'XMLElement' -->
<xsd:element name="localElement1" type="xsd:string"/>
<!-- Local element Render = 'XMLElementAttrID'
ID Attribute Name = 'id' -->
<xsd:element name="localElement2">
<xsd:complexType>
<xsd:simpleContent>
<xsd:extension base="xsd:string">
<xsd:attribute name="id" type="xsd:string"/>
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
</xsd:element>
<!-- Local element Render = 'XMLElementAttrVal'
Val Attribute Name = 'val' -->
<xsd:element name="localElement3">
<xsd:complexType>
<xsd:simpleContent>
<xsd:extension base="xsd:string">
<xsd:attribute name="val" type="xsd:string"/>
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
</xsd:element>
<!-- Local element Render = 'XMLElementAttrIDVal'
ID Attribute Name = 'id' Val Attribute Name = 'val' -->
<xsd:element name="localElement4">
<xsd:complexType>
<xsd:simpleContent>
<xsd:extension base="xsd:string">
<xsd:attribute name="val" type="xsd:string"/>
<xsd:attribute name="id" type="xsd:string"/>
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
<!-- Local element Render = 'XMLAttribute' -->
<xsd:attribute name="localElement5" type="xsd:string"/>
</xsd:complexType>

xsd:attribute のレンダリング

xsd:Attributes のレンダリングはサポートされていません。 ユーザーは属性の名前のみを変更できます。

組み込み単純タイプおよび複合エレメント

これらは、minOccurs および maxOccurs の両方が 0 に設定され、 かつ事前定義された ComIbmMrm_xxx タイプの 1 つを持つエレメントとして、 メッセージ定義ファイル内にモデル化されます。 スキーマの生成時に、そうしたエレメントのタイプは、 それぞれの ComIbmMrm_xxx タイプの基本タイプに変更されます。

それらの ComIbmMrm_xxx タイプの 1 つから継承するグローバル単純タイプがある場合、 それらのグローバル単純タイプは、 対応する ComIbmMrm_xxx タイプの基本タイプから継承するように変更されます。

生成されるスキーマ・ファイルには、それらの ComIbmMrm_xxx タイプは出現しません。

例えば、以下のようにタイプが定義されたグローバル・エレメントがあるとします。

<element name="globalElement1" type="ns1:ComIbmMrm_BaseValueBinary"/>

この結果として、スキーマ・ファイルおよび以下のように定義された対応する xsd 基本タイプを持つ グローバル・エレメントが生成されます。

<element name="globalElement1" type="hexBinary"/>
関連概念
メッセージのモデル化
メッセージ・モデル
XML ワイヤー形式: 論理モデルとの関係
関連タスク
メッセージ・モデルの開発
メッセージ定義ファイルの処理
メッセージ・モデル・オブジェクトの処理
関連資料
メッセージ・モデル参照情報
メッセージ・モデル・オブジェクトのプロパティー
特記事項 | 商標 | ダウンロード | ライブラリー | サポート | フィードバック
Copyright IBM Corporation 1999, 2006 Last updated: 5 01, 2006
ad15780_