webentwicklung-frage-antwort-db.com.de

xML-Schema-Validierungsfehler "Präfix ist nicht gebunden"

Ich bin völlig neu in XML Schema und versuche, die Grundlagen zu verbessern. Hier ist mein XML-Schema-Code (Dateiname: example1.xsd):

<?xml version="1.0"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:sample="http://www.example" 
targetNamespace="http://www.example.com" 
elementFormDefault="qualified">

<xs:element name="school">
  <xs:complexType>
    <xs:sequence>
      <xs:element name="element1" type="xs:string"/>
      <xs:element name="element2" type="xs:string"/>
      <xs:element name="element3" type="xs:string"/>
      <xs:element name="element4" type="xs:string"/>
    </xs:sequence>
  </xs:complexType>
</xs:element>

</xs:schema> 

Hier ist das XML-Dokument.

<?xml version="1.0" encoding="UTF-8"?>

<sample:school xmlns="http://www.example.com"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="./example1.xsd">

      <element1>hello</element1>
      <element2>hello</element2>
      <element3>hello</element3>
      <element4>hello</element4>

</sample:school>

Beim Versuch, die XML-Datei zu überprüfen, erhalte ich eine Fehlermeldung von netbeans, die besagt: Das Präfix "sample" für das Element "sample: school" ist nicht gebunden. [9] 

15
iggy2012

In Ihrem XML müssen Sie entweder: 

EIN. Entferne das sample:-Präfix von sample:school 

oder 

B. Ändern Sie xmlns="http://www.example.com" in xmlns:sample="http://www.example.com" und fügen Sie den Rest der Elemente (sample:, <sample:element1> usw.) das Präfix <sample:element2> hinzu.

17
Daniel Haley

Wenn Sie eine solche Fehlermeldung erhalten, können Sie am besten die Präfixdeklaration hinzufügen. Fügen Sie in Ihrem Fall gemäß dem Schema einfach das folgende Attribut zu Ihrem Stammelement hinzu:

xmlns:sample="http://www.example.com"

Dies steht auch in Zusammenhang mit XML-Namespaces .

12
Petru Gardea

Es ist keine direkte Antwort auf Ihre Frage, aber ich bin hier gestolpert, als ich versuchte, mein eigenes Problem zu lösen. Vielleicht hilft es auch jemandem.

Mein eigener Fehler "Das Präfix ns2 ist nicht gebunden" wurde nach einem Upgrade von Weblogic 10.3.6 auf 12.2.1.2 angezeigt.

In der höheren Version ist die JAXB-Implementierung Moxy. Daher musste ich javax.xml.bind.JAXBContext in com.Sun.xml.bind.v2.ContextFactory ändern.

So legen Sie die JAXBContext-Implementierung in Weblogic 12.1.3 fest

0
Artemis