namescpaces

This site uses cookies. By continuing to browse this site, you are agreeing to our Cookie Policy.

  • namescpaces

    hallo zusammen,

    ich hänge schon den ganzen tag an einem problem. vielleicht könnt ihr mir helfen. Meine Instanz ist nicht valide.

    Das Schema:

    <?xml version="1.0" encoding="UTF-8"?>
    <xsd:schema
    xmlns:xsd="http://www.w3.org/2001/XMLSchema"
    xmlns="http://www.test.de"
    xmlns:tst="http://www.test.de"
    targetNamespace="http://www.test.de">

    <xsd:element name="romane">
    <xsd:complexType>
    <xsd:choice>
    <xsd:element ref="autor1"/>
    </xsd:choice>
    </xsd:complexType>
    </xsd:element>

    <xsd:element name="autor1">
    <xsd:complexType>
    <xsd:choice>
    <xsd:element ref="werk1"/>
    </xsd:choice>
    </xsd:complexType>
    </xsd:element>

    <xsd:element name="werk1" type="buch"/>

    <xsd:complexType name="buch">
    <xsd:sequence>
    <xsd:element name="autor" type="xsd:string"/>
    <xsd:element name="titel" type="xsd:string"/>
    </xsd:sequence>
    </xsd:complexType>
    </xsd:schema>


    Die Instanz:

    <?xml version="1.0" encoding="ISO-8859-1" standalone="no"?>

    <romane
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.test.de test4.xsd"
    xmlns="http://www.test.de"
    xmlns:tst="http://www.test.de">

    <autor1>
    <werk1>
    <autor> Franz Kafka </autor>
    <titel> Die Verwandlung </titel>
    </werk1>
    </autor1>
    </romane>


    Irgednwas scheint mit dem namensraum nicht zu stimmen. Die XML-Spy Fehlermeldung lautet:

    "File l is not valid.
    Element <autor> is not allowed under element <werk1>.
    Reason: The following elements are expected at this location (see below)
    <autor>
    Error location: romane / autor1 / werk1 / autor
    Details
    cvc-model-group: Element <autor> unexpected by type 'tst:buch' of element <werk1>.
    cvc-elt.5.2.1: The element <werk1> is not valid with respect to the actual type definition 'tst:buch'."

    Kann mir jemand erkären wieso?

    Vielen Dank!
  • falls es jemanden interessiert. das problem ist, dass nur globale elemente etc. einem namensraum zugehörig sind. wenn in der instanz ein standardnamensraum angegeben wird und im schema lokale elemente keinem namensraum zugehören, ist die instanz nicht valide