XML-Problem: Invalid content was found

(Firma: keine) #2508192
Lesenswert?

Hallo zusammen,

mit xml-Files habe ich bisher nur in eher kleinen Umfängen gearbeitet, 
da es in meinem aktuellen Projekt etwas komplexer wird, möchte ich sie 
gegen ein Schema validieren. Im Moment nutze ich dazu die 
webtools-platform von Eclipse. Mein eigentlich schon recht weit 
gediegenes Schema musste ich nun zwecks Fehlersuche doch noch einmal auf 
einen sehr abgespeckten Stand herunterbrechen, aber irgendwie sehe ich 
grad trotzdem keinen Fehler.

Jedenfalls führt das Validieren meiner xml:

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

<Areas xmlns="http://www.meinefirma.de/AreaDescription/";
                 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
                 xsi:schemaLocation="http://www.meinefirma.de/AreaDescription/ 
AreaDescription.xsd"
                 timestamp="Test" version="0.1">
      <Area name="Test"/>
</Areas>
####################################################################

gegen das Schema AreaDescription.xsd:

####################################################################
<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema xmlns="http://www.w3.org/2001/XMLSchema"; 
xmlns:tns="http://www.meinefirma.de/AreaDescription/"; 
xmlns:xsd="http://www.w3.org/2001/XMLSchema"; 
targetNamespace="http://www.meinefirma.de/AreaDescription/">;

     <xsd:element name="Areas" type="tns:AreasType"/>

     <xsd:complexType name="AreasType">
       <xsd:sequence>
         <xsd:element name="Area" type="tns:AreaType" 
maxOccurs="unbounded" minOccurs="0"></xsd:element>
       </xsd:sequence>
       <xsd:attribute name="timestamp" type="string"></xsd:attribute>
       <xsd:attribute name="version" type="string"></xsd:attribute>
     </xsd:complexType>

     <xsd:complexType name="AreaType">
       <xsd:attribute name="name" type="xsd:string"></xsd:attribute>
     </xsd:complexType>
</xsd:schema>
####################################################################

zu folgender Fehlermeldung:

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

Was bitte ist denn hier falsch? Wer kann mir helfen?

Grüße,
Sören
Persönliche Seite #2508199
Lesenswert?

Mr Xyz schrieb:
> Was bitte ist denn hier falsch? Wer kann mir helfen?
Mach doch mal Rechtsklick auf das XSD --> Generate dann erzeugt dir 
Eclipse eine Beispieldatei.

Du musst vermutlich deinen Targetnamespace mit prefix definieren und den 
prefix bei Area angeben.
1
<?xml version="1.0" encoding="UTF-8"?>
2
<tns:Areas xmlns:tns="http://www.meinefirma.de/AreaDescription/"
3
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
4
 xsi:schemaLocation="http://www.meinefirma.de/AreaDescription/AreaDescription.xsd">
5
  <Area name="Test"/>
6
</tns:Areas>
(Firma: keine) #2508716
Lesenswert?

Hmm, es war in der Tat ein Problem mit den namespaces. Was ich anpassen 
musste war aber der vom Wurzelelement:

<tns:Areas ...

Macht auch Sinn, so steht es ja in der .xsd ;)

Aber die auf "Area" verweisende Fehlermeldung hat mich da irgendwie ein 
wenig blind gemacht...

BTW: Ist´s denn so wie oben überhaupt sinnvoll, also dem Wurzelelement 
den namespace tns zu geben und dem Rest nicht?

Und falls nein, was wäre besser: Alle oder keines?

[EDIT: Ne, Quatsch: Lediglich der TYP ist als tns:AreasType gepräfixt... 
Ich dachte, ich hätte dieses namespace-Geschrammel jetzt verstanden... 
:(]

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren