Frage

Wie erwarte ich, dass ein Element einen Namespace mit XSD hat? Zu diesem Zeitpunkt erhalte ich einen Fehler, der sagt: "Ungültiger Inhalt wurde gefunden, beginnend mit Element 'NS: Person'. Einer von '{" ": Person}' wird erwartet."

Wie Sie sehen können, definiere ich das name Attribut auf der xs:element: "Person". Wenn ich "NS: Person" als die definiere name Dann erhalte ich einen Fehler, dass der Name ungültig ist aaarghh.

Was vermisse ich hier?

Dies ist der XSD (Ns.xsd):

<?xml version="1.0" encoding="ISO-8859-1" ?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="peoples">
  <xs:complexType>
    <xs:sequence>
      <xs:element name="person"/>
    </xs:sequence>
  </xs:complexType>
</xs:element>
</xs:schema>

Dies ist der XML (Peoples.xml):

<?xml version="1.0" encoding="ISO-8859-1"?>
<peoples xmlns:ns="url" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="ns.xsd">
<ns:person>
        <name>John</name>
</ns:person>
</peoples>
War es hilfreich?

Lösung

Sie müssen das komplette XSD einfügen, um Ihnen zu helfen. Aber aus dem Fehler, den ich sehe und die Tatsache, dass Sie "XSI: NonamePaceSchemalocation" in Ihr XML -Instanzdokument aufgenommen haben, ist das Problem, das ich sehe, dass Sie Ihr Schema mit definiert haben Kein TargetNameSpace angegeben, aber Sie qualifizieren sich Person Element mit einem Namespace -Präfix. Entfernen Sie einfach "NS:" an allen Stellen in Ihrem Instanzdokument und Sie sind alle gut.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top