XSD - autorise le type d'élément comme entier OU vide
J'ai besoin d'être en mesure de définir un simple type d'élément comme un entier, mais permettre d'être vide. Cet exemple envoie un message d'erreur si son vide et un champ vide n'est pas un entier. Comment puis-je obtenir autour de cette?
<xsd:element name="weight" type="xsd:integer"/>
source d'informationauteur leanne
Vous devez vous connecter pour publier un commentaire.
Ce que vous avez à faire est d'attribuer des restrictions sur le même élément de plus faire une union sur eux comme dans l'exemple suivant:
À l'aide de cette restriction, vous dites à la validation xml pour permettre à n'importe quelle valeur entière et en permettant à l'élément s'il est vide.
Nous pouvons atteindre cet objectif en faisant un SimpleType
Ajouter NullOrInteger que le type où vous voulez restriction pour un entier ou une valeur null.
par exemple:
Vous devez définir le "nillable" attribut comme vrai:
Voir le Schéma XML de l'Apprêt.
Essayer ci-dessus, devrait fonctionner; le plus probable que vous avez oublié d'ajouter l'attribut xsi:nil. Aussi, assurez-vous que le poids de l'élément n'a pas de caractère que les enfants (un espace blanc ne serait pas acceptable). Si vous n'avez pas à passer quelques caractères au lieu d'un entier, que vous devez définir un type d'union afin de permettre à la fois.
Je suis venu jusqu'à cette réponse en cherchant comment obtenir un attribut à un nullable Entier, à l'aide de schéma xsd, et sur la base duquel JAXB classes sont générées. Je n'ai pas trouvé de réponse ici, donc après j'ai découvert la réponse, j'ai décidé de le partager. La suite xsd partie va générer un pas de type nullable de int (int):
Dans du code Java ce résultat:
Si on laisse tomber l'utilisation requise, nous aurons:
Espère que cela aide quelqu'un. Et même si cette réponse peut ne pas être liées à la question, je trouve qu'il est utile d'être ici pour ceux qui vont arriver en faisant la même recherche que j'ai fait!