(XML ソースの)動的なコンテンツの挿入

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

ホーム >  クイックスタートチュートリアル >

(XML ソースの)動的なコンテンツの挿入

このセクションでは、XML ドキュメント内にあるノードからデータの挿入を行う方法について説明します。スキーマツリーに表示されている要素や属性ノードをデザインへドラッグすることで、これらノードをコンテンツとして作成することができます。ノードがコンテンツとして作成されると、その中にあるデータが要素の子テキストノードや、その子孫テキストノードのコンテンツが文字列として出力されます。

 

要素コンテンツの挿入

SPS において、以下の操作を行います::

 

1.スキーマツリー サイドバー において、スキーマツリーを展開して、newsitem 要素の子要素を表示します。(下のスクリーンショット).

 

TutQS_SchemaSrc_ExpandNewsitem

 

2.headline 要素を選択します(マウスオーバーにより、要素データ型がポップアップで表示されます)。要素を デザインビュー へドラッグして、矢印カーソルが挿入状態に変わった状態でメインテンプレートへドロップすることができます。
3.コンテキストメニューから、コンテンツの作成を選択します。headline 要素の開始ならびに終了タグが、デザイン内のドロップされた箇所に挿入され、コンテンツプレースホルダが内部に含まれます。headline タグの周りには、その祖先要素のタグが表示されます(スクリーンショットを参照)。

デザインにて、(Enter キーを押下することで)以下のスクリーンショットにあるように改行を挿入します。

 

TutQS_DesView_Headline

 

HTML タブをクリックして、 HTML 出力のプレビュー (下のスクリーンショット) を表示します。HTML プレビューには newsitemheadline 子要素がテキストとして表示されます。

 

TutQS_HTML_Headline

 

Authentic View や   RTF 出力。

 

メモ:デザイン要素の挿入 ツールバー ツールバーにあるコンテンツを挿入をクリックして、デザイン内の位置をクリックし、スキーマセレクターツリーから目的の位置を選択することで、ノードのコンテンツを作成することもできます。

 

属性コンテンツを挿入する

コンテンツとして要素がデザインへ挿入された場合、属性のコンテンツは自動的に挿入されません。属性ノードをデザインへ挿入することで、属性の値が出力へ表示されるようになります。以下の操作を SPS に対して行なってください:

 

1.カーソルを headline 要素タグの終端に配置して、Enter キーを押下します。この操作により、空の行が作成されます(スクリーンショットを参照)

 

TutQS_DesView_HeadlineNNewline

 

2.スキーマツリーサイドバーにて、dateline 要素を展開します。

 

TutQS_SchemaSrc_ExpandDateline

 

dateline 要素には dateplace という2つの子要素が含まれており、place 要素には citycountry という2つの属性が含まれていることに注意してください。

 

3.デザイン内の新たに作成した空の行に dateline 要素をドロップします。(下のスクリーンショット).

 

TutQS_DesView_Dateline

 

4.HTML プレビュー へ切り替えて、dateline の出力を確認します(下のスクリーンショット)。

 

TutQS_HTML_Dateline

 

dateline 要素の子である date のコンテンツが出力されていることに注目してください。dateline の子である place に対してコンテンツの出力は行われていません。これは、place のデータが place 要素の属性(city ならびに country 属性)に含まれている一方で、属性の親要素が処理された際に属性のコンテンツは出力されない為です。

5.デザインビューにて、 Authentic | 日付選択の自動追加 メニューコマンドのチェックを外すことで、 日付選択の自動追加 を無効にします(アイコンの境界線が無くなります)。この操作により、(次の操作で行う)xs:date または xs:dateTime がデザインへ挿入された際に、日付選択が自動的に挿入されなくなります。 スキーマツリー サイドバー から date 要素をドラッグして、dateline 要素の開始ならびに終了タグの間にドロップします。
6.スキーマツリー サイドバー内にある dateline/place 要素の city 属性を選択します(下のスクリーンショット)

 

TutQS_SchemaSrc_City

 

7.@city 属性ノードを デザインビュー へドラッグして、date 要素の終了タグ直後にドロップし、コンテンツを作成します。
8.@country ノードを デザインビュー へドロップして、@city 属性の終了タグ直後にドロップし、コンテンツを作成します。.

 

上の操作を行った後に、SPS デザインは以下のようになっているはずです:

 

TutQS_DesView_DatelineNAttributes

 

HTML プレビュー は以下のように表示されます::

 

TutQS_HTML_DatelineNAttributes

 

@city ならびに @country 属性の値が出力に含まれていることに注目してください。

 

更に動的なコンテンツを追加する

上記の方法により、XML データソースから得られた要素ならびに属性のコンセプトを、デザイン内の任意の場所へ挿入することができます。このセクションを終了する前に、以下のスクリーンショットにあるように synopsis ならびに source 要素をデザインへ追加してください:

 

TutQS_DesView_SynopsisSource

 

synopsis 要素が source 要素の前に配置されていることに注意してください(スキーマ内の順番と異なっています)。synopsissource 要素をデザインに追加した後に、 HTML プレビュー から出力を確認してください。メインのテンプレート内に配置されたノードの順番により、出力に表示される順番となります(ドキュメントの構造と出力ドキュメントに関する詳細については、 テンプレートと デザインフラグメント を参照ください)。

 

その他にも、デザイン内に作成されるノードを含む形式(フォーム)について留意する必要があります。 HTML プレビュー では、デザイン内にある全てのノードが、テキスト文字列として出力へ送信されます。テキスト文字列として出力する代わりに、テーブルやコンボボックスといった、その他の形式での出力を行うこともできます。このセクションでは、全てのノードを(コンテンツ)として作成したため、これら全てのノードはテキスト文字列として出力されます。 条件を使用する セクションでは、コンボボックスとしてノードを作成する方法について学習し グローバルテンプレートとその他のコンテンツの使用 セクションでは、(動的な)テーブルとしてノードを作成する方法について学習します。

 

次のセクションを始める前に、ファイルを保存するようにしてください。

 

 

 


(C) 2019 Altova GmbH