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

Altova MobileTogether Designer

1つの XML ページソース ($XML1) が、デザインのために必要なデータを保管し構築するために必要です。 以下から構成される XML ファイル CityTimes.xml を使用します (下のリスト参照):

 

ユーザーがボタンを押すと、 SOAP リクエストを介して UTC 時刻 と共にアップデートされる UTC 要素 (下のリスト参照)。 このノードはユーザーに UTC 時刻を表示するために使用されます。

自動的なページの更新の間で秒単位の時間を保留するための RefreshTime 要素(下のリスト参照)。ユーザーはこのノードの値を選択することができます。

ユーザーが選択する都市の詳細(Name、TimeZone、 および Time) を含む SelectCity 要素(下のリスト参照)。 ユーザーがコンボボックスのドロップダウンリストから選択した SelectCity 要素の Name 子要素が都市名と共に更新されます。コンボボックスの選択が行われると、 SelectCity/TimeZone 要素が Cities データベースより更新されます。 SelectCity/TimeZone 要素は、ユーザーが都市を選択すると送信される Web サービスの SOAP リクエストに対するレスポンスにより更新されます。

Cities 要素 は、選択された都市の詳細(Name、TimeZone、Time) (下のリスト参照)を含むデータベースです。 (希望する場合は都市を追加することもできます)。 Web サービスは都市のタイムゾーンを選択された都市の現在の時刻を返すためにアクセスします。 データベースはですから、タイムゾーンの情報を含む必要があります。 City 要素の Time 子要素は、現在の時刻を保管するために使用され、 SOAP リクエストのレスポンス内の Web サービスより取得されます。 上の UTC 時刻では、ユーザーがボタンを押すと(またはコンボボックス内の都市を選択すると)、 SOAP リクエストが送信されます。

 

ドキュメントの構造を表示する XML ページソース CityTimes.xml の短いバージョン

 

<CityTime xmlns="http://www.Nanonull.com/TimeService/">

 <UTC>12:00 AM</UTC>

 <RefreshTime>60</RefreshTime>

 <SelectCity>

         <City>

                 <Name>UTC Time</Name>

                 <TimeZone>GMT</TimeZone>

                 <Time>12:00 AM</Time>

         </City>

 </SelectCity>

 <Cities>

         <City>

                 <Name>Beijing</Name>

                 <TimeZone>UTC+8</TimeZone>

                 <Time>12:00 AM</Time>

         </City>

         ...

 </Cities>

 

 

 

 

XML ページソースの追加:

 

1.ページソースペイン 内の [ページソースの追加] アイコンをクリックします(上のスクリーンショット参照)。ファイルからインポートされた新規 XML、 HTML または JSON 構造 を選択します。次のスクリーンで ページソース設定を確認し、  (デフォルトを変更することなく) [完了]をクリックします。

MTDSOAPTutPageSources02XML

2.開くダイアログが表示されます。CityTimes.xml ファイルを参照します (ロケーションを確認して) [開く] をクリックします。 $XML1 ツリーが作成されます。このツリーは、 CityTimes.xml ファイルがデフォルトファイルとして設定されており、 XML ツリーはデフォルトのファイルの構造を持ちます。

 

SOAP レスポンスと XML ツリー内のノードの名前空間

この特別な Web サービスからの SOAP レスポンス内のノードにはプレフィックスはなく、以下の名前空間に属します: http://www.Nanonull.com/TimeService/。 ですから、SOAP レスポンスノードに正確にターゲットするには、デザインの XPath 式は この名前空間に対する XPath デフォルト名前空間 に設定されている必要があります(下のスクリーンショット)。

MTDSOAPTutPageSources03NS

この名前空間を XPath デフォルトの名前空間として設定することは、デザインの XPath 式内の全てのプレフィックス無しのノード がこの名前空間内に存在すると考えられます。 XML ツリーのノードにプレフィックスがない場合 (XML ツリーの場合のように)、 これらのツリーノードがプレフィックス無しに XPath 式に入力された場合、 これらのノードは、 XPath デフォルトの名前空間と考えられます: http://www.Nanonull.com/TimeService/

 

このため、名前空間 http://www.Nanonull.com/TimeService/ を ノード XML ツリーにも割り当てます。上の XML リストでも、ドキュメントのルート要素が名前空間に割り当てられていることに気が付くでしょう:

 

<CityTime xmlns="http://www.Nanonull.com/TimeService/">

 

この名前空間が XML ドキュメント全体のスコープであるため、また子孫要素の他の名前空間マッピングにより上書きされていないため、名前空間は ドキュメント全体に適用されます。

ドキュメントの名前空間宣言にはプレフィックスが無く、 この名前空間が XML ドキュメントのデフォルトの名前空間になります。この結果、プレフィックス無しのノードがこの名前空間内に存在します。

 

メモ:XML ドキュメントが SOAP レスポンスノードの名前空間以外にある場合はプレフィックスがあります。XML ドキュメント内でドキュメントの名前空間をプレフィックスと共に宣言することが奨励されます。デザイン内で、同じ prefix:namespace 値が デザインの 名前空間のコレクション内に入力されていることを確認してください。 デザインの XPath 式内では、 XML ツリーノードを参照する際宣言されたプレフィックスを使用する必要があります。 代わりに、XPath 式内では、 *:NodeName のような星印プレフィックスを持つノードをアドレスすることができます。これにより、ノードの持つ名前空間に関わらず、ローカル名 NodeName を持つ全てのノードをマッチすることができます。

 

(C) 2020 Altova GmbH