Frage

Ich bin ein bisschen Neuling in XML-Schema. Ich wäre dankbar, wenn jemand mir helfen zu verstehen, warum meine xml ist nicht mit dem Schema validiert werden:

Hier ist mein Schema:

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.example.org/testSchema" xmlns="http://www.example.org/testSchema">
  <xs:element name="Employee">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="Name">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="FirstName" />
              <xs:element name="LastName" />
            </xs:sequence>
          </xs:complexType>
        </xs:element>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
</xs:schema>

Hier ist mein Test xml:

<?xml version="1.0" encoding="UTF-8"?>
<Employee xmlns="http://www.example.org/testSchema">
 <Name>
  <FirstName>John</FirstName>
  <LastName>Smith</LastName>
 </Name>
</Employee>

Ich erhalte folgende Fehler von Eclipse-XML-Editor / Validator:

cvc-complex-type.2.4.a: Invalid content was found starting with element 'Name'. One of '{Name}' is expected.

Ich konnte nicht verstehen, was mit diesem Schema oder meinem xml falsch ist.

War es hilfreich?

Lösung

alle u tun müssen, ist ElementFormDefault- add = „qualifiziert“ und u wird in Ordnung sein. dieses Verhalten zu verstehen, lesen Sie „Sind Sie qualifiziert?“ Abschnitt @ http://msdn.microsoft.com/en-us/library/ ms950796.aspx

Andere Tipps

Fügen Sie einfach die ElementFormDefault- = "qualifiziert", um das Schema attribues.

 <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"         
       targetNamespace="http://www.example.org/testSchema"
       elementFormDefault="qualified"
       xmlns="http://www.example.org/testSchema">

Und Ihre ursprüngliche Willen Arbeit

 <?xml version="1.0" encoding="utf-8"?>
   <Employee xmlns="http://www.example.org/testSchema">
     <Name>
      <FirstName>John</FirstName>
      <LastName>Smith</LastName>
   </Name>
 </Employee>

Sieht aus wie Sie andernfalls angeben, wie die FirstName und LastName Elemente zu validieren; gibt die Elementdaten für jene type="xsd:string" (wo xsd Anforderungen an den XML-Schema-Datentypen-Namespace zugeordnet werden, natürlich) und es soll alles gut sein.

Aber Sie sind besser dran, nicht nisten so tief diese Elemente. Setzen Sie sie alle auf dem gleichen Niveau und die Verwendung ref="Name" sie alle zusammen, anstatt zu verbinden; es macht Ihr Schema viel flexibler und verwendet werden.

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