SPS の作成

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

ホーム >  SPS ファイル: 構造 > モジュール SPS >

SPS の作成

モジュール SPS の作成は、大きく分けて以下のステップにより行われます:

 

1.追加する SPS モジュールのデザインと保存。
2.使用される(つまり参照元の)SPS に対してモジュールを追加
3.必要に応じて追加されたオブジェクトを有効/無効にする。
4.必要に応じて適切なオブジェクトを適用。

 

追加される SPS モジュール

他のモジュールへ追加される SPS を作成する際には、以下の2点に留意する必要があります:

 

1.参照元の SPS モジュール にて使用することのできるテンプレートは、 グローバルテンプレートだけです。つまり 追加される SPS モジュールにて再利用したいテンプレートは、グローバルテンプレートとして作成する必要があります。
2.追加される SPS モジュール内で定義されたドキュメント構造は、 参照元の SPS のソーススキーマ . により定義されるコンテンツモデル内部で妥当でなければなりません。追加されたテンプレートが SPS のメインスキーマにて定義されたコンテンツモデルに含まれていない場合でも、 ユーザー定義スキーマ内で定義することができます。

 

追加される SPS モジュールを作成する際には、SPS がベースとしているスキーマは、以下のどれかとなります:

 

参照元 SPS のメインソーススキーマ。この場合、SPS が追加された際に追加されるグローバルテンプレートが、参照元 SPS のメインスキーマにおけるコンテンツモデルの一部となります。そのため、Authentic View におけるこれらグローバルテンプレートの出力は編集可能なものとなります。
参照元 SPS のメインスキーマにより定義されたコンテンツモデルの一部となるコンテンツモデルを定義したスキーマ。この場合、グローバルテンプレートが追加されると、参照元 SPS のメインスキーマのコンテンツモデルに対してテンプレートが追加されます。Authentic View におけるこれらグローバルテンプレートの出力は編集可能なものとなります。
参照元 SPS のメインスキーマにより定義されるコンテンツモデルの一部とはならないコンテンツモデルを定義したスキーマ。この SPS モジュールが追加されても、参照元 SPS のスキーマにおけるコンテンツモデルの一部となることはありません。それでもユーザー定義スキーマにより、グローバルテンプレートのコンテンツモデルを含むコンテンツモデルが定義される場合、出力の生成に使用することができます。Authentic View におけるこれらグローバルテンプレートの出力は編集可能なものとはなりません。

 

使用しているスキーマにてコンテンツモデルを定義する場合、使用される 名前空間 によりノードの展開名が決定されるため、慎重に操作を行う必要があります。

 

作業用 XML ファイル を使用することで、追加される SPS モジュールの出力をテストすることができます。この作業用 XML ファイルへの参照は、 参照元の SPS にて無視されます

 

SPS モジュールを追加する

SPS へモジュールを追加するには デザイン概要 にて新たなモジュールを追加コマンドをクリックします(以下のスクリーンショットを参照)。表示されるダイアログにて目的の SPS ファイルを選択し、開くをクリックします。

 

WinDesOview

 

モジュールが SPS に追加され、デザイン概要のモジュール以下に表示されます。追加された全てのモジュールオブジェクトがデザインツリーサイドバーに表示されるとともに、追加された CSS ファイルはデザイン概要サイドバーにも表示されます。追加されたモジュールそのものが別のモジュールを参照している場合、それら参照されたモジュールも間接的にインポートされ、モジュール以下に灰色で表示されます。間接的にインポートされたモジュールが、どのモジュールによりインポートされたものなのかは、その(間接的にインポートされた)モジュールへマウスオーバーすることで確認することができます。

 

追加されたモジュールや間接的にインポートされたモジュールを StyleVision で開くには、そのモジュールを右クリックして、コンテキストメニューからモジュールを開くを選択してください。

 

 

 

追加されたモジュールの順序

モジュールが追加される順序と表示される順序は、CSS スタイルの優先順位にとって重要な意味を持ちます。CSS のカスケード順序は、後の方(リストの下部)に定義されたモジュールが、それ以前(リストの上部)のモジュールに対して優先的に決定されます。参照元 SPS モジュール内にある CSS スタイルは、追加されたモジュール内にある全てのスタイルより優先的に使用されます。追加されたモジュールの位置を変更するには、そのモジュールをデザイン概要にて右クリックし、コンテキストメニューから上へまたは下へを選択します。

 

スクリプトやグローバルテンプレート、デザインフラグメント、そしてページレイアウトアイテム間における衝突の解決に、モジュールの順序は意味を持ちません。

 

ファイルの変更警告

参照元の SPS モジュールが開かれている状態で、追加されたファイル(SPS モジュール、スキーマや作業用 XML ファイル)が変更されると、ファイルの変更ポップアップが表示され、参照元の SPS モジュールに変更を反映するか尋ねられます。

 

追加されたオブジェクトの有効化と無効化

追加された全てのモジュール内にある全てのモジュールオブジェクトは、(直接的、または間接的に追加されたかにかかわらず)参照元の SPS へ追加され、デザインツリー内の対応する箇所(スクリプト、グローバルテンプレート、デザインフラグメント、XSLT テンプレート、XPath 関数)以下に表示されます。これらオブジェクトの隣にはチェックボックスが表示されており、チェックボックスを有効/無効にすることで、そのオブジェクトを有効/無効にすることができます。オブジェクトを無効にすることで、そのオブジェクトを SPS から実質的に削除することができます。

 

DesTreeModulesActivateTemplate

 

上のスクリーンショットでは、AddressBook.sps モジュールにて使用されている全てのグローバルテンプレートがグローバルテンプレート以下に表示されています。他のモジュールを介して追加されたモジュールは(それが直接的であれ間接的であれ)グレー色で表示されます。AddressBook.sps 内で直接作成されたオブジェクトは黒色で表示されます。スクリーンショットでは、addr:Email というグローバルテンプレートだけが AddressBook.sps 内に作成され、その他のグローバルテンプレートは全て別のモジュールを介して追加され、オブジェクト名の隣に定義されたファイルの名前が表示されます。

 

addr:Email という名前のグローバルテンプレートが2つあることに注目してください。1つは参照元の SPS (AddressBook.sps) にて作成されたもので、もう1つは追加されたモジュールの ContactPoints.sps にて作成されたものです。複数のグローバルテンプレートが、同じ名前の(名前空間)展開名を持つ場合、そのうちの1つだけを同時に有効にすることができます。チェックボックスにより、有効にするものを選択することができます(その他にも、デザインビューのコンテキストメニューから、グローバルテンプレートを有効にすることもできます)。このメカニズムにより、(i) 参照元 SPS モジュールにて作成したグローバルテンプレートのオーバーライドや、(ii) ある要素に対して適用されるグローバルテンプレートが複数の追加モジュールにて定義されている状況での解決を行う際に便利な機能となります。

 

現在の SPS にて定義されたグローバルテンプレートは、選択した後に削除ボタンをクリックする事で削除することができますが、追加されたモジュールにて定義されたグローバルテンプレートを参照元の SPS にて削除することはできません。削除を行うには、追加された SPS を開き、そこでグローバルテンプレートを削除する必要があります。

 

個々のスクリプトならびにデザインフラグメントも、同様の方法で有効化/無効化することができます。

 

モジュールオブジェクトの適用と使用

参照元の SPS モジュール にて、通常の方法によりテンプレートのデザインを行います。追加されたオブジェクトは、その種類により異なる方法で適用されます。勿論、適用する各モジュールオブジェクトを 有効にする必要があります。

 

グローバルテンプレート

追加された SPS モジュールからグローバルテンプレート を使用するには、そのグローバルテンプレートが本当に適用されたかどうか確認する必要があります。作成中のデザインにより、以下にある方法のどれかで確認を行うことができます:

 

メインテンプレートにて、要素テンプレートがグローバルテンプレートを使用するように指定するか、グローバルテンプレートをローカルにコピーします。デザインにて要素タグを右クリックすることで表示されるコンテキストメニューにて、これらのコマンドを利用することができます。
メインテンプレートでは、コンテンツやその他のコンテンツプレースホルダによりテンプレートが適用され、関連するグローバルテンプレートが処理されます。

 

デザインフラグメント

デザインフラグメントを使用するには、デザインツリーからメインテンプレートやグローバルテンプレートテンプレート内にある目的の場所へ、デザインフラグメントをドラッグします。デザインフラグメントが、適切なコンテキストノードへドロップされるようにしてください。詳細については、次を参照してください: デザインフラグメント。

 

スクリプト

デザインフラグメントを使用するには、デザインツリーからメインテンプレートやグローバルテンプレートテンプレート内にある目的の場所へ、デザインフラグメントをドラッグします。デザインフラグメントが、適切なコンテキストノードへドロップされるようにしてください。詳細については プロパティサイドバーから 特定のイベントに対してセットすることができます.

 

 

 


(C) 2019 Altova GmbH