Schéma Xml pour la répétition de la séquence des éléments
J'ai xml comme suit
<Search>
<Term />
<And />
<Term />
<And />
<Term />
</Search>
Il peut y avoir un nombre n de Termes et n-1 Ands (n > 0) dans l'ordre indiqué. J'ai essayé le schéma xml ci-dessous mais au-dessus de xml serait pas validé par rapport au schéma.
Erreur: cvc-complexe-type.2.4.b: Le contenu de l'élément de la "Recherche" n'est pas complète. L'un des '{Et}' est prévu.
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
<xs:element name="Search">
<xs:complexType>
<xs:sequence>
<xs:sequence minOccurs="0" maxOccurs="unbounded">
<xs:element name="Term" type="xs:string" />
<xs:element name="And" type="xs:string" />
</xs:sequence>
<xs:element name="Term" minOccurs="1" maxOccurs="1" type="xs:string" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
D'apprécier l'aide avec le schéma xml.
Quel est le but de l' "Et" élément? Êtes-vous à l'utiliser comme un opérateur?
Oui, c'est un opérateur. Il existe plusieurs types d'opérateur ou, non, et etc. Mais je suis en train de travailler sur elle à l'aide de types abstraits.
Votre XSD n'est pas valide. Il viole la Particule Unique règle d'Attribution.
Je vois. Eclipse ne me dites pas XSD n'est pas valide. Je pourrais combiner les <> et <Et> comme un élément complexe, mais qui ne semble pas être une bonne solution pour moi.
Je suppose que la
Oui, c'est un opérateur. Il existe plusieurs types d'opérateur ou, non, et etc. Mais je suis en train de travailler sur elle à l'aide de types abstraits.
Votre XSD n'est pas valide. Il viole la Particule Unique règle d'Attribution.
Je vois. Eclipse ne me dites pas XSD n'est pas valide. Je pourrais combiner les <> et <Et> comme un élément complexe, mais qui ne semble pas être une bonne solution pour moi.
Je suppose que la
Term
élément ne permet d'obtenir quelques informations supplémentaires. Est le vrai même pour les And
élément? Si non, pourquoi inclure l'élément Et à tous dans le schéma? Si elle est implicite, alors vous n'en avez pas besoin. Si tous les termes qui sont présents dans le document Et ed ensemble, alors vous n'avez pas besoin de déclarer explicitement que dans le fichier xml lui-même.OriginalL'auteur bluetech | 2012-06-15
Vous devez vous connecter pour publier un commentaire.
Leur réorganisation, comme cela semble le faire. Ai-je raté quelque chose?
OriginalL'auteur user845279
La version révisée du modèle de contenu sera en effet de reconnaître la langue décrite.
Mais votre XML peut être un peu plus idiomatique, et serait presque certainement être plus facile à traiter, si vous avez pensé à le XML en termes de l'arbre de syntaxe abstraite que vous voulez, plutôt qu'en termes d'une transcription littérale d'une surface de syntaxe conçu pour les séquences de jetons plutôt que des arbres.
Au lieu d'utiliser un vide
And
élément entre les termes, enveloppez-la conjonction de termes dans unAnd
élément.Maintenant c'est trivial à faire arbitraire d'opérations Booléennes, sans avoir à vous soucier de ce que l'ordre de priorité à donner aux opérateurs:
OriginalL'auteur C. M. Sperberg-McQueen