Pré. | Proc. |
XML à partir de modèles de classe abstraits
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. Alors qu'un tel modèle abstrait peut 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 dans un fichier XSD.
Exemple
Structure |
Détail |
---|---|
Diagramme |
Il s'agit d'une version simple de l'élément Class de l'exemple de modèle Détails de l'employé 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 de l'exemple de modèle : <?xml version="1.0"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> <xs:simpleType name="Status"> <xs:restriction base="xs: string "> <xs:enumeration value="Temps plein"/> <xs:enumeration value="Part-Time"/> <xs:enumeration value="Casual"/> <xs:enumeration value="Contrat"/> </xs:restriction> </xs:simpleType> <xs:element name="Personne" type="Personne"/> <xs:complexType name="Personne"> <xs:séquence> <xs:element name="firstName" type="xs: string "/> <xs:element name="surName" type="xs: string "/> <xs:element name="birthDate" type="xs: string "/> <xs:element name="sexe" type="xs: string "/> <xs:element name="contactDetails" type="ContactInfo"/> </xs:séquence> </xs:complexType> <xs:element name="Employee" type="Employee"/> <xs:complexType name="Employee"> <xs:complexContent> <xs:extension base="Personne"> <xs:séquence> <xs:element name="status" type="Status"/> <xs:element name="jobTitle" type="xs: string "/> <xs:element name="startDate" type="xs:date"/> <xs:element name="department" type="xs: string "/> </xs:séquence> </xs:extension> </xs:complexContent> </xs:complexType> <xs:element name="EmployeeRecords" type="EmployeeRecords"/> <xs:complexType name="EmployeeRecords"> <xs:séquence> <xs:element name="Employee" type="Employee" minOccurs="0" maxOccurs="unbounded"/> </xs:séquence> </xs:complexType> <xs:element name="ContactInfo" type="ContactInfo"/> <xs:complexType name="ContactInfo"> <xs:séquence> <xs:element name="homePhone" type="xs: string "/> <xs:element name="mobilePhone" type="xs: string "/> <xs:element name="officePhone" type="xs: string "/> <xs:element name="email" type="xs: string "/> <xs:element name="streetAddress" type="xs: string "/> </xs:séquence> </xs:complexType> </xs:schema> |