Quelle est la syntaxe pour définir la maxLength facettes Schéma XML?
Je suis en train de valider un schéma XML avec plusieurs outils, mais je ne suis pas un message cohérent, selon l'outil que j'utilise. La syntaxe suivante semble être la question:
<xs:element name="Name"
minOccurs="1"
type ="xs:string"
maxLength = "125"/>
XML-Spy déclenche une erreur alors que Notepad ++ (windows) et XML Copy Editor (Ubuntu) valider. Donc, c'est que la syntaxe correcte, ou dois-je l'utiliser:
<xs:element name="name">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:minOccurs="1"/>
<xs:maxLength = "125"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
J'aime Notepad++, mais c'est le mauvais outil pour ce travail. Mon préféré est l'oxygène.
OriginalL'auteur magdmartin | 2013-02-19
Vous devez vous connecter pour publier un commentaire.
Vous demandez "est Donc mon syntaxe correcte [exemple 1] ou devrais-je écrire [exemple 2]?"
Ni.
Dans votre premier exemple, vous utilisez le non déclarées attribut maxLength sur votre xs:element élément. (L'attribut minOccurs peut ou peut ne pas être autorisé, selon le contexte; Petru Gardea l'a déjà souligné, il n'est pas légal sur l'élément de niveau supérieur déclarations.) Les éditeurs qui ne soulèvent pas d'erreurs sur ce ne sont pas de faire un plein travail de vérification de la conformité au schéma XSD pour les schémas (sans parler de la pleine contraintes de XSD). Si vous souhaitez fiable de la validation de schéma XSD documents, Xerces, Saxon, MSV, ou de quelque autre conforme XSD mise en œuvre est votre ami.
Dans votre deuxième exemple, minOccurs a cessé d'être un attribut sur un élément de la déclaration (qui peut être dans certains contextes) et devenir un élément (non, mauvais) à l'intérieur xs:restriction (non, mauvais). Le maxLength facette est correctement représenté comme un élément enfant xs:restriction, mais l'élément dans votre exemple n'est pas bien formé, il semble être en essayant d'utiliser le type de l'élément nom comme un nom d'attribut. Si vous supprimez l'erreur de minOccurs élément et de corriger le mal formé maxLength élément, le reste est syntaxiquement correct de haut niveau de la déclaration de l'élément pour Nom:
OriginalL'auteur C. M. Sperberg-McQueen
C'est ce que la syntaxe pourrait ressembler à:
1
est la valeur par défaut, de sorte que vous ne devriez pas avoir à le spécifier.Cela signifie simplement que ces outils font un mauvais travail à traiter avec XSDs.
OriginalL'auteur Petru Gardea