HOPEX UML : HOPEX XML Schemas : Exemples de schémas XML complets : Exemple de schema XML : Personne
   
Exemple de schema XML : Personne
 
Schéma Personne
Diagramme Personne
Génération XSD Schéma Personne
Schéma Personne
Diagramme Personne
Ce diagramme illustre la notion de schéma en général (classe de stéréotype XML Document Definition Root), les modélisations des éléments XML par les associations et l'utilisation de classes abstraites (Adresse Personne).
Génération XSD Schéma Personne
<xsd:schema targetNamespace="Personne" xmlns="Personne" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:Alias1="urn:schemas-microsoft-com:datatypes" xmlns:Alias2="Librairie" xmlns:Alias3="Entreprise">
<xsd:import namespace="urn:schemas-microsoft-com:datatypes"/>
<xsd:import namespace="Librairie"/>
<xsd:import namespace="Entreprise" schemaLocation=""/>
<xsd:element name="Document" type="Document" minOccurs="1" maxOccurs="1">
</xsd:element>
<xsd:attribute name="Nom" type="xsd:language" use="required">
</xsd:attribute>
<xsd:attribute name="Prenom" type="xsd:language" use="required">
</xsd:attribute>
<xsd:simpleType name="USStateList">
<xsd:list base="USState">
</xsd:list>
</xsd:simpleType>
<xsd:simpleType name="USState">
<xsd:restriction base="xsd:language">
<xsd:enumeration value="PA"/>
<xsd:enumeration value="NY"/>
<xsd:enumeration value="CA"/>
<xsd:enumeration value="LA"/>
<xsd:enumeration value="AK"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="CodePostal">
<xsd:union memberTypes="xsd:int USState">
</xsd:union>
</xsd:simpleType>
<xsd:complexType name="Adresse" abstract="false" mixed="false">
<xsd:sequence>
<xsd:element name="Description" type="Alias2:Commentaire" minOccurs="1" maxOccurs="1">
</xsd:element>
</xsd:sequence>
<xsd:attribute name="id" use="required" type="xsd:ID"/>
<xsd:attribute name="Numeroderue" type="xsd:int" use="required">
</xsd:attribute>
<xsd:attribute name="CodePostal" type="CodePostal" use="required">
</xsd:attribute>
<xsd:attribute name="Ville" type="xsd:anyType" use="required">
</xsd:attribute>
<xsd:attribute name="Nomderue" type="xsd:anyType" use="required">
</xsd:attribute>
</xsd:complexType>
<xsd:complexType name="AdressePersonne" abstract="true" mixed="false">
<xsd:attribute name="id" use="required" type="xsd:ID"/>
</xsd:complexType>
<xsd:complexType name="Lieudetravail" abstract="false" mixed="false">
<xsd:complexContent mixed="false">
<xsd:extension base="AdressePersonne">
<xsd:attribute name="Entreprise" use="required" type="xsd:IDREF"/>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="Adressepersonnelle" abstract="false" mixed="false">
<xsd:complexContent mixed="false">
<xsd:extension base="AdressePersonne">
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="Document" abstract="false" mixed="false">
<xsd:sequence>
<xsd:element name="Entreprise" type="Alias3:Entreprise" minOccurs="0" maxOccurs="unbounded">
</xsd:element>
<xsd:element name="Personne" type="Personne" minOccurs="0" maxOccurs="unbounded">
<xsd:key name="IDPersonne">
<xsd:selector xpath="Document/Personne">
<xsd:field xpath="@Nom"/>
<xsd:field xpath="@Prénom"/>
</xsd:selector>
</xsd:key>
</xsd:element>
</xsd:sequence>
<xsd:attribute name="id" use="required" type="xsd:ID"/>
</xsd:complexType>
<xsd:complexType name="Personne" abstract="false" mixed="false">
<xsd:sequence>
<xsd:element name="AdressePersonne" type="AdressePersonne" minOccurs="1" maxOccurs="unbounded">
</xsd:element>
</xsd:sequence>
<xsd:attribute name="id" use="required" type="xsd:ID"/>
<xsd:attribute ref="Nom" use="required">
</xsd:attribute>
<xsd:attribute ref="Prenom" use="required">
</xsd:attribute>
</xsd:complexType>
</xsd:schema>