XSD: Defintion für ein Element mit unbest. Inhalt
kaepten
- xml
Hallo Forum
Zum 1. Mal muss ich ein XSD zusammenstellen und ich kriege es noch nicht hin, dass ich ein Element-Typ definieren kann, der sämtliche Inhalte akzeptiert.
Beispiel:
<myData>
<irgendwas />
<nochwas />
...
<beliebigesElement />
</myData>
oder
<myData>
ein ganz einfacher String
</myData>
Wie kann ich das Element myData definieren, dass die Validierung in jedem Fall, mit jedem Inhalt erfolgreich ist? ("irgendwas" und "nochwas" sind im DTD unbekannte Elemente!)
Vielen Dank für Tipps
kaepten
Hallo kaepten,
Da hilft Dir wahrscheinlich xsd:any weiter.
Gruß
Olaf
Hi Olaf
Da hilft Dir wahrscheinlich xsd:any weiter.
Ja hat es. Habe es eben damit auch versucht. Allerdings funktioniert das erst, wenn ich es so verwende (hab das grad jetzt rausgefunden):
<xs:any processContents="skip"/>
Ich verstehe allerdings noch nicht, warum any alleine nicht reicht.
kaepten
Hallo,
Da hilft Dir wahrscheinlich xsd:any weiter.
Ja hat es. Habe es eben damit auch versucht. Allerdings funktioniert das erst, wenn ich es so verwende (hab das grad jetzt rausgefunden):
<xs:any processContents="skip"/>
xsd:sequence
<xsd:any processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
Ich verstehe allerdings noch nicht, warum any alleine nicht reicht.
Weil der default Wert für das processContents-Attribut "strict" ist, was bedeutet, dass der XML-Prozessor verpflichtet ist das Schema zu besorgen, das mit dem entsprechenden Namensraum (<xsd:any namespace=""> (default ist: ##any)) verbunden ist, um das XML zu validieren.
"lax" meint, der Prozessor versucht die Schemainformationen zu holen, wenn es geht validiert er das XML, aber wenn er keine Schemainformationen bekommt, gibt er trotzdem keine Fehlermeldung aus (wohl aber in Fall von Schema + Fehler).
"skip" bedeutet eben, dass der Prozessor nur auf die Wohlgeformtheit des XMLs achtet.
Grüße
Thomas
Grüße
Thomas