デザインコンポーネント

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

ホーム >  チュートリアル > SOAP リクエスト >

デザインコンポーネント

以下のスクリーンショット内では、デザインコンポーネントには番号が付けられ、コールアウトのセクションで更に詳しく説明されています。左側のスクリーンショットは、シミュレーションを、右のスクリーンショットはデザインを表示しています。コールアウトをクリックして、対応するデザインコンポーネントの詳細を確認してください。

 

Click to expand/collapse  

MTDSOAPTutDesCallouts01

ランタイムソリューションのシミュレーション

ページデザイン

 

Click to expand/collapse1:  UTC 時刻を更新するためのボタン

UTC 時刻の更新 ボタン がランタイムでクリックされた場合、 ボタンのクリック時 イベントは2つのアクションをトリガーします (下のスクリーンショット参照)。最初に、 SOAP リクエストの実行 アクションが SOAP リクエストを UTC 時刻のために Web サーバーに送信します。 Web サービスからの SOAP レスポンスは、 $MT_HTTPExecute_Result 変数に保管されています (下のスクリーンショットで青い枠に囲まれています)。次に、 ノードの更新 アクションは UTC 時刻を使用して $XML1/CityTime/UTC ノードを更新します。このノードのコンテンツは即にラベルに表示されます (下のコールアウト 2 を参照)。

MTDSOAPTutButtonEvent

Web サービスは、現在の UTC 時刻を取得するオペレーション (getUTCTime) を提供します。SOAP リクエストがどのように定義されるかを確認するには、 SOAP リクエストの実行アクションの[編集](上のスクリーンショットで赤い枠で囲まれていますをクリックします ) 表示される SOAP リクエストダイアログ 内のプレビューペインに SOAP  リクエストのテキストが表示されています。

 

Click to expand/collapse2: UTC 時刻を表示するラベル

このラベルはページソースノード $XML1/CityTime/UTC (ラベルの ページソースリンク)と関連しています。 このノードからのデータがラベル内に表示されます。 ノード $XML1/CityTime/UTCUTC 時刻の更新 ボタンがクリックされる際に更新されるため  (上のコールアウト 1 参照) 更新された UTC 時刻 がこのラベル内に表示されます。

 

hmtoggle_arrow13:  都市を選択するためのコンボボックス

コンボボックス の目的は、以下のとおりです:

 

1.XML ページソースCities 要素にリストされる都市の名前を表示するため
2.ユーザーが都市を選択すると、 その都市の現在の時刻を SOAP リクエストに送信するため
3.ユーザーの選択により影響を受けるすべての //Time//Timezone ノードを更新するため(下のスクリーンショット内の更新アクション ' を参照)

 

 

コンボボックスのドロップダウンリスト内のアイテムの選択

デザイン内でコンボボックスコントロールをダブルクリックして、[コンボボックスの編集]ダイアログを表示します。コンボボックスドロップダウンリストのアイテムは、 XML ページソースCities 要素内の都市名です。 これらの都市名は、 XPath 式 $XML1/CityTime/Cities/City/Name と一緒に選択されます。これらの都市名の XML 値は、都市名のテキスト(コンボボックスのドロップダウンリストの表示されるエントリ)と同じになるように設定されています。

 

ユーザーが都市をコンボボックス内から選択すると、(コンボボックスエントリと同じ)選択の XML 値がノード $XML1/CityTime/SelectCity/City/Name にパスされます。  これは、コンボボックス とこの XML ツリーノード間にページソースリンクを作成し、 ページソースペイン からツリーノードをコントロールにドラッグアンドドロップすることにより、アーカイブされます)。

 

 

都市の現在の時刻を取得するために SOAP リクエスト を定義する

コンボボックスのアクションダイアログを開くためにコンボボックスの左上のコントロールアクションシンボルをダブルクリックします。 (下のスクリーンショット)。 SOAP リクエストの実行 アクションはコンボボックスの[編集の完了時]イベントのために定義されています。 Web サービスは、指定されたタイムゾーンの現在の時刻を取得する(getTimeZoneTimeResult)オペレーションを提供します。 時刻がリクエストされるタイムゾーンは、 SOAP リクエストのパラメーターとして送信されます。 SOAP リクエストがどのように定義されたか確認するには、 SOAP リクエストの実行アクションの実行の [編集] ボタン (下のスクリーンショット出赤い枠でかこまれています)をクリックします。 SOAP リクエストダイアログ が表示されます。

MTDSOAPTutComboBoxEvent

SOAP リクエストダイアログ内の、プレビューペインに SOAP リクエストのテキストが表示されます。タイムゾーンパラメーターは、パラメーターペインに表示されます。  パラメーターの XPath ボタンをクリックして、 m:timezone パラメーターの値を選択する XPath 式を確認します:

 

for $i in $XML1/CityTime/SelectCity/City/Name return $XML1//Cities/City/TimeZone[../Name=$i]

 

XPath 式 は、最初にユーザーがコンボボックス内から選択した都市名を選択し、値を式の $i 変数内に保管します。 式は、次に(XML ページソースCities 要素から) $i 内の値にマッチする Name 要素を持つ都市のTimezone 要素を選択します。 このようにして、m:timezone パラメーターの SOAP リクエストとしてユーザーが選択した都市のタイムゾーンが設定されます。このリクエストを受け、  Web サービスは、リクエストされたタイムゾーンの現在の時刻を返します。

 

 

SOAP レスポンスを変数内に保管する

Web サービスからの SOAP レスポンスは、$MT_HTTPExecute_Result 変数に保管されており、 (上のスクリーンショット出青い枠でかこまれています)。 XML ドキュメントである SOAP レスポンス全体が変数に保管されていることに注意してください。 タイムゾーンの時刻を含むノードを選択するために SOAP レスポンスの構造を知る必要があります。下のサンプルの場合、次の XPath 式 が SOAPレスポンス内に保管されたタイムゾーンの時刻を検索します:

 

$MT_HTTPExecute_Result//getTimeZoneTimeResult

 

メモ:   getTimeZoneTimeResult ノードは、 SOAP レスポンス内でプレフィックスが無く、 http://www.Nanonull.com/TimeService/ 名前空間内にあります。 デザインの XPath デフォルトの名前空間は、ですからのこ名前空間に変更されます。 これが行われない場合、 SOAP レスポンス内のタイムゾーンの時刻が次の XPath 式でアクセスすることができます:他の名前空間内で要素ノードを検索する $MT_HTTPExecute_Result//*:getTimeZoneTimeResult。 要素ノードを名前空間内で検索する getTimeZoneTimeResult。 以下も参照: SOAP レスポンス内のノードの名前空間と XML ツリー

 

 

タイムゾーンの時刻付きのノードの更新

ノードの更新 アクションは、2つの XML ツリー ノードを受け取ったタイムゾーンの時刻を使用して更新します: (i) $XML1/CityTime/SelectCity/City/Time と (ii) $XML1/CityTime/Cities/City[Name=$XML1/CityTime/SelectCity/City/Name]/Time。ハイライトされた部分は、2番目の式で、ユーザーが選択した都市の名前に一致する Cities データベース内の都市がアップデートされるように指定します。 これらの更新されたノードのコンテンツは、ページソースリンクを介して、すぐに表示されます (下の コールアウト 5 と 9 を参照)。 タイムゾーンの時刻の値は、$MT_HTTPExecute_Result 変数を使用した SOAP レスポンスから取得されます。

 

 

選択された都市のタイムゾーンの表示

ノードの更新 アクションは、 $XML1/CityTime/SelectCity/City/TimeZoneノードを更新するために使用されます。ノードが更新されるために使用する値は、次の式で選択されるノードのコンテンツです: $XML1/CityTime/Cities/City[Name=$XML1/CityTime/SelectCity/City/Name]/Timezone。 この式は、 Cities データベース内でユーザーが選択した都市の名前に一致する名前を持つ都市の TimeZone 要素を選択します。 更新されたノードのコンテンツは、 ページソースリンクを介して編集フィールドに表示されます  (下のコールアウト 4 を参照)。

 


Click to expand/collapse4:  ユーザーが選択下都市のタイムゾーンを表示する編集フィールド

この編集フィールドはページソースノード $XML1/CityTime/SelectCity/City/TimeZone (編集フィールドの ページソースリンク)と関連しています。 ですから、ユーザーがコンボボックス内から都市を選択すると、その都市のタイムゾーンが編集フィールド内で表示されます。一連のアクションは、以下のとおりです: ユーザーが都市を選択すると、 SelectCity//TimeZone ノードが更新されます ( コンボボックス内の更新アクションのため。上のコールアウト 3 を参照)。 そして、 SelectCity//TimeZone ノードが編集フィールドのページソースリンクであるため、編集フィールドは自動的にSelectCity//TimeZone ノードの更新した値を表示します。

 

Click to expand/collapse5: ユーザーが選択した都市の現在の時刻を表示するラベル

このラベルはページソースノード $XML1/CityTime/SelectCity/City/Time (ラベルの ページソースリンク)と関連しています。 ユーザーが都市をコンボボックス内から選択すると、 (i) SOAP リクエストがその都市のタイムゾーンの現在の時間を取得するために送信されます、そして (ii)そのタイムゾーン内の現在の時刻と共に SelectCity//Time ノードが更新されます (コンボボックスの更新アクションのため。上の コールアウト 3 参照)。 ラベルは、更新された SelectCity//Time ノードのページソースリンクのため更新された時間を自動的に表示します。

 

Click to expand/collapse6:  都市のデータベースを表示するテーブル

XML ページソースCities 要素内の都市は、 City 要素内でそれぞれ定義されています。City 要素はですから、3つのカラムと動的な行のテーブル内の繰り返し行として作成されます。それぞれの都市が行に表示されます。 列はそれぞれ、各都市の名前、タイムゾーン、と時刻を表示します。 列で使用されるコントロールは、それぞれ、 ボタン (ページソースリンクとしての都市の Name 要素)、編集フィールド、 (ページソースリンクとしての都市の Timezone 要素) とラベルです ( ページソースリンクとしての都市の Time 要素)。 下のコールアウト 7、8 と 9 参照。

 

Click to expand/collapse7:  都市の時刻を更新するボタン

ボタンは、 $XML1/CityTime/Cities/City/Name  に対するページソースリンクとして都市名を表示します。ランタイムでは、 都市のボタンがクリックされると、 SOAP リクエストが都市の(タイムゾーン) 時刻を取得するために送信されます (下のスクリーンショット参照)。リクエストされた m:timezone パラメーターの値は、都市の TimeZone 要素から取得されます。 コンテキストノードが City のため、都市のタイムゾーンを取得する XPath 式は、以下の通りです: TimeZone. SOAP レスポンスは、 $MT_HTTPExecute_Result 変数内に保管されます。次に、ノードの更新 アクションは、タイムゾーンの時刻付きの $XML1/CityTime/Cities/City/Name ノードを更新します。この更新ノードの内容は即ラベルに表示されます (下の コールアウト 9 参照)。

MTDSOAPTutCityButtonEvent

Click to expand/collapse8:  データベース内の都市のタイムゾーンを表示するフィールドを編集する

編集フィールドはXML ノード $XML1/CityTime/Cities/City/TimeZone (編集フィールドの ページソースリンク)と関連付けられます。このノードの内容は変更されません。

 

Click to expand/collapse9:  都市の現在の時刻を表示するラベル

ラベルは XML ノード $XML1/CityTime/Cities/City/Time (ラベルの ページソースリンク)と関連付けられます。 このノードからのデータは、ユーザーが対応する City ボタンをクリックするとラベル内に表示されます (上のコールアウト 7)。これは、  (i) ボタンにはこのノードを更新するアクションがあり  (上のコールアウト 7 参照)、  (ii) このノードがラベルの ページソースリンクであるからです。

 

 

ページアクション

ページアクションを確認するには、ページ内を右クリックして [ページアクション] を選択します。表示されるダイアログ内でページのロード時イベントのための3つのアクションが定義されています。 これらのアクションは、ページがロードされる際に更新されます。これらのアクションは最初のページの表示のためのデータを提供します。

 

以下のアクションが定義されています:

 

SOAP リクエストの実行: アクションは、 Web サービスからの UTC 時刻をリクエストし、レスポンスを $MT_HTTPExecute_Result 変数に保管します。リクエストは、 UTC 時刻 ボタン (コールアウト 1)と同じように定義されます。
ノードの更新: UTC 時刻と共にノード$XML1/CityTime/UTC をアップデートします。 ノードが UTC 時刻ラベルのページソースリンクであるため、 (コールアウト 2)、現在の UTC 時刻と共にラベルは初期化されます。
ノードの更新: UTC 時刻と共にノ $XML1/CityTime/SelectCity/City/Time ードを更新します。選択された都市  (SelectCity//Name) の初期の値は、 UTC 時刻 (XML ファイル参照)であり、現在の UTC 時刻と共に SelectCity//Time ノードを初期化します。

 


(C) 2019 Altova GmbH