[XML/XSD] Bête problème de syntaxe

Bête problème de syntaxe [XML/XSD] - XML/XSL - Programmation

Marsh Posté le 28-02-2005 à 11:33:51    

Bonjour,
Je doit d'abord préciser que j'y connai pas grand-chose en XML…
Mon problème est que je doit créer des types un peu particuliers : ils doivent être bornés et avoir une unité. J'ai d'abord pensé à les écrires de cette façon :
 
<xsd:simpleType name="type_Longitude">
   <xsd:restriction base="type_Decimal">
 <xsd:minInclusive value="-180"/>
 <xsd:maxInclusive value="180"/>
   </xsd:restriction>
   <xsd:attribute name="Unite" type="xsd:string" use="required"/>
</xsd:simpleType>
 
Le problème c'est que XMLSpy me dit que ce n'est pas valide.
 
J'ai alors pensé à une structure du type :
 
<xsd:simpleType name="type_Longitude2">
   <xsd:restriction base="type_Decimal">
 <xsd:minInclusive value="-180"/>
 <xsd:maxInclusive value="180"/>
   </xsd:restriction>
   <xsd:extension>
        <xsd:attribute name="Unite" type="xsd:string" use="required"/>
   </xsd:extension>
</xsd:simpleType>
 
Mais se n'est pas valide non plus. Il semblerait que je n'ai pas le droit de faire et une extension et un restriction dans un type simpleType.
Je me suis donc orienté vers un type complex :
 
<xsd:simpleType name="type_Decimal_-180_180">
 <!-- Pour Longitude -->
   <xsd:restriction base="type_Decimal">
 <xsd:minInclusive value="-180"/>
 <xsd:maxInclusive value="180"/>
   </xsd:restriction>
</xsd:simpleType>
<xsd:complexType name="type_Longitude">
   <xsd:all>
 <xsd:element name="Valeur" type="type_Decimal_-180_180"/>
 <xsd:element name="Unité" type="type_Dictionnary_Unite_Code" fixed="D"/>
  </xsd:all>
</xsd:complexType>
 
Qui a l'aire d'être valide. Oui, mais a-t-il un sens ?
Mon but étant de n'avoir qu'un type simple Longitude qui serrait à la fois borné et aurait une unité.
Y a-t-il d'autres solutions, et la mienne est-elle valable ?
Merci.

Reply

Marsh Posté le 28-02-2005 à 11:33:51   

Reply

Marsh Posté le 28-02-2005 à 11:36:20    

Déjà pour étendre un type, faudrait pas faire comme ça ?

Code :
  1. <xs:simpleType name="longitude2">
  2.   <xs:restriction base="xs:decimal">
  3.     [...]
  4.   </xs:restriction>
  5. </xs:simpleType>


Message édité par FlorentG le 28-02-2005 à 11:36:35
Reply

Marsh Posté le 28-02-2005 à 12:02:13    

C'est se que j'ai fait.  
J'ai oublier de preciser que se qui rand les code invalide c'est l'attribut. Il ne peu pas etre ni dans la restriction ni en dehors dans un simpleType :/ alors je sait pas ou le mettre...

Reply

Sujets relatifs:

Leave a Replay

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