MobileTogether 内の XPath

www.altova.com すべてを展開/折りたたむ このトピックを印刷 前のページ 1つ上のレベル 次のページ

ホーム >  はじめに >

MobileTogether 内の XPath

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[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 または 非-US オフィスを選択します。
for $i in //Office return $i[@location='US']:  この for 演算子は、 US の値を持つ location 属性を持つすべての Office 要素を返します。

 

XPath 関数

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

 

Collapse to expand/collapse内蔵された関数

XPath 言語は、データおよび XML ツリーに関連したメタデータを抽出し、データを生成することのできる、大規模な内蔵された関数のライブラリを含んでいます。例えば:

 

count(Office):  は、 Office 子要素の数を返します。
day-from-date("2015-04-26"):  は、関数の日付引数の一部である、数字 26 を返します。

 

内蔵された関数に関してのユーザーガイドと参照はインターネットで広く利用することができます。関数の完全なリストは 「W3C の XPath 3.1 に関する勧告」で見つけることができます。

 

 

Collapse to expand/collapseAltova 拡張関数

Altova が開発するXPath 拡張関数のセットは、開発者に XPath 内での機能性を提供します。現在、位置情報を提供する関数や整数を16進数に変換する関数、または16進数を整数に変換する関数など、 およそ 60 の拡張関数があります。 例えば:

 

format-geolocation(33.33, -22.22, 2) は、xs:string "33.33N 22.22W" を返します。
hex-string-to-integer('1') は、 1 を返します。

 

Altova 拡張関数はすべての MobileTogether デザインで使用することができます。使用方法の情報に関しては、 MobileTogether Designer ユーザーマニュアルの Altova  拡張関数 セクションを参照してください。

 

 

Collapse to expand/collapseMobileTogether 拡張関数

これらの XPath 拡張関数は、 Altova により、 MobileTogether デザイン内の具体的な使用のために開発されました。例えば:

 

mt-has-server-access(10) は、サーバーへのアクセスが関数の引数として指定されている秒内で可能な場合 true を返します。その他の場合は false を返します。
mt-load-string('MyCourier')  は、ソリューションの文字列プール内に保管されたローカライズされた MyCourier 文字列を返します。ローカライズの言語は、モバイルデバイスの言語に従い自動的に選択されます。

 

MobileTogether 拡張関数は、すべての MobileTogether デザインで使用することができます。使用方法の情報に関しては、 MobileTogether Designer ユーザーマニュアルの MobileTogether 拡張関数 セクションを参照してください。

 

 

Collapse to expand/collapseユーザー定義拡張関数

ユーザーは、上にリストされる関数ライブラリに適切な関数が見つからない場合、ユーザーは、XPath 拡張関数の一部を、具体的な目的のために定義することができます。例えば、セ氏と華氏の気温の違いを定義する関数が必要とします。 ユーザー定義関数は、単一の MobileTogether プロジェクト内で定義され、 その具体的なプロジェクト内で使用されます。この様なカスタム関数を定義する方法は MobileTogether Designer ユーザーマニュアルの ユーザー定義 XPath/XQuery 関数 セクションで説明されています。

 

 

グローバル関数

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

 

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

 

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

 


(C) 2019 Altova GmbH