[XSD] faire un complexType
Bonjour,
je dispose d'un schéma XSD pour valider mes fichiers xml, mais je dois le modifier.
Volà la partie que je dois modifier:
Code:
1 2 3 4 5 6 7 8 9
| <xs:element name="customInteger">
<xs:complexType>
<xs:sequence>
<xs:element name="bitLength" type="xs:long"/>
<xs:group ref="range"/>
<xs:element name="noStatement" type="xs:long" minOccurs="0" maxOccurs="1"/>
</xs:sequence>
</xs:complexType>
</xs:element> |
Grâce à ce type, je peux valider des portions xml du type (mon range correspond aux baslises min et maxValue):
Code:
1 2 3 4 5 6
| <customInteger>
<bitLength>13</bitLength>
<minValue>1</minValue>
<maxValue>204775</maxValue>
<noStatement>0</noStatement>
</customInteger> |
Je voudrais modifier ce type pour valider des portions xml du type:
Code:
1 2 3 4 5 6 7 8 9 10 11
| <customInteger>
<bitLength>13</bitLength>
<minValue>1</minValue>
<maxValue>204775</maxValue>
<noStatement>0</noStatement>
<noStatement>1</noStatement>
<noStatement>
<minValue>-180</minValue>
<maxValue>180</maxValue>
</noStatement>
</customInteger> |
Pour cela , j'ai modifié mon XSD de la sorte:
Code:
1 2 3 4 5 6 7 8 9
| <xs:element name="customInteger">
<xs:complexType>
<xs:sequence>
<xs:element name="bitLength" type="xs:long"/>
<xs:group ref="range"/>
<xs:element name="noStatement" type="NoStatementType" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element> |
avec mon type NoStatementType:
Code:
1 2 3 4 5 6
| <xs:complexType name="NoStatementType">
<xs:choice>
<xs:group ref="range"/>
<xs:element name="noStatement" type="xs:long"/>
</xs:choice>
</xs:complexType> |
Tout marche bien pour le range, mais fait comme çà, si je veux juste mettre un long, il faut que j'imbrique 2 balises noStatement tel que:
Code:
1 2 3 4 5 6
| <customInteger>
<bitLength>13</bitLength>
<minValue>1</minValue>
<maxValue>204775</maxValue>
<noStatement><noStatement>0</noStatement></noStatement>
</customInteger> |
Pourriez vous m'aider à construire mon type NoStatementType?
Si je me suis mal exprimé, n'hésitez pas à me demander des précisions.
Merci d'avance de vos réponses.
Nico