Beispiel: Ein Adressbuch

www.altova.com Alle erweitern/reduzieren Dieses Kapitel drucken Vorherige Seite Eine Ebene nach oben Nächste Seite

Startseite >  SPS-Datei: Struktur > Modulare SPSs >

Beispiel: Ein Adressbuch

Der Ordner (Eigene) Dateien C:\Documents and Settings\<username>\My Documents\Altova\StyleVision2019\StyleVisionExamples\Tutorials\ModularSPS enthält Beispiele modularer SPSs. Die Beispieldateien in diesem Ordner enthalten ein Projekt, in dem ein Adressbuch, das Geschäftskontakte und persönliche Adressen enthält, in Module gegliedert wird. In diesem Beispiel wird nicht nur die Wirkungsweise der Modularisierung gezeigt, sondern Sie sehen auch die wichtigsten Gründe, warum ein SPS in Module aufgeteilt werden soll.

 

Das komplette Adressbuch besteht aus zwei Modulen: (i) einem Geschäftsadressbuch und (ii) einem persönlichen Adressbuch. Jedes davon hat ein separates SPS, in dem unterschiedliche Designs definiert sind. Die beiden Module können zu einem einzigen Adressbuch kombiniert werden. In diesem Fall dient die Modularisierung dazu, Module zusammenstellen zu können: Die Module sind Komponenten einer größeren Einheit.
Zwar unterscheiden sich die Content Models der einzelnen Module (Geschäftsadressbuch und persönliches Adressbuch) geringfügig voneinander, doch haben beide ein gemeinsames Modul, das Modul "ContactPoints", das aus den wichtigsten Adressbestandteilen besteht: Adresse, Telefonnummer, Fax und E-Mail. Das Modul "ContactPoints" kann daher in beiden Adressbüchern (Geschäftsadressen und Privatadressen) verwendet werden. In diesem Fall kann aufgrund der Modularisierung ein einziges Modul von mehreren anderen Einheiten gemeinsam genutzt werden.
Das Modul "ContactPoints" kann zur größeren Flexibilität ebenfalls in Module aufgegliedert werden. Im Beispielprojekt haben wir ein separates Adressmodul für die Postadresse erstellt, welches eines von drei Content Models haben kann, je nachdem, ob es sich um eine Adresse in der EU, in den USA oder in einem anderen Land handelt. Die Ausgabe für alle drei Content Models wird in einem einzigen SPS definiert. Größere Flexibilität wäre gewährleistet worden, wenn diese Content Models  in separaten SPSs definiert worden wären. In diesem Fall könnten die Module einfacher wiederverwendet werden.

 

Die Beschreibung des Projekts ist in die folgenden Teile gegliedert:

 

die Schema-Dateien
die XML-Datenquellen
die SPS-Dateien

 

Die Schema-Dateien

Bei der Erstellung von Schemas für modulare SPSs muss unbedingt beachtet werden, dass die Elemente, die wiederverwendet werden sollen, als globale Elemente erstellt werden. Das Schema für das Adressbuch ist AddressBook.xsd. Dieses Schema wurde durch Import der Schemas für das Geschäftsadressbuch (BusinessAddressBook.xsd) und das persönliche Adressbuch (PersonalAddressBook.xsd) erstellt. Das Schema BusinessAddressBook.xsd enthält ein Content Model für Unternehmen. Das Schema PersonalAddressBook.xsd enthält ein Content Model für Personen. (siehe Abbildung unten)

 

TutMod_SchemasAddressBook

 

In beide Schemas wird das Schema ContactPoints.xsd importiert (siehe Abbildung unten), in dem ein Content Model für Adressdaten definiert ist.

 

TutMod_SchemasCoPers

 

Schließlich wird in das Schema ContactPoints.xsd (siehe Abbildung unten) das Schema Address.xsd inkludiert, in dem die drei Content Models für Adressarten definiert sind: EU, USA und andere Adressen.

 

TutMod_SchemasContactPts

 

Imports werden verwendet, wenn das importierte Schema zu einem anderen Namespace gehört als das importierende Schema. Includes werden verwendet, wenn das inkludierte Schema zum selben Namespace wie das inkludierenden Schema gehört.

 

Anmerkung:In den Abbildungen oben sehen Sie das Schema in der Schema-Ansicht von Altova XMLSpy.

 

Die XML-Datenquellen

Die XML-Daten sind in der Datei AddressBook.xml enthalten. Diese Datei ist so strukturiert, dass das Element AddressBook die Elemente companies und persons als Children enthält. Die Content Models dieser beiden Elemente sind in den Schemadateien BusinessAddressBook.xsd bzw. PersonalAddressBook.xsd definiert.

 

Zusätzlich gibt es für die beiden Schemas BusinessAddressBook.xsd und PersonalAddressBook.xsd die zwei XML-Dateien BusinessAddress.xml und PersonalAddress.xml, die als XML-Arbeitsdateien benutzt werden. Die XML-Arbeitsdatei für die entsprechenden SPS Module verwendet werden.

 

Die drei XML-Dateien sind die XML-Arbeitsdateien für die folgenden SPS Module:

 

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

 

Die SPS Module

Die Beschreibung der SPS Module beginnt mit dem einfachsten Modul (Address.sps) und wird schrittweise bis zum vollständigen Adressbuch fortgesetzt (AddressBook.sps). In allen SPS Modulen wird AddressBook.xsd als Schema verwendet.

 

Address.sps

Die wichtigsten zu beachtenden Punkte sind die Verwendung des Schemas und der XML-Arbeitsdatei.

 

Address.sps verwendet AddressBook.xsd als Schema. Genauso gut hätte aber auch Address.xsd, ContactPoints.xsd, BusinessAddressBook.xsd oder PersonalAddressBook.xsd verwendet werden können, da das Element Address in allen diesen Schemas vorhanden ist und als globales Element zur Verfügung steht. Wenn das SPS Modul zu einem anderen SPS Modul hinzugefügt wird, wird das Schema des importierten Moduls ignoriert. Es ist daher beim Hinzufügen des SPS als Modul nicht wichtig, welches verwendet wird.
Die XML-Arbeitsdatei ist AddressBook.xml. Beachten Sie, dass in der Hauptvorlage in Address.sps festgelegt ist, dass nur das Element Address verarbeitet werden soll und dass globale Vorlagen für Address-EU, Address-US und Address-Other definiert wurden.

 

TutMod_AddressSPSMainTemp

 

Da nur das Element Address verarbeitet wird, wird in den Ausgabevorschauen nur die Ausgabe von Address angezeigt. Wenn als Modul Address.sps verwendet wird, werden die globalen Vorlagen hinzugefügt und die Hauptvorlage wird ignoriert.

 

ContactPoints.sps

In dieses SPS wird ein Modul importiert. Beachten Sie die Verwendung von globalen Vorlagen in anderen globalen Vorlagen und der Hauptvorlage.

 

ContactPoints.sps verwendet AddressBook.xsd als Schema und AddressBook.xml als XML-Arbeitsdatei.
Address.sps wird als Modul hinzugefügt, sodass die globalen Vorlagen der Elemente Address-EU, Address-US und Address-Other zur Verfügung stehen.
Es sind globale Vorlagen für die Elemente ContactPoints und Email definiert. Beachten Sie, dass in der ContactPoints Definition die globale Vorlage von Email  verwendet wird (Abbildung unten).

 

TutMod_ContactPointsEmail

 

Die Hauptvorlage - die für die Vorschau benötigt wird - verwendet die globale Vorlage des Elements ContactPoints und ermöglicht dadurch die Vorschau auf die Ausgabe von ContactPoints.

 

BusinessAddressBook.sps und PersonalAddressBook.sps

Dieses SPS importieren jeweils ein Modul, das wiederum ein anderes importiert. Beachten Sie, dass die Hauptvorlage einfach globale Vorlagen anwendet.

 

Jedes dieser beiden Module verwendet AddressBook.xsd als Schema. Die XML-Arbeitsdateien sind BusinessAddressBook.xml bzw. PersonalAddressBook.xml.
ContactPoints.sps wird als Modul hinzugefügt, wodurch Address.sps indirekt importiert wird. Alle globalen Vorlagen in diesen beiden Modulen stehen im referenzierenden SPS Modul zur Verfügung.
In BusinessAddressBook.sps sind globale Vorlagen für die Elemente Companies und Company definiert. Beachten Sie, dass die Company Definition die globale Vorlage von ContactPoints verwendet.
In PersonalAddressBook.sps sind globale Vorlage für die Elemente Person und Persons definiert. Die Person Definition verwendet die globale Vorlage von ContactPoints.

 

AddressBook.sps

Für das Element Email gibt es zwei globale Vorlagen; jede davon kann aktiviert werden.

 

AddressBook.sps verwendet AddressBook.xsd als Schema. Die XML-Arbeitsdatei ist AddressBook.xml.
BusinessAddressBook.sps und PersonalAddressBook.sps werden als Module hinzugefügt, wodurch die Module ContactPoints.sps und Address.sps indirekt importiert werden.
Für das Element Email ist eine globale Vorlage definiert. Dies bedeutet, dass es nun zwei globale Vorlagen für Email gibt, eine in ContactPoints.sps und die andere in AddressBook.sps (siehe Abbildung unten).

 

TutMod_GlobalTempsEmail

 

In der Liste der globalen Vorlagen in der Design-Struktur (Abbildung oben) können Sie auswählen, welche der beiden globalen Vorlagen aktiv sein soll. Es kann immer nur eine davon aktiv sein. Die jeweils aktive Vorlage wird in der globalen Vorlage ContactPoints verwendet.
Die Hauptvorlage enthält einigen statischen Inhalt für die Überschriften in der Ausgabe.

 

 

 


© 2019 Altova GmbH