Nicht finden kann die Deklaration des Elementes 'Zuordnungen'
So, ich bin Anfang mit XML und Schemata, und ich rannte über heute und ich habe nicht in der Lage, um es herauszufinden.
Ich bin immer und Fehler, der sagt,
Ln 5 Col 2 : kann Nicht finden die
declaration of element 'Zuordnungen'.
Ich glaube, ich habe erklärt das element, aber vielleicht bin ich etwas fehlt und nicht haben.
Dies ist meine XML-Datei:
<?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>
Dies ist meine Schema-Datei:
<?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>
So, ich bin immer noch lernen, fühlen Sie sich frei-zu-Punkt, alle anderen Fehler, die ich gemacht haben, nicht auf das problem beziehen.
Dank
Levi'
Sie sollten nicht zuweisen, w3.org/2001/XMLSchema-instance als Standard-Namensraum, weil es dann als namespace für alle Elemente in Ihrer XML-deren Namensraum nicht explizit angegeben wurden. Weisen Sie w3.org/2001/XMLSchema-instance es zu einem anderen namespace, wie die Häufig verwendete xmlns:xsi.
Wenn ich es einrichten, wie muss ich geben Sie ein element-Typ wie dieser: type="xsi:string"?
Ja. Durch die Art und Weise, in der XSD-schema - in der Regel-xs verwendet, und xsi in den XML-Dateien.
Wenn ich es einrichten, wie muss ich geben Sie ein element-Typ wie dieser: type="xsi:string"?
Ja. Durch die Art und Weise, in der XSD-schema - in der Regel-xs verwendet, und xsi in den XML-Dateien.
InformationsquelleAutor Levi | 2009-09-19
Du musst angemeldet sein, um einen Kommentar abzugeben.
Die Lösung für dieses problem war, dass ich nicht deklarieren, mein Haupt-element 'Zuordnungen' als Komplexes element, ich war eigentlich nicht die Deklaration als überhaupt nichts.
So, indem Sie diese Zeile aus meinem schema-Datei:
und ändern Sie es in:
Element wurde sorgfältig definiert, danke für die Hilfe alle.
Levi'
InformationsquelleAutor Levi
Versuchen Sie die folgenden. Ich nahm etwas von den zusätzlichen details, die Elemente des schema-Elements, aber mit ein wenig Feintuning etwas, das wie folgt funktionieren sollte:
Hinweise:
TypeAssignments
zuassignmentInfo
.xs
Alles in allem, ich nicht alle ändern, dass viel, so dass Sie haben die richtige Idee.
Leider müssen Sie das Präfix des elements mit xs, da die Typen (z.B. string, element, enumeration, etc.) sind definiert als Teil des separaten schema.
Was ist, wenn an der Spitze des Schemas erkläre ich anstatt <xs:schema xlmns:xs...> sagen Sie einfach nur <schema xmlns:...> dann wird, werden die Standard-schema für die Seite? Für meine anderen Elementen würde ich angeben, dass ein anderes schema in der Eröffnung <schema> - tag wie folgt : xmlns:target="levijackson.net/web340/ns" targetNamespace="levijackson.net/web340/ns" elementFormDefault="qualified" und dann Ziel:assignmentInfo und so weiter für die Werte der attribute, die ich erstellt.
Ich versuchte dies, indem Sie die den top level xmlns:xs="..." - Attribut xmlns="..." Es scheint zu funktionieren, aber es wird chaotisch, wenn Sie unter Bezugnahme auf Ihre target-namespace.
InformationsquelleAutor David Andres
In die Instanz-Dokument als Auszug oben, definieren Sie die
xmlns
- Attribut auf die<assignments>
element, und nicht anderswo definieren einen Namensraum. Dies bedeutet, dass der Namensraum von<assignments>
und alle seine Nachkommen auf "http://www.w3.org/2001/XMLSchema-instance".Ihre schema-Dokument, jedoch gibt eine
targetNamespace
Wert "http://www.levijackson.net/web340/ns". Da die Elemente in Ihrem Dokument nicht in diesem namespace, die Validierung fehlschlägt.Starten, indem Sie Ihre Instanz-Dokument wie folgt Aussehen:
InformationsquelleAutor kdgregory