Ich versuche, meine XML gegen eine XSD zu validieren, die in einer anderen XSD importiert wird.Nicht validieren gegen importierte XSD
haben Sie einen Blick auf den folgenden Code:
xml1.xml:
<e1 xmlns="n1"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="n2 main.xsd">
</e1>
xsd1.xsd:
<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
targetNamespace="n1"
elementFormDefault="qualified">
<xsd:element name="e1"/>
</xsd:schema>
main.xsd:
<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
targetNamespace="n2"
elementFormDefault="qualified">
<xsd:import namespace = "n1" schemaLocation = "xsd1.xsd"/>
</xsd:schema>
Validieren xml1.xml (in Netbeans mit XML-Tools oder in Java) einfach wirft:
cvc-elt.1: Cannot find the declaration of element 'e1'. [3]
Was könnte das Problem sein?
Vielen Dank! BTW Ich erwartete, dass, weil ich das xsd1-Schema in das Hauptschema importierte, es genug ist, nur auf das Haupt zu verweisen, da es den importierten Namespace enthält. Ich beginne zu erkennen, dass es auf diese Weise nicht funktioniert, aber ich muss den importierten Namespace an ein Präfix binden und im Hauptschema verwenden. Außerdem bin ich mir sicher, dass deine Antwort gut war, nochmals vielen Dank! – user1856926