You are not logged in.

  • Login

1

Tuesday, December 20th 2011, 12:07pm

XML validierung über XSD CR LF problem

Hallo liebe Gemeinde,

ich habe ein Problem mit meiner Datenbank. Und zwar habe ich eine xsd schema erstellt, bei dem ein element den typ xs:date hat.

Nur erzeuge ich eine passende datenbank und füge an geeigneter Stelle ein

Source code

1
<date>2000-01-01</date>

Das funktioniert tadellos, insbesondere der test

xmllint --noout --schema MEINSCHEMA.xsd MEINEDATENBANK.xml

liefert eine vailde Datenbank.

Nun habe ich das Problem, dass ich Datenbanken mit anderen skripten erzeuge. Diese führen (zur besseren lesbarkeit) aber folgendes ein

Source code

1
2
3
<date>
      2000-01-01
</date>


Das gefällt dem validator nicht mehr, den er sagt in etwa

Source code

1
2
3
'                                  
                 2000-01-01
                            ' is not a valid value of the atomic type 'xs:date'. 


Ich mein, recht hat er, wegen der Zeilenumbrüche, aber da muss es doch etwas geben, um diese Zeilenumbrüche "auszushcließen", oder?

Gruß,
curator

2

Thursday, December 22nd 2011, 8:54pm

Moin - Ich denke mal, dass kannst du nur über den Validator regeln, also wenn dieser ein Ignorieren von Leerzeichen und Zeilenumbrüchen unterstützt, wobei du ja dann im Grunde nur den Validator manipuliert.

XML ist ja ein Standard den jeder maschinell lesen kann. Jetzt stell dir mal vor jemand will dein XML verarbeiten, der hat in dem Zustand keine Chance, weil er wieder Logik einbauen müsste, die die entsprechenden Leerzeichn entfernt, obwohl der Kollege (laut XSD) ein Date erwartet. Wenns dich sowieso nicht interessiert, was rauskommt und "gut lesbar sein soll". Warum brauchst du dann ne XSD?

Also ich würde folgendes machen: XML erzeugen und bei Bedarf das XML mit pretty print schön ausgeben.

Similar threads

Social bookmarks