Wie XML-Fragment validieren?

24/11/2008 - 19:35 von Marvin Massih | Report spam
Hallo,

ich habe ein XSD-Schema, das in etwa so ein XML vorgibt:

<wurzel>
<a>
<b>
<c>Text</c>
</b>
<a>
</wurzel>

Nun habe ich aber ein XML-Dokument, das nur ungefàhr so aussieht:

<b>
<c>Text</c>
</b>

Somit ist es nicht valide im Sinne des Schemas (XmlReader mit
ValidationType auf Schema gesetzt und zugewiesenem Schema löst eine
Exception aus).
Das ist mir aber egal, es soll nur die Validitàt an der Stelle geprüft
werden.

Wie bekomme ich das hin?
XmlValidatingReader mit XmlParserContext (das einzige, was ich so auf
Anhieb in der MSDN gefunden habe) ist ja laut Doku veraltet.

Deserialisierung funktioniert unter Zuhilfenahme von XmlRootAttribute
prinzipiell.

Gruß
Marvin
 

Lesen sie die antworten

#1 Nicolai Scheer
25/11/2008 - 09:34 | Warnen spam
Hi!

Marvin Massih schrieb:
Hallo,

ich habe ein XSD-Schema, das in etwa so ein XML vorgibt:

<wurzel>
<a>
<b>
<c>Text</c>
</b>
<a>
</wurzel>

Nun habe ich aber ein XML-Dokument, das nur ungefàhr so aussieht:

<b>
<c>Text</c>
</b>

Somit ist es nicht valide im Sinne des Schemas (XmlReader mit
ValidationType auf Schema gesetzt und zugewiesenem Schema löst eine
Exception aus).
Das ist mir aber egal, es soll nur die Validitàt an der Stelle geprüft
werden.



Ohne die technische Umsetzung zu betrachten fallen mir da zwei
Möglichkeiten ein:

1. Falls Du die Position des Fragmentes kennst, kannst Du Dir ja ein
umgebenes "Template"-XML schreiben. Dort setzt Du das Fragment ein und
validierst wie gehabt.

2. Du schreibst ein neues Schema, welches <b> als Wurzel besitzt.

Diese beiden Möglichkeiten würden das Problem meiner Meinung nach sauber
lösen. Das hàngt natürlich stark davon ab, ob Du immer unterschiedliche
Fragmente validieren möchtest.

Grüße,

Nico

Ähnliche fragen