XML schreiben mit DTD

go4g

Grünschnabel
Hallo Zusammen
Ich muss einen Java Parser schreiben der XML-Dateien erstellt mit Daten die ich aus einem XLS-File lese. Ich habe mein Programm so durchdacht:

1. Zuerst will ich ein XML-File einlesen in dem definiert ist von wo ich welche Daten nehmen muss.
2. Danach lese ich mit Hssf die Daten aus dem XLS-File
3. Dann schreibe ich mein XML-File, mit DTD-Validierung

Ich suche nun eine geeignete API die alle meine Anforderung erfüllt. Ich kenne mich mit JDOM ein bisschen aus, aber damit kann man ein XML-File soviel ich weiss nicht mit einem DTD validieren. Dafür würde wohl Xerces in Frage kommen. Nun bin ich mir nicht sicher ob eine Kombination sinnvoll ist oder ich lieber nur eine API einbinden soll.
Ausserdem bin ich mir überhaupt nicht sicher wann ich das XML-File mit dem DTD validieren muss. Das DTD ist schon vorhanden, darum wäre es wohl sinnvoll mein XML-File im Memory zu bauen, dann zu vergleichen und erst wenn alles in Ordnung ist, das XML-File zu schreiben. Ist das möglich, oder wie macht man das üblicherweise?

Ich danke euch
go4g
 
Danke für die Antwort. Das Problem ist, dass die DTD-Files schon vorhanden sind und ich diese verwenden sollte. Dies ist aber mit JDOM leider nicht möglich, darum weiss ich im moment nicht was der einfachste Lösungsansatz wäre...
 
Kennt jemand eine Möglichkeit wie ich ein XML-File mit DTD als Vorlage schreiben kann? Oder muss ich, wie ich befürchte, das XML schreiben dann wieder öffnen um es mit dem DTD zu vergleichen?
Danke
 
Ich nehme mal an das das Was in der JDom doc drin steht soweit Korrekt ist, und laut doc ist es nicht möglich XML gegen DTD zu validieren. Wobei das nicht auf alle API's bezogen ist. Wobei DTD nicht mehr das gängige Mittel ist eine XML Validierung durch zu führen, dazu werden seit neuerem werden XSD Datein verwendet.

Also hast du Drei Möglichkeiten:

1. Eine XML Validierung zu Implementieren die DTD nutzt.

2. Keine Validierung durchführen.

3. XSD zu verwenden, wie eine Validierung Funktioniert ist im Link Oben bereits beschrieben.
 
Danke für die Hilfe!

Gibt es eine Möglichkeit das Xml beim schreiben zu prüfen? Im Moment habe ich das ganze so gelöst, dass das File temporär neu geschrieben wird um es dann einzulesen und zu prüfen. Wenn es korrekt ist schreibe ich es endgültig. Es funktioniert aber es ist nicht wirklich eine schöne Lösung.

Danke Gruss
 
Zurück