XML / XSD - 'Erweiterung' eines Elements hat immer undefined complexType

Ich bin versucht zu schreiben, ein XSD-Schema, das erstreckt sich ein ComplexType definiert ist, in ein Element.

Ich bin versucht, Notepad++ XMLTools-plugin, um das Problem zu beheben, aber ich bekomme immer "Unable to Parse-Schema-Datei." ohne Beschreibung des Fehlers, also ich habe mit dem Validator befindet sich hier, um mehr details zu erhalten:

http://www.xmlforasp.net/schemavalidator.aspx

Die Ausgabe die ich bekomme ist:

Status:
Undefined complexType 'http://test.org:BaseClass' wird verwendet, als Basis für einen komplexen Typ Erweiterung.

Ich habe versucht, entfernen die :namespace test im xs:schema tag, ich habe versucht, entfernen Sie den test: namespace-qualifier aus dem ref in ClassHierarchy, und ich habe versucht, indem Sie den namespace in der element-Definitionen, aber ich kann nicht das schema zur Gültigkeitsprüfung.

Jede Hilfe wäre sehr geschätzt werden! Dank

<?xml version="1.0" encoding="utf-8"?>
<xs:schema
    xmlns:test="http://test.org"
    targetNamespace="http://test.org"
    elementFormDefault="qualified"
    xmlns:xs="http://www.w3.org/2001/XMLSchema">

    <xs:element name="BaseClass">
        <xs:complexType>
            <!-- More referneces in here (Meaning this must be a complex type) but removed out to make a bit simpler -->
            <xs:attribute name="test_name" type="xs:string" use="required"/>
            <xs:attribute name="second_name" type="xs:string"/>
        </xs:complexType>
    </xs:element>

    <xs:element name="SubClass">
        <xs:complexType>
            <xs:complexContent>
                <xs:extension base="test:BaseClass">
                    <xs:attribute name="min_value" type="xs:float" default="0.0"/>
                    <xs:attribute name="max_value" type="xs:float" default="1.0"/>
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>
    </xs:element>


    <xs:element name="ClassHierarchy">
        <xs:complexType>
            <xs:sequence>
                <xs:choice minOccurs="0" maxOccurs="unbounded">
                    <xs:element ref="test:BaseClass" minOccurs="0" maxOccurs="unbounded"/>
                    <xs:element ref="test:SubClass" minOccurs="0" maxOccurs="unbounded"/>
                </xs:choice>
            </xs:sequence>
        </xs:complexType>
    </xs:element>
</xs:schema>

Die XML-Datei Enthält:

<?xml version="1.0"?>
    <ClassHierarchy
    xmlns="http://test.org"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://test.org Test.xsd">
        <BaseClass test_name="Test1" />
        <SubClass test_name="Test2" min_value="0.0" max_value="1.0" />
    </ClassHierarchy>
  • Habe ich deinen post xsd und get 'Fehlende Root-element' - was sonst noch notwendig ist, 'kompilieren' das?
  • Sorry, ich wusste nicht fügen Sie eine Beispiel-XML-Datei.
InformationsquelleAutor Mciccarone | 2012-04-11
Schreibe einen Kommentar