# JDOM && ObjectOutputStream



## brasilian (8. Apr 2006)

Hallo,

ich habe mal eine Frage bezüglich der Verwendung beider Techniken. Ich schreibe in Daten mittels der JDOM Klasse Element in eine Datei, soweit kein Problem. Ich bin auch in der Lage, Objekte über die Klasse ObjectOutputStream in eine Textdatei zu schreiben. Will ich nun aber beide Sachen vermischen, also neben den eigentlichen XML-Elementen auch ein Objekt mittels ObjectOutputStream in die xml-Datei schreiben, so habe ich halt ab und zu das Problem von nicht darstellbaren Zeichen. Kann ich vielleicht einzelne Blöcke in einer xml-Datei von der XML-Gültigkeitsprüfung ausklammern, so dass ich die Datei trotzdem über einen Browser angezeigt bekomme.

Vielleicht hat der ein oder andere ja schon mal so was ähnliches gelöst.

Gruß
Brasi


----------



## DP (8. Apr 2006)

du musst das encoding mitgeben, dann kann der das.


----------



## brasilian (8. Apr 2006)

Hallo DP,

also als encoding gebe ich "iso-8859-1" mit. Mit UTF-8 habe ich so oder so keine Chance, doch auch mit "iso-8859-1" werden zum Teil nicht gültige Zeichen gefunden.


----------



## DP (8. Apr 2006)

welche zeichen denn?

was ist mit c-data?


----------



## brasilian (10. Apr 2006)

Was ist c-data ?

Ich kann dir leider nicht sagen, welches Zeichen ungültig ist. Wenn ich mir die xml-Datei anschaue, erhalte ich die Fehlermeldung:

XML Datei kann nicht angezeigt werden

Es wurde ein Semikolon erwartet


----------



## brasilian (10. Apr 2006)

Inzwischen habe die ungültigen Zeichen gefunden. Es kommt etwa viermal das "&" und einmal das "<" vor.
Ich habe testweise die Zeichen durch ein anderes Zeichen ("!") ersetzt und anschließend wurde die XML-Datei korrekt dargestellt.

Ich kann nun auch verstehen, wieso es vorher nich korrekt angezeigt wurde, da das "&" eine Art Platzhalter ("Entity-Referenz, http://www2.informatik.hu-berlin.de/~obecker/Lehre/SS2002/XML/02a-syntax.html) und das "<" halt wieder ein Begrenzer ist. 

Ich habe zwar jetzt die entsprechenden Zeichen ausfindig gemacht und durch eine anderes Zeichen ersetzt, so dass die Datei angezeigt werden kann, doch im Endeffekt habe ich ja ein Objekt verändert, was ja so nicht in Ordnung ist. 
Ich frage mich nur, wie man beides erreichen könnte, d.h. eine Datei-Anzeige und korrektes Rekunstruhieren des Objektes.

Mir fällt im Moment nur ein, dass Object zu schreiben, dann die Datei einzulesen und die ungültigen Zeichen zu ersetzen, so wie ich es per Hand gemacht habe. Hierbei ist natürlich ganz wichtig, dass die neuen Zeichen eindeutig sind. Will man anschließend das Objekt wieder herstellen, muss man die neuen Zeichen wieder durch die alten Ersetzen. Hat jemand vielleicht noch einen besseren Vorschlag ?

Gruß
Brasi


----------



## brasilian (10. Apr 2006)

Ich bin es ... nochmals   ,

ich habe mich inzwischen über CDATA informiert. Ich denke, dass dies genau das ist, was ich benötige.


----------



## brasilian (11. Apr 2006)

Ein Problem gibt es leider wenn ich die geschriebene XML-Datei (mit CDATA-Section) anschließend wieder mittels SAXBuilder einlesen will. Dann bekomme ich halt folgende Fehlermeldung:

org.jdom.input.JDOMParseException: Error on line 328 of document file:///C:/temp/confPz.xml: An invalid XML character (Unicode: 0x5) was found in the CDATA section.


Weiß jemand wie ich dies beheben kann ?


----------



## brasilian (12. Apr 2006)

Für alle die mal auf ein ähnliches Problem stossen sollten.
Das Ganze läßt sich mittels UUEncoder und UUDecoder umgehen.


----------

