Syntaxe XSD spécifique

Syntaxe XSD spécifique - XML/XSL - Programmation

Marsh Posté le 10-07-2006 à 16:02:55    

Bonjour,
 
Je suis en train de créer un XSD pour valider un flux XML..  
J'ai un problèlme dans la rédaction de mon XSD.. Il y'a un  
cas que je n'arrive pas à spécifier :
 

Code :
  1. <tutu attrib="blabla">oui</tutu>


 
Donc tutu est un élément possèdant un attribut attrib (qui dans certain cas n'a pas de restriction et dans l'autre en a).. Par contre l'element tutu ne peut avoir que les valeurs 'oui' ou 'non'...
Soit en DTD :
 

Code :
  1. <!ELEMENT tutu (oui|non)>
  2. <!ATTLIST tutu attrib #PCDATA #REQUIRED>


 
ou bien :  
 

Code :
  1. <!ELEMENT tutu (oui|non)>
  2. <!ATTLIST tutu attrib (1|0) #REQUIRED>


 
Comment puis je traduire cela dans mon schéma XSD ??  
Merci !
 

Reply

Marsh Posté le 10-07-2006 à 16:02:55   

Reply

Marsh Posté le 10-07-2006 à 16:58:00    

Personne ?

Reply

Marsh Posté le 11-07-2006 à 09:32:34    

Yup ! :whistle:

Reply

Marsh Posté le 11-07-2006 à 10:30:38    

Vite fait je verrais un truc du genre

<simpleType name="boolStringType">
  <restriction base="string">
    <enumeration value="oui" />
    <enumeration value="non" />
  </restriction>
</simpleType>
 
<element name="tutu" type="boolStringType">
  <complexType>
    <attribute name="attrib" type="string" />
  </complexType>
</element>


 
edit: oups j'avais pas vu le « attrib (1|0) #REQUIRED » je vais adapter


Message édité par tegu le 11-07-2006 à 10:32:29
Reply

Marsh Posté le 11-07-2006 à 10:37:13    

Ça devrait mieux correspondre à toutes les régles que tu as précisées, mais je ne suis pas un expert en XSD.

<xsd:simpleType name="boolStringType">
  <xsd:restriction base="xsd:string">
    <xsd:enumeration value="oui" />
    <xsd:enumeration value="non" />
  </xsd:restriction>
</xsd:simpleType>
 
<xsd:simpleType name="boolType">
  <xsd:restriction base="xsd:integer">
    <xsd:enumeration value="0" />
    <xsd:enumeration value="1" />
  </xsd:restriction>
</xsd:simpleType>
 
<xsd:element name="tutu" type="boolStringType">
  <xsd:complexType>
    <xsd:attribute name="attrib" type="booType" use="required" />
  </xsd:complexType>
</xsd:element>
 


Message édité par tegu le 11-07-2006 à 10:38:13
Reply

Marsh Posté le 11-07-2006 à 11:20:41    

Oki merci ! Je vais tester ca...

Reply

Marsh Posté le 11-07-2006 à 13:09:04    

Dans mon deuxième exemple j'utilise le préfixe xsd: parceque j'ai l'habitude de travailler comme ça, mais tu dois pouvoir t'en passer comme dans mon 1e exemple

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed