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

Altova MapForce 2020 Enterprise Edition

このサンプルは、デモ XQuery ライブラリモジュールを MapForce にインポートし、マッピングから関数を呼び出す方法について説明しています。このサンプルのデモモジュールは20%としての小数で示される税金を計算する関数により構成されています。生産のシナリオについては、XQuery モジュールには複数の関数が含まれている可能性があります。

 

XQuery モジュール内で宣言されているすべての関数は、アトミックな型を返し、彼らのパラメーターもアトミックデータ型である必要があります。 それ以外の場合、モジュールは MapForce にインポートすることはできません。

 

デモ XQuery モジュールファイルを MapForce がインストールされているコンピューターのドキュメントフォルダーに対して相対的なパスで見つけることができます: <マイ ドキュメント>\Altova\MapForce2020\MapForceExamples\Tutorial\module.xq.

 

xquery version "1.0";
 
module namespace demo="http://www.altova.com/mapforce/demo";
 
declare function demo:calculatetax($val as xs:decimal) as xs:decimal {  
  $val*0.2
};

module.xq

MapForce に XQuery モジュールファイルをインポートした後、demo:calculatetax 関数をマッピングから呼び出せるようになります。  XQuery 関数を使用して税金を計算することは、デモの目的です。同じ結果を MapForce ビルドイン関数を使用して達成することもできます。

 

demo:calculatetax 関数を呼び出すデモマッピングは、次のパスで見つけることができます: <マイ ドキュメント>\Altova\MapForce2020\MapForceExamples\Tutorial\CalculateTax_XQuery.mfd。このマッピングを最初に開くと、MapForce は XQuery 内で使用することのできない1つまたは複数のコンポーネントが含まれていることを通知する警告を表示します。この警告は通常で、マッピングがまだインポートされていないカスタム XQuery ライブラリから関数をマッピングが参照すると発生します。 この警告を削除し、マッピングを実行するには、以下の通り、不足する XQuery モジュールを MapForce にインポートします。

 

XQuery モジュールを MapForce にインポートする方法:

1.ライブラリウィンドウの最後にスクロールダウンし、「ライブラリを追加/削除」 をクリックします。オプションダイアログボックスが開かれます。

2.「追加」 をクリックして、次のファイルを検索します: <マイ ドキュメント>\Altova\MapForce2020\MapForceExamples\Tutorial\module.xq.

3. 「OK」 をクリックして、ダイアログボックスを閉じます。メッセージボックスが表示され、新規のライブラリが追加されていることを通知します。

mf_xq_01

インポートされたライブラリと demo:calculatetax 関数はライブラリウィンドウで確認することができます。

mf_xq_02

また、マッピングは検証され、警告なしで実行されます。示されている demo:calculatetax 関数はインポートされた XQuery モジュールから来ており、下のイメージで表示されています。また、他のビルトイン関数同様マッピングに追加することができます。 マッピングにビルドイン関数を追加するを参照して下さい。

mf_xq_03

CalculateTax_XQuery.mfd

 

マッピングの説明

CalculateTax_XQuery.mfd マッピングは、商品を保管する XML ファイルを入力としてとります。各商品には単一の価格が小数として表示されています。例 :

 

<Articles>
  <Article>
    <Number>1</Number>
    <Name>T-Shirt</Name>
    <SinglePrice>25</SinglePrice>
  </Article>
  <Article>
    <Number>2</Number>
    <Name>Socks</Name>
    <SinglePrice>2.30</SinglePrice>
  </Article>
  <Article>
    <Number>3</Number>
    <Name>Pants</Name>
    <SinglePrice>34</SinglePrice>
  </Article>
  <Article>
    <Number>4</Number>
    <Name>Jacket</Name>
    <SinglePrice>57.50</SinglePrice>
  </Article>
</Articles>

Articles.xml

XML ファイルとして同じスキーマにつく XML ファイルをマッピングは作成します。このために、ソースとターゲットのコンポーネントは、マッピング上で同じ構成を持ちます。  マッピングの接続が提案するとおり、ほとんどすべての要素が率直な方法でターゲットからソースにマップされます。 例、ソース内の各 Article に対して、ターゲット内に Article が存在します。全てのアイテムは逐語的に、 SinglePrice を除いてソース XML にコピーされます。SinglePrice の値は2つの関数の助けを借りて計算されます:

 

demo:calculatetax XQuery 関数は、基の SinglePrice を入力としてとり税金を計算します。

MapForce ビルトイン add 関数は税金と基の SinglePrice 価格を足して最終の価格が返されます。

 

重要な点は 入力パラメーター型に対応し、 XQuery関数の型を返すSinglePrice アイテムのデータ型が is xs:decimal—であることです。

 

下記の 出力 タブをクリックすると、マッピングにより生成された出力が表示されます。ソース XML.に比べ各価格は20%の価格情報が適用されていることに注意してください。

mf_xq_04

(C) 2019 Altova GmbH