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

Altova StyleVision 2020 Enterprise Edition

(マイ) ドキュメントフォルダー 以下にある C:\Documents and Settings\<username>\My Documents\Altova\StyleVision2020\StyleVisionExamples\Tutorial\ModularSPS にはモジュール SPS のサンプルが収められています。このフォルダー内にあるサンプルファイルにより、ビジネス用と個人用の連絡先がモジュール化されているアドレス帳のプロジェクトファイルが構成されます。サンプルにより、モジュール化がどのように実装されるか確認することができるとともに、モジュール化を行う利点を知ることもできます。

 

アドレス帳は、(i) ビジネス用の連絡先と、(ii) 個人用の連絡先という2つのモジュールから構成され、両方とも独立した SPS によりデザインされます。2つのモジュールを合わせることで、合成されたアドレス帳が作られます。ここでは複数のモジュールにより、より大きなデータが構成されます。

各モジュール(ビジネス用と個人用の連絡先)のコンテンツモデルはそれぞれ多少違っていますが、住所や電話番号、FAX、電子メールといった情報から構成される ContactPoints モジュールという共通のモジュールを含んでいます。従って、ContactPoints モジュールは2つの連絡先(ビジネス用と個人用)にて共有することができます。モジュール化により、1つのモジュールをその他複数のユニットにおける共通部分として使用することができます。

更に、ContactPoints モジュールにより、柔軟性を向上させることができます。サンプルプロジェクトでは、EU (欧州)の住所、US (米国)の住所、またはその他地域の住所に対応した、3つのコンテンツモデルを含む独立した Address モジュールが作成されています。これら3つのコンテンツモデルに対する出力は単一の SPS にて決定されていますが、それぞれの SPS にて細かな定義を行うことも可能です。この場合、モジュールの再利用を簡単に行うことができるため、モジュールを柔軟に使用することが可能になります。

 

このプロジェクトに関する説明は、以下のようにまとめられています:

 

スキーマファイル

XML データソース

SPS ファイル

 

スキーマファイル

モジュール SPS に対するスキーマを作成する場合、再利用する要素をグローバル要素として作成しなければならない点に留意してください。アドレス帳のスキーマは AddressBook.xsd で、ビジネス用のアドレス帳 (BusinessAddressBook.xsd) と個人用のアドレス帳 (PersonalAddressBook.xsd) をインポートすることで構成されています。BusinessAddressBook.xsd スキーマにより会社用のコンテンツモデルが与えられ、PersonalAddressBook.xsd スキーマにより個人用のコンテンツモデルが与えられます(以下のスクリーンショットを参照)。

 

TutMod_SchemasAddressBook

 

両方のスキーマにて連絡先詳細のコンテンツモデルが定義されている ContactPoints.xsd スキーマがインポートされます。

 

TutMod_SchemasCoPers

 

ContactPoints.xsd スキーマには EU、US、そしてその他 (Other) の地域に対応したアドレス帳のコンテンツモデルが定義された Address.xsd スキーマが含まれています(以下のスクリーンショットを参照)。

 

TutMod_SchemasContactPts

 

対象となるスキーマが別の名前空間に属している場合、スキーマが「インポート」されます。対象となるスキーマが同じ名前空間に属している場合、スキーマは「インクルード」されます。

 

メモ:上に示されるスキーマのスクリーンショットは、Altova XMLSpy のスキーマビューです。

 

XML データソース

XML データは AddressBook.xml ファイル内に含まれています。このファイルでは、AddressBook 要素内に companiespersons 要素が子要素として含まれています。これら2つの要素のコンテンツモデルは、それぞれ BusinessAddressBook.xsdPersonalAddressBook.xsd スキーマファイルにて定義されています。

 

BusinessAddressBook.xsdPersonalAddressBook.xsd スキーマにそれぞれ対応する XML データファイルも存在します。これら2つの XML ファイル(BusinessAddressBook.xml ならびに PersonalAddressBook.xml)は、対応する SPS ファイルの作業用 XML ファイルとして使用されます。

 

SPS モジュールと 作業用 XML ファイル の対応を以下に示します:

 

AddressBook.xml  =>  AddressBook.sps, ContactPoints.sps, Address.sps

BusinessAddressBook.xml  =>  BusinessAddressBook.sps

PersonalAddressBook.xml  =>  PersonalAddressBook.sps

 

SPS モジュール

最も基本的なモジュール (Address.sps) を最初に説明し、アドレス帳 (AddressBook.sps) を完成させるまでのステップを記述します。全てのSPS モジュールでは AddressBook.xsd をスキーマとして使用しています。

 

Address.sps

スキーマと作業用 XML ファイルの使用に関するポイントを以下に記します。

 

Address.sps では AddressBook.xsd がスキーマとして使用されます。しかし、Address.xsdContactPoints.xsdBusinessAddressBook.xsdPersonalAddressBook.xsd の全てに Address 要素がグローバル要素として含まれているため、これらスキーマのどれかを使用することもできます。SPS モジュールが別の SPS モジュール内に追加されると、インポートされたモジュールのスキーマが無視されるため、SPS がモジュールとして追加される際にどのスキーマが使用されたかは重要ではなくなります。

AddressBook.xml が作業用 XML ファイルになります。Address.sps 内にあるメインテンプレートでは、Address 要素だけが処理されるように指定されているということと、Address-EUAddress-US、そして Address-Other のグローバルテンプレートが定義されているだけである点に注目してください。

 

TutMod_AddressSPSMainTemp

 

Address 要素だけが処理されるため、出力プレビューにて Address の出力だけが表示されます。Address.sps がモジュールとして使用される場合、グローバルテンプレートが追加され、メインテンプレートが無視されます。

 

ContactPoints.sps

この SPS では1つのモジュールがインポートされます。グローバルテンプレートが他のグローバルテンプレートやメインテンプレート内部で使用されている点に注目してください。

 

ContactPoints.sps では AddressBook.xsd がスキーマとして使用され、AddressBook.xml が作業用 XML ファイルとして使用されます。

Address.sps がモジュールとして追加されるため、Address-EUAddress-USAddress-Other 要素がグローバルテンプレートとして利用可能になります。

ContactPointsEmail 要素のグローバルテンプレートが定義されます。ContactPoints の定義に Email のグローバルテンプレートが使用されている点に注目してください(以下のスクリーンショットを参照)。

 

TutMod_ContactPointsEmail

 

プレビューに必要なメインテンプレートでは ContactPoints 要素のグローバルテンプレートが使用されているため、ContactPoints 出力のプレビューが有効になっています。

 

BusinessAddressBook.sps PersonalAddressBook.sps

プレビューに必要なメインテンプレートでは ContactPoints 要素のグローバルテンプレートが使用されているため、ContactPoints 出力のプレビューが有効になっています。

 

これら2つのモジュールでは AddressBook.xsd がスキーマとして使用されます。作業用 XML ファイルには、BusinessAddressBook.xmlPersonalAddressBook.xml がそれぞれ使用されます。

ContactPoints.sps がモジュールとして使用されます。これにより Address.sps が間接的にインポートされます。これら2つのモジュールにある全てのグローバルテンプレートが参照元の SPS モジュールにて利用可能になります。

BusinessAddressBook.sps グローバルテンプレートが Companies ならびに Company 要素に対して定義されます。Company の定義ではグローバルテンプレートの ContactPoints が使用されている点に注目してください。

PersonalAddressBook.sps では、グローバルテンプレートが Person ならびに Persons 要素に対して定義されます。Person の定義ではグローバルテンプレートの ContactPoints が使用されている点に注目してください。

 

AddressBook.sps

Email 要素に対して2つのグローバルテンプレートが表示されており、そのどちらかを有効にすることができます。

 

AddressBook.sps では AddressBook.xsd がスキーマとして使用されます。作業用 XML ファイルには AddressBook.xml が使用されます。

BusinessAddressBook.spsPersonalAddressBook.sps がモジュールとして追加され、その結果 ContactPoints.spsAddress.sps が間接的にインポートされます。

グローバルテンプレートが Email 要素に対して定義されます。つまり Email に対して、ContactPoints.spsAddressBook.sps から得られた2つのグローバルテンプレートが存在します(以下のスクリーンショットを参照)。

 

TutMod_GlobalTempsEmail

 

デザインツリーのグローバルテンプレートでは、どのグローバルテンプレートをアクティブにするか選択することができます。 StyleVision で同時に使用することのできる同名のグローバルテンプレートは1つだけで、どちらがアクティブになろうとも、ContactPoints グローバルテンプレートにて使用されます。

メインテンプレートには、出力のヘッダーに使用される静的コンテンツが含まれています。

 

 

 

(C) 2019 Altova GmbH