Domanda

Sono un novizio po 'di schema XML. Le sarei grato se qualcuno aiutarmi a capire il motivo per cui il mio XML non viene convalidato con lo schema:

Ecco il mio 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>

Questa è la mia prova xml:

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

sto ottenendo seguente errore da Eclipse editor XML / validator:

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

Non riusciva a capire cosa c'è di sbagliato in questo schema o il mio xml.

È stato utile?

Soluzione

tutto u deve fare è aggiungere elementFormDefault = "qualificato" e u andrà bene. per capire questo comportamento, leggere "Sei qualificato?" sezione @ http://msdn.microsoft.com/en-us/library/ ms950796.aspx

Altri suggerimenti

È sufficiente aggiungere l'elementFormDefault = "qualificato" ai attribues schema.

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

E il vostro lavoro sarà originale

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

Sembra che tu sia non riuscendo a specificare come convalidare gli elementi FirstName e LastName; dare le specifiche degli elementi per coloro type="xsd:string" (in cui i bisogni xsd da mappare al namespace XML Schema Datatypes, ovviamente) e tutti dovrebbero essere bene.

Ma si è meglio non nidificazione quegli elementi così profondo. Metterli tutti allo stesso livello e l'uso ref="Name" per collegarli tutti insieme, invece; rende lo schema molto più flessibile e utilizzabile.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top