Pré. | Proc. |
XML à partir de modèles de classes abstraites
Vous pouvez modéliser des schémas XML en utilisant uniquement des modèles de classe simples et abstraits. Cela permet à un architecte, par exemple, de commencer à travailler à un niveau d'abstraction plus élevé sans se soucier des détails d'implémentation d'un schéma. Bien qu'un tel modèle abstrait puisse ensuite être affiné à l'aide des pages « Schéma XML » de la boîte à outils, il peut également être généré directement par le générateur de schéma d' Enterprise Architect , auquel cas le générateur de schéma applique un ensemble de mappages par défaut pour convertir le modèle abstrait en fichier XSD.
Exemple
Structure |
Détail |
---|---|
Diagramme |
Il s'agit d'une version simple de l'élément Class du modèle d'exemple Employee Details précédent. Il n'utilise pas de stéréotypes spécifiques à XSD ni Valeur Étiquetés .
|
Schéma |
Ce fragment de schéma peut être généré à partir du modèle d'exemple : <?xml version="1.0"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> <xs:simpleType name="Statut"> <xs:restriction base="xs: string "> <xs:enumeration value="Temps plein"/> <xs:enumeration value="Temps partiel"/> <xs:enumeration value="Décontracté"/> <xs:enumeration value="Contrat"/> </xs:restriction> </xs:simpleType> <xs:element name="Personne" type="Personne"/> <xs:complexType name="Personne"> <xs:séquence> <xs:élément nom="firstName" type="xs: string "/> <xs:élément nom="surnom" type="xs: string "/> <xs:élément nom="date de naissance" type="xs: string "/> <xs:element name="gender" type="xs: string "/> <xs:element name="contactDetails" type="ContactInfo"/> </xs:séquence> </xs:complexType> <xs:element name="Employé" type="Employé"/> <xs:complexType name="Employé"> <xs:complexContent> <xs:extension base="Personne"> <xs:séquence> <xs:élément nom="statut" type="Statut"/> <xs:élément nom="jobTitle" type="xs: string "/> <xs:élément nom="date de début" type="xs:date"/> <xs:élément nom="département" type="xs: string "/> </xs:séquence> </xs:extension> </xs:complexContent> </xs:complexType> <xs:element name="Enregistrements des employés" type="Enregistrements des employés"/> <xs:complexType name="Enregistrements des employés"> <xs:séquence> <xs:element name="Employé" type="Employé" minOccurs="0" maxOccurs="illimité"/> </xs:séquence> </xs:complexType> <xs:element name="ContactInfo" type="ContactInfo"/> <xs:complexType name="Informations de contact"> <xs:séquence> <xs:élément nom="homePhone" type="xs: string "/> <xs:élément nom="téléphonemobile" type="xs: string "/> <xs:élément nom="officePhone" type="xs: string "/> <xs:élément nom="email" type="xs: string "/> <xs:element name="streetAddress" type="xs: string "/> </xs:séquence> </xs:complexType> </xs:schema> |