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

Altova MobileTogether Designer

XPath 言語は MobileTogether ソリューションのデザインの重要な役割を果たしています。XPath は、データを、ロケート、アクセス、操作、生成、および保存するために使用される多種のデータツリーで使用され、異なるデザインコンポーネントの機能を定義するために使用されます。MobileTogether デザイン内で XPath が使用される重要な使用方法は以下に説明されています。この概要は XPath の広義での柔軟性と MobileTogether デザイン内での使用方法を説明しています。

 

XPath に関する詳細は、 MobileTogether Designer 内でサポートされる言語の最新のバージョンである 「W3C の XPath 3.1 に関する勧告」 を参照してください。学習ベースのアプローチを使用するためには、以下を参考にすることができます:

 

Altova の XPath の簡単な説明

Altova の XPath 3.0 トレーニング(英語)

W3C の XPath チュートリアル(英語)

 

ロケーター式

XPath 言語のロケーター式はツリー内のノードを検索するために使用されます。ロケーター式は通常、必要なノードを検索するパスにより構成されています。以下にいくつかのサンプルを紹介します:

 

/Company/Office:  は、トップレベルのドキュメントノードである Company 要素のすべての Office 子要素を検索します。ルートノードの下で直接発生するため、最初のスラッシュで示される、 Company 要素はトップレベルの要素です。

/Company/Office: /Company/Office[3]:  は、 Company要素の 3 番目の Office 子要素を検索します。

/Company/Office[3]/@location: Company 要素の 3 番目の Office 子要素の location 属性を検索します。

//Office[@location='US']: US の値を持つ location 属性を持つすべての Office 要素を検索します。

 

上のリストは基本的なロケータ式の例です。ロケータを構築するには、多種の方法があります。

 

演算子

演算子により、フィルターの適用、条件の構築、選択とデータの操作を行うことができます。2 つの演算子の例を紹介します:

 

if (Selection='US') then //Office[@location='US'] else //Office[@location!='US']:  この if 演算子は Selection 子要素のコンテンツに従い US または non-US オフィスを選択します。

for $i in //Office return $i[@location='US']:  この for 演算子は US の値を持つ location 属性を持つすべての Office 要素を返します。

 

XPath 関数

XPath 関数によりデータを操作、計算、生成することができます。例えば、関数は文字列を (関数の引数)入力とし、小文字に変換または文字列の一部を削除します。MobileTogether デザイン内で使用することのできる XPath 関数には以下の種類があります:

 

 

グローバル変数

グローバル変数はクライアント モバイル デバイスの情報を含みます。例えば、ある変数はデバイスの種類を示し、もう 1 つの変数はデバイスのディメンションを、もう 1 つの変数はデバイスの現在の向き (横長または縦長) を示すなどです。これらの変数の値は、通常のモバイル通信の手順の一部としてクライアントデバイスから実行時に取得されます。変数は XPath/XQuery 式に使用することができます。この結果、(サイズなどの) デバイス特有の静的プロパティに条件づけて、また、(向きなどの)変更可能な動的プロパティに応じて、処理を指定することができます。

 

MobileTogether のグローバル関数は、 グローバル関数 のセクションに定義済みで各変数の説明と使用可能な値と共にリストされています。下にリストされている MT_iPad グローバル変数 (使用可能な値:true(), false()) のサンプルはどの様にグローバル変数が XPath 式内でよびだされるかを示しています。$ シンボルは、 XPath 内の変数を示す通常の方法である、グローバル変数の名前の後に何が続くかを示すために使用されます。

 

if ( $MT_iPad=true() ) then "Apple" else ""  

 

(C) 2020 Altova GmbH