Impossible de trouver la déclaration de l'élément "affectations'
Donc je commence avec le XML et les Schémas et j'ai couru à travers de cela aujourd'hui et je n'ai pas été en mesure de le comprendre.
Je suis arriver et d'erreur qui dit,
Ln 5 Col 2 : Impossible de trouver le
déclaration de l'élément "affectations'.
Je crois que je l'ai déclaré à l'élément, mais peut-être que je suis absent quelque chose et ne l'ont pas.
C'est mon fichier XML:
<?xml version="1.0" encoding="UTF-8"?>
<assignments
xmlns="http://www.w3.org/2001/XMLSchema-instance"
SchemaLocation="A3.xsd"
>
<assignment id="a1">
<name>Schemas</name>
<page>110</page>
</assignment>
<assignment id="a2">
<name>Namespaces</name>
<page>258</page>
<files>names.xml</files>
<files>names.dtd</files>
</assignment>
<assignment id="a3">
<name>RELAX NG</name>
<page>305</page>
<files>account.xml</files>
<files>customers.xml</files>
<files>finance.xsd</files>
</assignment>
</assignments>
C'est mon fichier de Schéma:
<?xml version="1.0" encoding="UTF-8"?>
<schema
xmlns="http://www.w3.org/2001/XMLSchema"
xmlns:target="http://www.levijackson.net/web340/ns"
targetNamespace="http://www.levijackson.net/web340/ns" elementFormDefault="qualified"
>
<element name="assignments" type="target:TypeAssignments"></element>
<complexType name="TypeAssignments">
<sequence>
<element name="assignment" type="target:assignmentInfo"></element>
</sequence>
<attribute name="id" type="string" use="required"/>
</complexType>
<complexType name="assignmentInfo">
<sequence>
<element name="name" type="string"></element>
<element name="page" type="target:TypePage"></element>
<element name="file" type="target:TypeFile" minOccurs="0" maxOccurs="unbounded"></element>
</sequence>
</complexType>
<simpleType name="TypePage">
<restriction base="integer">
<minInclusive value="50" />
<maxInclusive value="498" />
</restriction>
</simpleType>
<simpleType name="TypeFile">
<restriction base="string">
<enumeration value=".xml" />
<enumeration value=".dtd" />
<enumeration value=".xsd" />
</restriction>
</simpleType>
</schema>
Que je suis toujours en apprentissage, n'hésitez pas à signaler toute erreur que j'aurais pu faire pas lié au problème.
Grâce
Levi
Vous ne devriez pas attribuer w3.org/2001/XMLSchema-instance comme votre espace de noms par défaut, parce qu'alors il est considéré comme l'espace de noms pour tous les éléments dans votre XML dont l'espace de noms n'a pas été explicitement spécifié. Attribuer w3.org/2001/XMLSchema-instance pour un espace de noms différent, comme couramment utilisés xmlns:xsi.
Si je l'ai mis comme ça, ai-je besoin de spécifier un type d'élément comme ceci: type="xsi:string"?
Oui. Par la façon dont, dans le schéma XSD est généralement xs est utilisé, et xsi dans les fichiers XML.
Si je l'ai mis comme ça, ai-je besoin de spécifier un type d'élément comme ceci: type="xsi:string"?
Oui. Par la façon dont, dans le schéma XSD est généralement xs est utilisé, et xsi dans les fichiers XML.
OriginalL'auteur Levi | 2009-09-19
Vous devez vous connecter pour publier un commentaire.
La solution à ce problème était que je n'étais pas déclarer mon principal élément "affectations" comme un élément complexe, en fait, je n'étais pas déclarer quoi que ce soit.
Donc en prenant cette ligne de mon fichier de schéma:
et l'évolution dans ce:
L'élément a été correctement défini, merci pour l'aide tout le monde.
Levi
OriginalL'auteur Levi
Essayez les solutions suivantes. J'ai pris une partie de l'détails de l'élément de schéma, mais avec un peu de peaufinage quelque chose comme la suivante devrait fonctionner:
Notes:
TypeAssignments
àassignmentInfo
.xs
Dans l'ensemble, je n'ai pas de modifier tout ce que beaucoup de sorte que vous avez la bonne idée.
Malheureusement, vous avez besoin de préfixer les éléments xs parce que les types (p. ex., chaîne, élément de l'énumération, etc.) sont définies dans le cadre du schéma distinct.
Que si, au haut du schéma que je déclarer plutôt que <xs:schema xlmns:xs...> il suffit de dire <schema xmlns:...> alors que par défaut, le schéma de la page? Pour mes autres éléments, je voudrais préciser un autre schéma de l'ouverture <schéma> tag ainsi : xmlns:target="levijackson.net/web340/ns" targetNamespace="levijackson.net/web340/ns" elementFormDefault="qualified" et ensuite utiliser l'objectif:assignmentInfo et ainsi de suite pour les valeurs d'attribut que j'ai créé.
J'ai essayé ce, par la mise en au haut niveau xmlns:xs="..." de l'attribut xmlns="..." Il semble fonctionner, mais il va être gênant lorsque l'on se réfère à votre espace de noms cible.
OriginalL'auteur David Andres
Dans votre document d'instance, dans l'extrait ci-dessus, vous pouvez définir le
xmlns
attribut sur la<assignments>
élément, et ne pas ailleurs définir un espace de noms. Cela signifie que l'espace de noms de<assignments>
et tous ses descendants est réglé sur "http://www.w3.org/2001/XMLSchema-instance".Votre document de schéma, cependant, indique un
targetNamespace
valeur de "http://www.levijackson.net/web340/ns". Depuis les éléments de votre document d'instance ne dispose pas de cet espace de noms, la validation échoue.Commencez par changer votre document d'instance pour ressembler à ceci:
OriginalL'auteur kdgregory