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.