このサイトをビューするために JavaScript を有効化してください。

Altova MapForce 2020 Basic Edition

MapForce を使用して、マッピングを作成すると、多くの目的はソースから値を読み取り、ターゲットに値を書き込むことです。しかしながら、ソースからだけではなく、ノード名から値を取得することを希望する場合があります。例えば、ソース XML から(値ではなく) 要素または属性の名前を読み取り、 ターゲット XML内で (名前では無く)要素または属性の値 に変換することを希望する場合があります。

 

以下の例を考慮してください:  XML ファイルが製品のリストを含む場合、各製品は次のフォーマットを有します:

 

  <product>

    <id>1</id>

    <color>red</color>

    <size>10</size>

  </product>

 

目的は、各製品の情報を名前と値のペアに変換することです。 例:

 

  <product>
    <attribute name="id" value="1" />
    <attribute name="color" value="red" />
    <attribute name="size" value="10" />
</product>

 

このようなシナリオには、マッピングからのノード名へのアクセスが必要になります。このトピックの主題であるノード名への動的なアクセスにより、このようなデータ変換を行うことができます。

 

メモ:node-namestatic-node-name コアライブラリ 関数を使用して、上記の変換を行うことができます。しかしながら、 この場合は、ソースから期待する正確な要素名が必要であり、ターゲットに手動で要素を接続する必要があります。また、これらの関数は、十分ではない場合があります。例えば、名前別にフィルター、またはグループ分けを行う場合、また、ノードマッピングからデータ型を操作する場合などが挙げられます。

 

ノード名への動的なアクセスは、ノード名を読み取る場合だけではなく、書き込む必要がある場合にも使用することができます。標準マッピングでは、基となるコンポーネントのスキーマからくる、ターゲット内の属性または要素の名前は、マッピングの実行前に既知です。動的なノード名を使用して、マッピングの実行前に既知ではない、新規の属性または要素を作成することができます。具体的には、属性または要素の名前が、MapForce によりサポートされるソースからマッピング自身により与えられます。

 

ノードの子要素、または属性への動的なアクセスを可能にするには、ノードが実際に子要素または属性を持つ必要があり、 XML ルートノードであってはなりません。

 

動的なノード名は、次のコンポーネント型に、または型からマッピングをする際にサポートされています:

 

XML

CSV/FLF*

 

* MapForce Professional または Enterprise Edition が必要です。

 

 

ノード名への動的なアクセスは次のマッピング言語によりサポートされています: BUILT-IN、XSLT2、XQuery、C#、 C++、 Java。*

 

* MapForce Professional または Enterprise Edition が必要です。

 

ノードへの動的なアクセスに関する情報は、以下を参照してください: ノード名へのアクセスを取得する。順序を追ったマッピングの例に関しては、以下を参照してください: 例: 要素名を属性値にマップする

 

(C) 2019 Altova GmbH