このトピックは IBM Business Process Manager Advanced 構成にのみ適用されます。

XML マップを使用した置換可能なエレメントのマッピング

置換グループは、エレメントのセットがヘッド・エレメントを置換できるようにする XML スキーマ (XSD) の構成です。 XML インスタンスは、置換グループのエレメントを 1 つだけ含むことができます。 置換グループのエレメントは XML マップ内でマップできます。

始める前に

最上位エレメントはいずれも、置換グループのヘッド・エレメントとして定義することができます。 さらに、他の最上位エレメントは置換グループのメンバーとなって、ヘッド・エレメントを置換できます。 置換可能なエレメントは、ヘッド・エレメントと同じタイプであるか、拡張または制限によってヘッド・エレメントから派生させたものであることが必要です。

業界標準のスキーマの多くには置換グループが含まれています。置換グループ Publication を含む単純なスキーマの例を以下に示します。

<?xml version="1.0" encoding="UTF-8"?>
<schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="http://SubstitutionGroups/catalog" 
  xmlns:tns="http://SubstitutionGroups/catalog" elementFormDefault="qualified">

<complexType name="BookType">
  <complexContent>
    <extension base="tns:PublicationType">
      <sequence>
        <element name="isbn" type="string"/>
        <element name="publisher" type="string"/>
      </sequence>
    </extension>
  </complexContent>
</complexType>   

<complexType name="MagazineType">
  <complexContent>
    <restriction base="tns:PublicationType">
      <sequence>
        <element name="title" type="string"/>
        <element name="author" type="string"/>
        <element name="date" type="gYear"/>
      </sequence>
    </restriction>
  </complexContent>
</complexType>

 1  <element abstract="true" name="Publication" type="tns:PublicationType"/>
 2  <element name="Book" substitutionGroup="tns:Publication" type="tns:BookType"/>
 3  <element name="Magazine" substitutionGroup="tns:Publication" type="tns:MagazineType"/>
    
 4  <element name="Catalog">
      <complexType>
          <sequence>
            <element ref="tns:Publication" minOccurs="1"/>
          </sequence>
      </complexType>
    </element>  
</schema>
  •  1  Publication はヘッド・エレメントです。
  •  2  Book は置換可能なエレメントで、このヘッド・エレメントは Publication です。
  •  3  Magazine は置換可能なエレメントで、このヘッド・エレメントも Publication です。
  •  4  CatalogPublication を参照する complexType です。
エレメント Catalog をルートとして持つ、対応する XML インスタンスは、Publication エレメント、Book エレメント、または Magazine エレメントのいずれかを含むことができます。
<?xml version="1.0" encoding="UTF-8"?>
<tns:Catalog xmlns:tns="http://SubstitutionGroups/catalog" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://SubstitutionGroups/catalog foo.xsd ">
  <tns:Book>
    <tns:title>tns:title</tns:title>
    <tns:author>tns:author</tns:author>
    <tns:date>2001</tns:date>
    <tns:isbn>tns:isbn</tns:isbn>
    <tns:publisher>tns:publisher</tns:publisher>
  </tns:Book>
</tns:Catalog>

ソースまたはターゲットのコンテンツ・モデルにヘッド・エレメント参照があるとき、置換グループのすべてのメンバーが XML マップ・エディターで使用可能になります。 ヘッド・エレメントは、アイコン 置換グループのヘッド・エレメントを表すアイコン で表します。

次のイメージは、XML マップ・エディターのサンプル・スキーマを示しています。

XML マップ・エディターの置換グループ

ヒント: 置換グループの処理を行うとき、上のイメージで示すように、マップ・エディターの右上領域にある「詳細」ビューに切り替えます。 すると、「置換グループ」という見出しの下に置換グループ・エレメントが表示され、ヘッド・エレメントはグループ内の他のエレメントの上部に表示されます。

サンプル・スキーマ・マッピングの結果は、以下のようになります。
  • XML インスタンスがエレメント Book を含む場合、Book について定義されたマッピングが実行されます。
  • XML インスタンスがエレメント Magazine を含む場合、Publication について定義されたマッピングが実行されます。
置換グループのヘッド・エレメントを使用して、デフォルト・マッピングを定義することができます。