Redefinition XSD element

cedric774 Messages postés 21 Date d'inscription vendredi 14 mars 2008 Statut Membre Dernière intervention 2 octobre 2012 - 24 sept. 2012 à 15:02
cedric774 Messages postés 21 Date d'inscription vendredi 14 mars 2008 Statut Membre Dernière intervention 2 octobre 2012 - 2 oct. 2012 à 10:13
Bonjour,

Je suis actuellement entrain d'écrire plusieurs xsd pour une application java. J'ai plusieurs xsd (xsd spécifiques) correspondant à une fonctionnalité particulière différent seulement par la structure de l'xsd, j'ai un xsd générique qui contient les éléments communs à tous les xsd.

Maintenant, je voudrais redéfinir dans une de mes xsd un element avec une restriction qui ne s'applique qu'à un seul cas, d'où mon envie de le mettre dans l'xsd spécifique de la fonctionnalité.

Dans l'xsd global :

<xs:simpleType name="T_Message_Code">
<xs:restriction base="xs:int">
<xs:totalDigits value="3"/>
</xs:restriction>
</xs:simpleType>


Ce que je souhaiterais dans l'xsd spécifique :
<xs:redefine schemaLocation="monXSD2.xsd">
<xs:simpleType name="T_Message_Code">
<xs:restriction base="xs:int">
<xs:enumeration value="300"/>
</xs:restriction>
</xs:simpleType>
</xs:redefine>


Quelqu'un aurait une idée ?

Merci

1 réponse

cedric774 Messages postés 21 Date d'inscription vendredi 14 mars 2008 Statut Membre Dernière intervention 2 octobre 2012
2 oct. 2012 à 10:13
Après une nouvelle réflexion, quelques nouveaux tests, je reviens à la charge :

L'idée est d'avoir dans un xsd tous les elements xsd dont l'element suivant :

xsd : TestXSD_General.xsd


<xs:complexType name="Personne">
<xs:sequence>
<xs:element name="Nom" type="xs:string"/>
<xs:element name="Prenom" type="xs:string"/>
<xs:element name="AnneeNaiss" type="xs:int"/>
</xs:sequence>
</xs:complexType>




Dans un autre (qui contiendra tout le squelette de l'xsd), j'ai mon element principal (Document) qui fait appel grâce à xs:include à l'élément présent dans l'autre XSD.

<xs:include schemaLocation="TestXSD_General.xsd"/>
<xs:element name="Document">
<xs:complexType>
<xs:sequence>
<xs:element name="Personne" type="Personne"/>
</xs:sequence>
</xs:complexType>
</xs:element>



Jusque là, je n'ai pas de problème car cela fonctionne comme je veux.



Par contre, je voudrais ajouter une restriction à l'element (vu que l'xsd : TestXSD_General.xsd est utilisé par d'autres, je ne peux pas modifier l'element comme je l'aurais voulu. Je voudrais donc redéfinir / réutiliser / hériter (je ne sais pas quelle est la notion adéquate) l'element "Personne". Pour cela j'ai recréé l'element "Personne" auquel j'ai rajouté une restriction.


<xs:element name="Personne">
<xs:complexType>
<xs:sequence>
<xs:element name="Nom" type="xs:string"/>
<xs:element name="Prenom" type="xs:string"/>
<xs:element name="AnneeNaiss">
<xs:simpleType>
<xs:restriction base="xs:int">
<xs:totalDigits value="4"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>



Comment faire pour que je puisse faire appel à l'élément "Personne" contenant la restriction ?

Merci.
0
Rejoignez-nous