複数の スキーマソース

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

ホーム >  SPS ファイル: 構造 > スキーマソース >

複数の スキーマソース

SPS では複数のスキーマソースを使用することができます。この機能により、複数の XML ドキュメントから得られたデータを組み合わせて出力に表示することができます。例えば、ある XML ドキュメント内に組織内の部門名とそれらの構造が記述されており、別の XML ドキュメントには各部門に勤務する従業員のリストが含まれている場合を考えてみましょう。これら2つの XML ドキュメントに含まれているデータを組み合わせることで、出力では組織の構造と従業員のデータを表示することが可能になります。

 

メモ:複数のスキーマが使用されている環境で、同じ名前の拡張 QName を持ったグローバル要素が2つ以上存在する場合、名前の衝突が発生し、レンダリングされている1つ(またはそれ以上)のスキーマドキュメントが無効となります。そのため、複数のスキーマにおいて、同じ名前の拡張 QName が使用されないことを保証する必要があります。複数のスキーマにてローカル要素に同名の QName を与えたとしても、名前の衝突は発生しません。

 

複数の スキーマを追加する

複数のドキュメントから動的に XML データを組み合わせるには、SPS に対して関連するスキーマを追加する必要があります。スキーマの追加はデザイン概要サイドバー にて行います(以下のスクリーンショットを参照)。この操作により、 スキーマツリー サイドバー 内にある各スキーマに対してツリーが作成されます(下のスクリーンショット。 追加された各スキーマのために 作業用 XML ファイルテンプレート XML ファイルルート要素を選択することができます (デザイン概要サイドバーのセクションを参照ください)。追加されたスキーマ内にあるグローバル要素が、スキーマツリーサイドバー内にある全てのグローバル要素 ツリー以下に表示され、 グローバルテンプレートして作成することができます。

 

WinSchemaSrcMultipleXSD

 

XML 署名 はメインソースに対してしか有効にできない点に注意してください。

 

各スキーマソースは $XML1 (DTD や XML スキーマ)、$DB1 (DB をベースにしたスキーマ)、または $USER1 (ユーザー定義のスキーマ)という形式のパラメーターにより識別されます。これら3種類のスキーマを、単一の SPS にて組み合わせることができます(以下のスクリーンショットを参照)。SPS に追加することができる DTD や XML スキーマの数に制限は無いものの、追加することができる DB ベースのスキーマとユーザー定義スキーマはそれぞれ1つだけという点に注意してください。

 

WinSchemaSrcMultipleMixedXSD

 

メインスキーマを選択する

スキーマツリーサイドバーでは、SPS に対して追加されたスキーマのうち1つを メインスキーマ, として指定することができ、デザイン概要サイドバーとスキーマツリーサイドバーでは、メインスキーマの隣に (メイン) という文字が表示されます。メインスキーマに対応した XML ドキュメントの ドキュメントノード が、変換処理の開始点となります。メインスキーマを選択するには、 デザイン概要サイドバー にてスキーマを右クリックし、メインスキーマとしてセットを選択してください。

 

異なるスキーマからデザインへノードを追加する

メインのテンプレート 内部では、それぞれのスキーマツリーからメインテンプレートへドラッグすることで、異なるスキーマ上にあるノードをデザインへ追加することができます。単一のスキーマと同様の方法でグローバルテンプレート を作成することができます。グローバルテンプレートはコピーし ローカルテンプレート として使用、またはメインテンプレートにて その他のコンテンツ 使用する際に、内蔵のテンプレートの代わりとして使用することができます。

 

外部の変換にてスキーマパラメーターを使用する

SPS に追加された各スキーマはパラメーターにより識別されます。例えば DTD や XML スキーマには $XML が、DB をベースにしたスキーマには $DB が、ユーザー定義のスキーマには $USER が使用されます。StyleVision では各スキーマに割り当てられた作業用 XML ファイルが把握されており、適切なドキュメントノードへのアクセスを行い、XML ソースから得られたデータを Authentic View や出力プレビューに表示することが可能になります。しかし SPS から XSLT スタイルシートを生成する場合、XML ファイルの割り当て情報がスタイルシートに含められることはなく、各 XML ファイルの場所を、対応するスキーマパラメーターの値として渡す必要があります。例えば、(上のスクリーンショットにおける)スキーマパラメーターの $XML に対して "[path]NanonullOrg.xml" を渡します(コマンドラインから.

 

メモ: 以下の点に注意してください。

 

DB をベースとしたスキーマの場合、DB から生成された XML ファイルが $DB パラメーターの値として(「ファイル | 生成されたファイルの保存」により)渡されます。
メインスキーマパラメーターへ渡される値は全て無視されます。変換される XML ドキュメントのドキュメントノードが、XSLT スタイルシートの開始点として使用されます。

 

 

 


(C) 2019 Altova GmbH