# Übungsaufgabe: Valide und gültige XML Datei zu einer DTD



## ven000m (8. Jun 2006)

Hallo,

ich hab die Aufgabe gehabt eine XML Datei auf Gültigkeit hin zu überprüfen, Gültigkeit zu einer passenden DTD Datei, auch sollte man prüfen ob eine XML Datei wohlgeformt ist.

Wenn Sie gültig ist, kann sie auch nicht wohlgeformt sein, daran kann ich mich noch erinnern. Gültigkeit wiegt somit höher als wohlgeformtheit.







*Meine Lösung:*

1.) Wohlgeformtheit (XML Datei also für sich betrachtet):

Sie ist wohlgeformt.

2.) Gültigkeit zur DTD Korrekt:

Nicht gültig!

<kunde>
name.. kundennr.

</kunde>

<positionen>

artiekelnr
anzahl

</positionen> müsste es ungefähr sein..


Vielleicht <!Element  Erlaeuterung (#PCDATA)> müsste ans Ende rutschen weil die Artikel & Anzahl davon die Attributsaufzählung: <!Attlist....artikelnr. anzahl..> zuerst überprüft werden müssen ob die richtige Anzahl an Positionen mitgeliefert werden.

Ergo: Hab nix großes gefunden, evtl. sinnfrei Kunde nicht  mitzuliefern, aber shit happens , dass Tag ist ja da.


Wie ist die Lösung? Kann sich das mal jemand angucken, besten Dank.

Gruß


----------



## Eldaron (9. Jun 2006)

Anzahl muss immer angegeben sein => ist im Beispiel nicht so, insofern ist sie nach der DTD nicht valide. Wohlgeformt ist sie, wenn die geöffneten Tags auch wieder geschlossen werden etc. (läßt sich schön mitm Internet Explorer überprüfen). Das ist hier der Fall (soweit ich das seh)

=> wohlgeformt, aber nicht valide


----------



## ven000m (9. Jun 2006)

Hi,

boa schon ein nickeliger Fehler, den man gar nicht so einfach sieht.

Wohlgeformt kann ich nun mehr bestätigen mit nem Tool, allerdings meckert es immer über die erste XML Zeile, lösche ich die ist alles okay.

Wo genau meinst du muss Anzahl in der DTD Datei stehen?

Gruß  :applaus:


----------



## ven000m (11. Jun 2006)

Was meinst du mit Anzahl? In der DTD?


----------



## Wildcard (11. Jun 2006)

Die DTD schreibt vor das eine Position auch eine Anzahl erhählt(was hier nicht gegeben ist).
Das meint Eldaron mit anzahl.


----------



## ven000m (11. Jun 2006)

Hallo,

okay danke. Also jede Position muss zwingend die Anzahl enthalten, auch wenn z.B. Anzahl="0" aber sie muss dabei sein?

Gruß


----------



## Wildcard (11. Jun 2006)

ja


----------



## ven000m (11. Jun 2006)

Hi,

vielen Dank, jetzt habe ich es verstanden.  :applaus: 

Gruß  :applaus:


----------

