Altova StyleVision 2025 Enterprise Edition

Exemple : Un Carnet d’adresse

Accueil Préc Haut Suivant

Le dossier (Mes) Documents, C:\Documents and Settings\<username>\My Documents\Altova\StyleVision2025\StyleVisionExamples\Tutorial\ModularSPS, contient des exemples de SPS modulaires. Ces exemples de fichiers dans ce dossier comprennent un projet dans lequel un carnet d’adresse contient des contacts professionnels et personnels est modularisé. Cet exemple ne démontre non seulement les mécanismes dans lequel la modularisation est mise en œuvre, mais illustre également les principales raisons pour lesquelles un serait modularisé.

 

Tout le carnet d’adresse est composé de deux modules : (i) un carnet d’adresse professionnel, et (ii) un carnet d’adresse personnel, dont chacun a un SPS séparé définissant différents designs. Les deux modules ensemble constituent le carnet d’adresse composite. La modularisation dans ce cas est utilisé pour composer : les modules sont les composants de l’unité plus élargie.

Bien que le modèle de contenu de chaque module (carnets d’adresses professionnels et personnels) diffère légèrement de l’autre, les deux ont un module commun, qui est le module ContactPoints, consistant en les détails de contact : adresse, téléphone, fax et e-mail. Le module ContactPoints peut, pour cette raison, être partagée entre les deux carnets d’adresse (professionnel et personnel). La modularisation dans ce cas permet à un seul module d’être utilisé comme unité commune à l’intérieur des autres multiples unités.

De plus, le module ContactPoints peut être modularisé pour fournir plus de flexibilité. Dans cet exemple de projet, nous avons créé un module d’adresse qui contient l’adresse postale pouvant contenir un des trois modèles de contenu, dépendant si l’adresse est dans l’UE, aux États-Unis d’Amérique ou ailleurs. La sortie de tous les trois modèles de contenu est définie dans un seul SPS. Toutefois, ils auraient pu être définis dans des SPS séparés, qui auraient fourni une granularité plus fine. Dans ce cas, la modularisation fournirait plus de flexibilité puisque les modules pourrait être réutilisés plus facilement.

 

La description de ce projet est organisée comme suit :

 

Les fichiers de schéma

Les sources de donnéss XML

Les fichiers SPS

 

Les fichiers de schéma

Lorsque vous créez des schémas pour les SPS modulaires, n’oubliez pas de créer les éléments que vous souhaitez réutiliser comme éléments globaux. Le schéma pour le carnet d’adresse est AddressBook.xsd. Ce schéma a été construit en important les schémas pour le carnet d’adresse professionnel (BusinessAddressBook.xsd) et le carnet d’adresse personnel (PersonalAddressBook.xsd). Le schéma BusinessAddressBook.xsd fournit un modèle de contenu pour les entreprises, tandis que le schéma PersonalAddressBook.xsd fournit un modèle de contenu pour les personnes (voir la capture d'écran ci-dessous).

 

TutMod_SchemasAddressBook

 

Les deux schémas importent le schéma ContactPoints.xsd (voir capture d’écran ci-dessous), qui définit un modèle de contenu pour les détails du contact.

 

TutMod_SchemasCoPers

 

Finalement, le schéma ContactPoints.xsd (capture d’écran ci-dessous) inclut le schéma Address.xsd, qui définit les trois modèles de contenu d’address-type : pour l’UE, les États-Unis d’Amérique, et d’autres adresses.

 

TutMod_SchemasContactPts

 

Les importations sont utilisées quand le schéma importé appartient à un espace de nom différent que le schéma importateur. Les Inclus sont utilisés quand le schéma inclus appartient au même espace de nom tel que le schéma inclus.

 

Note : Les captures d’écran ci-dessus sont celles du schéma dans le l’Aperçu de schéma de XMLSpy d’Altova.

 

Les sources de données XML

Les données XML sont contenues dans le fichier AddressBook.xml : Ce fichier est structuré pour que l’élément AddressBook contienne les éléments companies et persons comme ses enfants. Les modèles de contenu de ces deux éléments sont définis dans les fichiers de schéma, BusinessAddressBook.xsd et PersonalAddressBook.xsd, respectivement.

 

Il s’agit de deux fichiers de données XML supplémentaires, qui correspondent aux schémas BusinessAddressBook.xsd et PersonalAddressBook.xsd. Ces deux fichiers XML, BusinessAddressBook.xml et PersonalAddressBook.xml, sont utilisés comme fichiers de travail XML des fichiers SPS correspondants.

 

Les trois fichiers XML sont les fichiers de travail XML des modules SPS suivants :

 

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

BusinessAddressBook.xml  =>  BusinessAddressBook.sps

PersonalAddressBook.xml  =>  PersonalAddressBook.sps

 

Les modules SPS

La description des modules SPS commence par le module le plus basique (Address.sps) et les progrès dans des étapes progressives compositionnelles du carnet d’adresse entier (AddressBook.sps). Tous les modules SPS utilisent AddressBook.xsd comme leur schéma.

 

Address.sps

Les points clés à noter sont l’utilisation du schéma et du fichier de travail XML.

 

Address.sps utilise AddressBook.xsd comme son schéma, mais le schéma pourrait également avoir été Address.xsd, ContactPoints.xsd, BusinessAddressBook.xsd ou PersonalAddressBook.xsdpuisque l’élément Address est présent dans tous ces schémas et serait disponible comme élément global. Lorsque le module SPS est ajouté dans un autre module SPS, le schéma du module importé est ignoré, donc il n’est pas important lequel est utilisé quand SPS est ajouté comme module.

Le fichier de travail XML est AddressBook.xml. Notez que le modèle principal dans Address.sps spécifie que l’élément Address devrait être traité, et que les modèles globaux pour Address-EU, Address-US et Address-Other ont été définis.

 

TutMod_AddressSPSMainTemp

 

Car ce n’est que l’élément Address qui est traité, les aperçus de sortie affichent uniquement la sortie de Address. Quand Address.sps est utilisé comme module, les modèles globaux sont ajoutés et le modèle principal est ignoré.

 

ContactPoints.sps

Cet SPS importe un module. Notez l’utilisation de modèles globaux à l’intérieur d’autres modèles globaux et le modèle principal.

 

ContactPoints.sps utilise AddressBook.xsd comme son schéma et comme son fichier de travail XML AddressBook.xml .

Address.sps est ajouté comme module, rendant ainsi les modèles globaux des éléments Address-EU, Address-US et Address-Other disponibles.

Les modèles globaux pour les éléments ContactPoints et Email sont définis. Notez que la définition ContactPoints utilise le modèle global de Email (capture d’écran ci-dessous).

 

TutMod_ContactPointsEmail

 

Le modèle principalrequis pour les aperçusutilise le modèle global de l’élément ContactPoints, permettant ainsi des aperçus de la sortie ContactPoints.

 

BusinessAddressBook.sps et PersonalAddressBook.sps

Ces SPS importent chacun un module, qui, à son tour, en importe un autre. Notez que le modèle principal applique simplement des modèles globaux.

 

Chacun de ces deux modules utilise AddressBook.xsd comme son schéma. Les fichiers de travail XML sont, respectivement, BusinessAddressBook.xml et PersonalAddressBook.xml.

ContactPoints.sps est ajouté comme un module. Ceci fait que Address.sps est importé indirectement. Tous les modèles globaux dans ces deux modules sont disponibles au module SPS de référence.

Dans BusinessAddressBook.sps, les modèles globaux sont définis pour les éléments Companies et Company. Notez que la définition Company utilise le modèle global de ContactPoints.

Dans PersonalAddressBook.sps, les modèles globaux sont définis pour les éléments Person et Persons. La définition Person utilise le modèle global de ContactPoints.

 

AddressBook.sps

Il existe deux modèles globaux pour l’élément Email ; les deux peuvent être activés au choix.

 

AddressBook.sps utilise AddressBook.xsd comme son schéma. Le fichier de travail XML est AddressBook.xml.

BusinessAddressBook.sps et PersonalAddressBook.sps sont ajoutés comme modules, et ceci fait que ContactPoints.sps et Address.sps sont importés indirectement.

Un modèle global est défini pour l’élément Email. Ceci signifie qu’il existe désormais deux modèles globaux pour Email, un dans ContactPoints.sps et l’autre dans AddressBook.sps (voir la capture d’écran ci-dessous).

 

TutMod_GlobalTempsEmail

 

Dans la liste des modèles globaux dans l’Arborescence de design (capture d’écran ci-dessus), vous pouvez sélectionner lequel des deux modèles globaux doit être activé. StyleVision ne permet qu’un module à la fois. Celui qui est actif est utilisé à l’intérieur du modèle global ContactPoints.

Le modèle global contient du contenu statique pour l’en-tête de sortie.

 

© 2019-2025 Altova GmbH