概要

ビジネスユーザーはデータディクショナリを介して、バックエンドデータソースの情報を使用できます。基礎となるデータモデルの技術的な詳細情報を把握する必要はありません。データディクショナリは複数のデータディクショナリ要素(DDE)で構成されています。これらのデータ要素を使用してバックエンドデータを入力としてレターに統合し、顧客対応に使用することができます。

データディクショナリは、基礎となるデータ構造とその関連する属性を説明するメタデータの独立した表現です。データディクショナリはビジネス用語を使用して作成されます。また、基礎となるデータモデルの 1 つまたは複数にマッピングできます。. 

データディクショナリは、単純要素、複合要素、コレクション要素という 3 種類の要素から構成されます。単純 DDE は、都市名などの情報を保持する文字列、数値、日付、Boolean 値などのプリミティブ要素です。複合 DDE は他の DDE を含むものであり、そのタイプはプリミティブ、複合、コレクションのいずれでもかまいません。例として、郵便番号、国、都道府県、市町村、番地で構成される住所が挙げられます。コレクションは、同類の単純 DDE または複合 DDE のリストです。例として、複数の住所や、請求先と出荷先の住所が異なる顧客が挙げられます。

Correspondence Management は、バックエンド、顧客、 または受信者に固有のものとしてデータディクショナリの構造に基づいて保存されたデータを使用し、各顧客に対する通信を作成します。例えば、「{First Name} さん」、「{Last Name} 様」などのわかりやすい名前を使用してドキュメントを作成できます。

ビジネスユーザーは一般的に、XSD(xml スキーマ)、Java クラスなどの、メタデータ表現に関する知識を必要としません。しかし、通常はソリューションを構築するために、これらのデータ構造や属性の利用が必要となります。

データディクショナリワークフロー

  1. スキーマを読み込むことで、または新規で、作成者がデータディクショナリを作成します。
  2. 作成者はデータディクショナリに基づいてレターとアセットを作成し、レターとアセットのデータディクショナリ要素を必要な箇所に関連付けます。
  3. 作成者はサンプルデータの XML ファイルを書き出すことができます。これはデータディクショナリのスキーマに基づいたものです。作成者はサンプルデータの XML ファイルを変更できます。これはテストデータとしてデータディクショナリに関連付けることができます。レターのプレビューでも同様の操作が可能です。
  4. レターのプレビュー時に、作成者はレターをデータとともにプレビューできます(カスタムプレビュー)。作成者の入力したデータが入力された状態でレターが開きます。通信を作成インターフェイスで開きます。このレターをプレビューしているエージェントはレターのコンテンツ、データ、および添付ファイルを変更して最終的なレターを送信できます。レターの作成について詳しくは、通信の作成を参照してください。

データディクショナリの作成

データディクショナリの作成にはデータディクショナリエディターを使用します。または、XML スキーマファイルを読み込んでデータディクショナリを作成することができます。後からフィールドなどの必須の情報をさらに追加して、このデータディクショナリを拡張できます。データディクショナリの作成方法を問わず、ビジネスプロセスの所有者にはバックエンドシステムに関する知識は必要がありません。ビジネスプロセスの所有者に必要とされるのは、プロセスのドメインオブジェクトとその宛先に関する知識だけです。

  1. フォームデータディクショナリを選択します。

  2. データディクショナリの作成」をクリックします。

  3. プロパティ画面で以下を追加します。

    • 名前:データディクショナリの一意の名前。
    • 表示名:(オプション)「名前」ボックスで入力したテキストを使用して事前設定されます。デフォルトの表示名は、よりユーザーに理解しやすい表示名に変更できます。
    • 説明:(オプション)データディクショナリの説明。
    • タグ:(オプション)テキストフィールドにカスタムタグの値を入力し、Enter キーを押します。タグのテキストフィールドの下にカスタムタグが表示されます。このテキストを保存すると、新しく追加したタグも作成されます。
    • 拡張プロパティ:(オプション)「フィールドの追加」をクリックして、データディクショナリのメタデータ属性を指定します。「プロパティ名」列に、固有のプロパティ名を入力します。「値」列に、プロパティに関連付ける値を入力します。
  4. (オプション)データディクショナリの XSD スキーマ定義を読み込むには、データディクショナリの構造ウィンドウの「XML スキーマの読み込み」をクリックします。XSD ファイルを参照して選択し、「開く」をクリックします。データディクショナリは、読み込まれた XML スキーマに基づいて作成されます。データディクショナリで要素の表示名や説明を調整する必要があります。これを行うには、要素の名前をクリックして選択し、右側のペインのフィールドで説明、表示名、およびその他の詳細を編集します。

    計算済み DD 要素についての詳細は、計算済みデータディクショナリ要素を参照してください。

    注意:

    スキーマファイルの読み込みをスキップして、ユーザーインターフェイスから新規でデータディクショナリを構築することもできます。これを行うには、この手順をスキップし次の手順に進みます。

  5. 次へ」をクリックします。

  6. 「プロパティの追加」画面でデータディクショナリに要素を追加します。また、データディクショナリの基本構造を取得するためにスキーマを読みんだ場合、要素の追加や削除を行って詳細を編集することができます。

    要素の右側の 3 つのドットをクリックし、データディクショナリの構造に要素を追加することができます。

     

    「複合要素」、「コレクション要素」または「プリミティブ要素」を選択します。

    • 複合 DDE は他の DDE を含むものであり、そのタイプはプリミティブ、複合、コレクションのいずれでもかまいません。例として、郵便番号、国、都道府県、市町村、番地で構成される住所が挙げられます。
    • プリミティブ DDE は、文字列、数値、日付などの要素のほか、都市名などの情報を保持する Boolean 値です。
    • コレクションは、同類の単純 DDE または複合 DDE のリストです。例として、複数の住所や、請求先と出荷先の住所が異なる顧客が挙げられます。

    次に、データディクショナリ作成の例を示します。

    • 複合タイプのみが、データディクショナリ内のトップレベル DDE として使用できます。
    • 名前、参照名および要素タイプは、データディクショナリと DDE において必須のフィールドです。
    • 参照名は一意にする必要があります。
    • 親 DDE(複合)には、同じ名前の 2 つの子を指定できません。
    • 列挙型にはプリミティブな String 型のみが含まれます。

    複合要素、コレクション要素、プリミティブ要素およびデータディクショナリ要素の操作についての詳細は、データディクショナリ要素の XML スキーマへのマッピングを参照してください。

    データディクショナリにおける検証についての詳細は、データディクショナリエディターの検証を参照してください。

  7. (オプション)要素を選択後に、「詳細設定」タブでプロパティ(属性)を追加できます。「フィールドの追加」をクリックして、DD 要素のプロパティを拡張することもできます。

  8. (オプション)要素の右側の 3 つのドットをクリックして「削除」を選択することで、要素を削除できます。

    注意:

    子ノードを持つ複合要素またはコレクション要素を削除すると、その子ノードも削除されます。

  9. (オプション)データディクショナリの構造ペインの要素を選択し、フィールドと変数リストパネルで、要素に関連する必要な属性を変更または追加します。

  10. 保存」をクリックします。

テストデータの操作

  1. データディクショナリページで「選択」をクリックします。

  2. テストデータの書き出しを行うデータディクショナリをクリックし、「サンプル XML データの書き出し」をクリックします。

  3. 警告メッセージで「OK」をクリックします。XML ファイルがダウンロードされます。

  4. XML ファイルを Notepad その他の XML エディタで開きます。XML ファイルは、データディクショナリおよび要素内のプレースホルダー文字列と同じ構造を持っています。レターのテストに使うデータでプレースホルダー文字列を置き換えます。

     

    <?xml version="1.0" encoding="UTF-8" standalone="no"?>
    <Company>
    <Name>string</Name>
    <Type>string</Type>
    <HeadOfficeAddress>
    <Street>string</Street>
    <City>string</City>
    <State>string</State>
    <Zip>string</Zip>
    </HeadOfficeAddress>
    <SalesOfficeAddress>
    <Street>string</Street>
    <City>string</City>
    <State>string</State>
    <Zip>string</Zip>
    </SalesOfficeAddress>
    <HeadCount>1.0</HeadCount>
    <CEO>
    <PersonName>
    <FirstName>string</FirstName>
    <MiddleName>string</MiddleName>
    <LastName>string</LastName>
    </PersonName>
    <DOB>string</DOB>
    <CurrAddress>
    <Street>string</Street>
    <City>string</City>
    <State>string</State>
    <Zip>string</Zip>
    </CurrAddress>
    <DOJ>14-04-1973</DOJ>
    <Phone>1.0</Phone>
    </CEO>
    </Company>

    注意:

    この例では、XML によってコレクション要素の 3 つの値にスペースが作成されます。値の数値は必要に応じて増減できます。

  5. データエントリを作成した後、テストデータを持つレターのプレビューにこの XML ファイルを使用することができます。

    テストデータは DD に追加できます(DD を選択し、テストデータの読み込みをクリックしてこの xml ファイルをアップロードします)。
    この操作を行うと、レターの(カスタムではなく)通常のプレビューの際に、この XML データが使用されるようになります。「カスタム」をクリックして、この XML をアップロードすることもできます。

サンプル

データディクショナリ実装の詳細コードサンプルを以下に示します。

データディクショナリに読み込み可能なサンプルスキーマ

<?xml version="1.0" encoding="utf-8"?> 
<xs:schema xmlns="DCT" targetNamespace="DCT" xmlns:xs="http://www.w3.org/2001/XMLSchema" 
  elementFormDefault="qualified" attributeFormDefault="unqualified"> 
  <xs:element name="Company"> 
    <xs:complexType> 
      <xs:sequence> 
        <xs:element name="Name" type="xs:string"/> 
        <xs:element name="Type" type="xs:anySimpleType"/> 
        <xs:element name="HeadOfficeAddress" type="Address"/> 
        <xs:element name="SalesOfficeAddress" type="Address" minOccurs="0"/> 
        <xs:element name="HeadCount" type="xs:integer"/> 
        <xs:element name="CEO" type="Employee"/> 
        <xs:element name="Workers" type="Employee" maxOccurs="unbounded"/> 
      </xs:sequence> 
    </xs:complexType> 
  </xs:element> 
  <xs:complexType name="Employee"> 
    <xs:complexContent> 
      <xs:extension  base="Person"> 
        <xs:sequence> 
          <xs:element name="CurrAddress" type="Address"/> 
          <xs:element name="DOJ" type="xs:date"/> 
          <xs:element name="Phone" type="xs:integer"/> 
        </xs:sequence> 
      </xs:extension> 
    </xs:complexContent> 
  </xs:complexType> 
  <xs:complexType name="Person"> 
    <xs:sequence> 
      <xs:element name="PersonName" type="Name"/> 
      <xs:element name="DOB" type="xs:dateTime"/> 
    </xs:sequence> 
  </xs:complexType> 
  <xs:complexType name="Name"> 
    <xs:sequence> 
      <xs:element name="FirstName" type="xs:string"/> 
      <xs:element name="MiddleName" type="xs:string"/> 
      <xs:element name="LastName" type="xs:string"/> 
    </xs:sequence> 
  </xs:complexType> 
  <xs:complexType name="Address"> 
    <xs:sequence> 
      <xs:element name="Street" type="xs:string"/> 
      <xs:element name="City" type="xs:string"/> 
      <xs:element name="State" type="xs:string"/> 
      <xs:element name="Zip" type="xs:string"/> 
    </xs:sequence> 
  </xs:complexType> 
</xs:schema>

DDE に関連付けられる共通属性

DDE に関連付けられる共通属性について、以下の表に示します。

属性 タイプ 詳細
名前 文字列 必須。
DDE の名前。一意にする必要があります。
参照
文字列 必須。データディクショナリの階層や構造の変更に左右されない、DDE への参照を可能にする DDE の一意の参照名です。テキストモジュールは、この名前を使用してマップされます。
displayname 文字列 ユーザーにわかりやすい DDE の名前(オプション)。
description 文字列 DDE の説明。
elementType 文字列 必須。DDEのタイプ:STRING、NUMBER、DATE、Boolean、COMPOSITE、COLLECTION のいずれかです。
elementSubType 文字列 DDE のサブタイプ: ENUM。elementType が STRING および NUMBER の場合のみ使用できます。
キー ブール演算式 DDE がキー要素であるかどうかを示す Boolean フィールド。
計算済み ブール演算式 DDE が計算済みかどうかを示す Boolean フィールド。計算済み DDE の値は、他の DDE 値の関数です。デフォルトでは、JSP EL 式がサポートされます。
expression 文字列 「computed」DDEの式。デフォルトで提供される式評価サービスは、JSP EL 式をサポートしています。式サービスをカスタム実装に置き換えることができます。
valueSet リスト 列挙型 DDE に使用できる値のセット。例えば、アカウントタイプには(Saving, Current)値のみを設定できます。
extendedProperties Object DDE に追加されたカスタムプロパティ(ユーザーインターフェイス固有情報やその他の情報)のマップ。
必須 ブール演算式 このフラグは、データディクショナリに対応するインスタンスデータのソースに、この特定の DDE の値が含まれていなくてはならないことを示します。
バインド BindingElement 要素の XML バインディングまたは Java バインディング。

計算済みデータディクショナリ要素

データディクショナリには、計算済み要素を含めることもできます。計算済みデータディクショナリ要素は、常に式と関連付けられます。実行時にこの式が評価され、データディクショナリ要素の値が取得されます。計算済み DDE 値は、他の DDE 値またはリテラルによる関数です。デフォルトでは、JSP 式言語(EL)の式がサポートされます。EL 式は ${ } の文字を使用します。有効な式にはリテラル、演算子、変数(データディクショナリ要素の参照)および関数呼び出しを含めることができます。式においてデータディクショナリ要素を参照する際は、DDE の参照名を使用します。あるデータディクショナリに含まれるすべてのデータディクショナリ要素は、それぞれ一意の参照名によって特定されます。

計算済み DDE PersonFullName は、${PersonFirstName} ${PersonLastName} などの EL 連結式に関連付けることができます。

XSD とデータディクショナリの間のデータタイプマッピング

XSD を書き出すには、固有のデータマッピングが必要になります。これについて、次の表に示します。DDI 列は、DDI で利用できる DDE 値のタイプを示します。

XSD 

データディクショナリ 

DDI(インスタンス値のデータタイプ)

xs:element(タイプ - 複合タイプ)

DDE(タイプ - 複合)

java.util.Map

xs:element(maxOccurs > 1)

DDE(タイプ - COLLECTION)
DDE ノードは、親コレクションノードから情報を取り込むコレクション DDE の次に作成されます。単純データタイプと複合データタイプの両方のコレクション向けに、同じものが作成されます。複合タイプのコレクションがある場合は常に、Data Dictionary ツリーは、タイプ情報を取り込むために作成された DDE の子に、以下の構成要素フィールドを取り込みます。
- DDE(COLLECTION)
- DDE(情報タイプのCOMPOSITE)
- DDE(STRING)field1
- DDE(STRING)field2

java.util.List

属性(タイプ - xs:id) 

DDE(タイプ - STRING) 
java.lang.String

xs:attribute /xs:element(タイプ - xs:string)

DDE(タイプ - STRING)
java.lang.String
xs:attribute /xs:element(タイプ - xs:boolean) 
DDE(タイプ - BOOLEAN) 
java.lang.Boolean
xs:attribute /xs:element(タイプ - xs:date)  DDE(タイプ - DATE)  java.lang.String
xs:attribute /xs:element(タイプ - xs:integer)  DDE(タイプ - NUMBER)  java.lang.Double
xs:attribute /xs:element(タイプ - xs:long) DDE(タイプ - NUMBER)  java.lang.Double
xs:attribute /xs:element(タイプ - xs:double) DDE(タイプ - NUMBER)  java.lang.Double
列挙型と baseType の要素 - xs:string 以下の DDE
タイプ - STRING
subtype - ENUM
valueSet - ENUM に使用できる値
java.lang.String

データディクショナリからのサンプルデータファイルの書き出し

データディクショナリの作成後は、それを XML サンプルデータファイルに書き出してテキストのエントリを作成することができます。

  1. データディクショナリページで「選択」をクリックし、目的のデータディクショナリをクリックして選択します。

  2. サンプル XML データの書き出し」を選択します。

  3. 警告メッセージで「OK」をクリックします。

    Correspondence Management は、選択されたデータディクショナリの構造に基づいて XML ファイルを作成し、<data-dictionary-name>-SampleData の名称でコンピューターにダウンロードします。これで、このファイルを XML エディタまたはテキストエディタで編集し、レターの作成の際にデータエントリを作成することができます。

メタデータの国際化対応

同じレターを異なる言語で顧客へ送信する場合、データディクショナリとデータディクショナリ要素の表示名、説明、および列挙値のセットをローカライズすることができます。

 

データディクショナリのローカライズ

  1. データディクショナリページで「選択」をクリックし、目的のデータディクショナリをクリックして選択します。

  2. ローカリゼーションデータの書き出し」をクリックします。

  3. 警告メッセージで「OK」をクリックします。Correspondence Management によって DataDictionary-<DDname>.zip のという名前の zip ファイルがお使いのコンピューターにダウンロードされます。

  4. Zip ファイルには、.properties ファイルが含まれています。このファイルは、書き出されるデータディクショナリを定義します。プロパティファイルのコンテンツは次のようになります。

    #次の名称のデータディクショナリのローカリゼーション情報: EmployeeDD、ロケール:default
    #Wed May 20 16:06:23 BST 2015
    DataDictionary.EmployeeDD.description=
    DataDictionary.EmployeeDD.displayName=EmployeeDataDictionary
    DataDictionaryElement.name.description=
    DataDictionaryElement.name.displayName=name
    DataDictionaryElement.person.description=
    DataDictionaryElement.person.displayName=person

    プロパティファイルは、データディクショナリの内容と表示名およびデータディクショナリ内の各データディクショナリ要素を各行で定義する構造になっています。さらに、プロパティファイルは各データディクショナリ要素の列挙値セットを 1 行で定義します。データディクショナリと同様に、対応するプロパティファイルは複数のデータディクショナリ要素の定義を持つことができます。さらに、ファイルには 1 つ以上の列挙値セットの定義を含めることができます。

  5. 別のロケールの .properties ファイルを更新するには、ファイルの表示名と説明の値を更新します。ローカライズする各言語でさらにファイルのインスタンスを作成します。サポートされる言語はフランス語、ドイツ語、日本語、英語のみです。

  6. それぞれ更新したプロパティファイルを次の名前で保存します。

    _fr_FR.properties French

    _de_DE.properties German

    _ja_JA.properties Japanese

    _en_EN.properties English

  7. .properties ファイル(または複数のロケール用のファイル)を 1 つの .zip ファイルにアーカイブします。

  8. データディクショナリページで、「詳細ローカリゼーションデータの読み込み」を選択し、ローカライズ済みのプロパティファイルを含む zip ファイルを選択します。

     

  9. ローカリゼーションの変更を表示するには、ブラウザーのロケールを変更します。

データディクショナリの検証

 

データディクショナリの作成時または更新時に、データディクショナリエディターは強制的に以下の検証を行います。

  • 複合タイプのみが、データディクショナリのトップレベル要素として使用できます。
  • 複合要素とコレクション要素はリーフレベルでは使用できません。プリミティブ(String、Date、Number、Boolean)要素のみがリーフレベルで使用できます。この検証では、子 DDE なしの複合要素やコレクション要素が存在しないことが確認されます。
  • データディクショナリの作成で XSD を読み込むときに、複数のトップレベル要素が検出されると、データディクショナリエディターはデータディクショナリを作成するために 1 つのトップレベル要素を指定するように求めます。
  • データディクショナリに必要なパラメーターは、名前のみです。
  • 親 DDE(複合)には、同じ名前の 2 つの子を指定できません。
  • DDE が必須のパラメーターではない場合のみ、計算済みとしてマークされていることを確認します。必須の要素は計算済みとして指定できず、計算済み要素は必須として指定できません。また、コレクション要素と複合要素は計算済み要素として指定できません。
  • DDE が計算済みではない場合のみ、必須としてマークされていることを確認します。また、(コレクション要素の唯一の子である)コレクションタイプを表す「collectionElement」ではないことを確認します。
  • 空のキーまたは重複するキーは、データディクショナリまたは DDE の extendedProperties では使用できません。
  • 拡張プロパティのキーまたは値の内部でコロン(:)や縦棒(|)の文字を使用しないでください。これらの禁止文字の使用について検証は行われません。

データディクショナリレベルでの検証

  • データディクショナリ名はヌルにできません。
  • データディクショナリ名には、英数字のみ使用する必要があります。
  • データディクショナリの子要素のリストは、ヌルまたは空にできません。
  • データディクショナリに複数のトップレベルデータディクショナリ要素を含めることはできません。
  • 複合タイプのみが、データディクショナリのトップレベル要素として使用できます。

データディクショナリ要素レベルでの検証

  • どの DDE 名もヌルにできません。またスペースを含めることはできません。
  • すべての DDE の要素タイプを「not null/non null」にする必要があります。
  • どの DDE 参照名もヌルにできません。
  • すべての DDE 参照名は、一意である必要があります。
  • すべての DDE 参照には、英数字およびアンダースコア「_」しか使用できません。
  • すべての DDE 表示名には、英数字およびアンダースコア「_」しか使用できません。
  • 複合要素とコレクション要素はリーフレベルでは使用できません。プリミティブ(String、Date、Number、Boolean)要素のみがリーフレベルで使用できます。この検証では、子 DDE なしの複合要素やコレクション要素が存在しないことが確認されます。
  • 親 DDE(複合)には、同じ名前の 2 つの子要素を指定できません。
  • ENUM サブタイプは、String および Number 要素にのみ使用します。
  • コレクション要素および複合要素は、計算済み要素として指定できません。
  • DDE は、計算済みかつ必須の要素として指定できません。
  • 計算済み DDE には有効な式を含める必要があります。
  • 計算済み DDE に XML バインディングは指定できません。
  • コレクション DDE のタイプを示す DDE は、計算済みまたは必須の要素として指定できません。
  • サブタイプが ENUM の DDE は、値セットをヌルまたは空にすることはできません。
  • コレクション DDE の XML バインディングで、属性へのマッピングはできません。
  • XML バインディング構文は、有効なものである必要があります(@ を 1 つだけ使用する、@ は属性名の前にのみ使用するなど)。

 

 

 

データディクショナリ要素の XML スキーマへのマッピング

データディクショナリは XML スキーマから作成することも、データディクショナリユーザーインターフェイスを使用して作成することもできます。データディクショナリ内のすべてのデータディクショナリ要素(DDE)には XML バインディングフィールドがあり、DDE のバインディングを XML スキーマの要素に格納できます。各 DDE のバインディングは、親 DDE に対する相対パスにします。

Data Dictionary の実装の詳細を示すサンプルモデルおよびコードサンプルについて、以下に示します。

単純な(プリミティブ)要素のマッピング

プリミティブ DDE とは、本来アトミックなフィールドまたは属性を表します。複合タイプ(複合 DDE)または繰り返し要素(コレクション DDE)以外で定義されたプリミティブ DDE は、XML スキーマ内のどの場所にも格納できます。プリミティブ DDE に対応するデータの場所は、その親 DDE のマッピングには依存しません。プリミティブ DDE は、XML バインディングフィールドのマッピング情報を使用して値を特定します。マッピングは次のいずれかに解釈されます。

  • 属性
  • 要素
  • テキストコンテキスト
  • なし(無視された DDE)

単純なスキーマの例を以下に示します。

<?xml version="1.0" encoding="UTF-8"?> 
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> 
  <xs:element name='age' type='integer'/> 
  <xs:element name='price' type='decimal'/> 
</xs:schema>
データディクショナリ要素 デフォルトの XML バインディング
age /age
price /price

複合要素のマッピング

複合要素ではバインディングがサポートされていません。バインディングが提供されても無視されます。プリミティブ型の構成要素であるすべての子 DDE のバインディングは、絶対パスである必要があります。複合 DDE の子要素に対して絶対マッピングが使用できるので、XPath バインディングの観点で柔軟性が高くなります。複合 DDE を XML スキーマの複合タイプ要素にマッピングすると、その子要素のバインディングの範囲が制限されます。

以下の例は、メモ(note)のスキーマを示しています。

<xs:element name="note"> 
    <xs:complexType> 
        <xs:sequence> 
            <xs:element name="to" type="xs:string"/> 
            <xs:element name="from" type="xs:string"/> 
            <xs:element name="heading" type="xs:string"/> 
            <xs:element name="body" type="xs:string"/> 
        </xs:sequence> 
    </xs:complexType> 
</xs:element> 
データディクショナリ要素 デフォルトの XML バインディング
note 空(ヌル)
to /note/to
from /note/from
heading /note/heading
body /note/body

コレクション要素のマッピング

コレクション要素が別のコレクション要素にマッピングできるのは、別のコレクション要素のカーディナリティが 1 より大きい場合のみです。コレクション DDE の子 DDE には、その親の XML バインディングに対する相対(ローカル)XML バインディングが含まれます。コレクション要素の子 DDE は親と同じカーディナリティを持つ必要があるので、カーディナリティの制約を守るために相対バインディングを必須とし、子 DDE に繰り返さない XML スキーマ要素が指定されないようにします。以下の例では、「TokenID」のカーディナリティが、その親コレクション DDE. の「Tokens」と同じである必要があります。

コレクション DDE を XML スキーマ要素にマッピングする場合:

  • コレクション要素に対応する DDE のバインディングは、絶対 XPath である必要があります。

  • コレクション要素のタイプを表す DDE には、バインディングを指定しません。バインディングを指定しても無視されます。

  • コレクション要素のすべての子 DDE のバインディングは、親コレクション要素の相対パスである必要があります。

以下の XML スキーマは、名前が Tokens で maxOccurs 属性が「unbounded」の要素を宣言しています。つまり、Tokens はコレクション要素です。

<?xml version="1.0" encoding="utf-8"?> 
<Root> 
  <Tokens> 
    <TokenID>string</TokenID> 
    <TokenText> 
      <TextHeading>string</TextHeading> 
      <TextBody>string</TextBody> 
    </TokenText> 
  </Tokens> 
  <Tokens> 
    <TokenID>string</TokenID> 
    <TokenText> 
      <TextHeading>string</TextHeading> 
      <TextBody>string</TextBody> 
    </TokenText> 
  </Tokens> 
  <Tokens> 
    <TokenID>string</TokenID> 
    <TokenText> 
      <TextHeading>string</TextHeading> 
      <TextBody>string</TextBody> 
    </TokenText> 
  </Tokens> 
</Root> 

このサンプルに関連付けられる Token.xsd は次のようになります。

<xs:element name="Root"> 
  <xs:complexType> 
    <xs:sequence> 
      <xs:element name="Tokens" type="TokenType" maxOccurs="unbounded"/> 
    </xs:sequence> 
  </xs:complexType> 
</xs:element> 
  
<xs:complexType name="TokenType"> 
  <xs:sequence> 
    <xs:element name="TokenID" type="xs:string"/> 
    <xs:element name="TokenText"> 
      <xs:complexType> 
        <xs:sequence> 
          <xs:element name="TextHeading" type="xs:string"/> 
          <xs:element name="TextBody" type="xs:string"/> 
        </xs:sequence> 
      </xs:complexType> 
    </xs:element> 
  </xs:sequence> 
</xs:complexType>
データディクショナリ要素 デフォルトの XML バインディング
Root 空(ヌル)
Tokens /Root/Tokens
Composite 空(ヌル)
TokenID TokenID
TokenText 空(ヌル)
TokenHeading TokenText/TextHeading
TokenBody TokenText/TextBody

本作品は Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License によってライセンス許可を受けています。  Twitter™ および Facebook の投稿には、Creative Commons の規約内容は適用されません。

法律上の注意   |   プライバシーポリシー