[XSD] element et attribut ?
Bonjour,
je n'arrive pas à valider mon XML comme j'ai envie et j'aimerai savoir si ce que j'ai fait est possible.
mon xml
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| <?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet href="Exercice_2.xsl" type="text/xsl"?>
<organigramme xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="Exercice_2.xsd">
<service>
<nom_service couleur="red">Direction</nom_service>
<range>1</range>
<longueur>20</longueur>
<poste>
<nom_poste>PDG</nom_poste>
<nom>Monsieur Edmond VAZILLE</nom>
<age>59</age>
<formation>Math Elem (BAC+4)</formation>
<anciennete>21</anciennete>
</poste>
<poste>
<nom_poste>Secretaire</nom_poste>
<nom>Madame Lucienne JULIOU</nom>
<age>47</age>
<formation>CAP sténo/dactylo(CAP)</formation>
<anciennete>21</anciennete>
</poste>
</service>
</organigramme> |
mon XML schéma
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
| <?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
<xs:element name="organigramme" >
<xs:complexType>
<xs:sequence>
<xs:element ref="service" minOccurs="1" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="service" >
<xs:complexType>
<xs:sequence>
<xs:element name="nom_service" type="xs:string" minOccurs="1" maxOccurs="1">
<xs:complexType>
<xs:attribute name="couleur" type="xs:string" use="required"/>
</xs:complexType>
</xs:element>
<xs:element name="range" type="xs:integer" minOccurs="1" maxOccurs="1"/>
<xs:element name="longueur" type="xs:integer" minOccurs="1" maxOccurs="1"/>
<xs:element ref="poste" minOccurs="1" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="poste" >
<xs:complexType>
<xs:sequence>
<xs:element name="nom_poste" type="xs:string" minOccurs="1" maxOccurs="1"/>
<xs:element name="nom" type="xs:string" minOccurs="1" maxOccurs="1"/>
<xs:element name="age" type="xs:integer" minOccurs="1" maxOccurs="1"/>
<xs:element name="formation" type="xs:string" minOccurs="1" maxOccurs="1"/>
<xs:element name="anciennete" type="xs:integer" minOccurs="1" maxOccurs="1"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema> |
donc mon problème vient de l'élément nom_service : est ce qu'il est possible de donner un type à l'élément et un attribut ou bien faut il faire un choix pour valider le XML?
après quelques tests j'arrive à valider soit l'élément soit l'attribut mais je souhaiterai valider les deux.
Merci d'avance pour vos commentaires