PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : javac hört nicht auf mich


Gast
2008-06-03, 14:52:29
Hallo ihr!

Ich schraube gerade mit Java (JDK1.5) etwas herum und möchte XML-Dateien generieren, was auch funktioniert.

Beim Übersetzen mit javac bekomme ich aber haufenweise Warnung vorgesetzt, zum Beispiel
XMLMethods.java:99: warning: com.sun.org.apache.xml.internal.serialializer is Sun proprietary API and may be removed in a future release
XMLSerializer serializer = new XMLSerializer(...

Ich weiss, wovor dort gewarnt wird, daher möchte ich diese Warnungen nicht mehr sehen.

In der javac-Hilfe ( -help ) steht, dass ich als Option -nowarn benutzen könnte, damit keine Warnungen angezeigt werden.
Interessanterweise ignoriert mich javac vollständig, wenn ich meine Dateien mit
javac -nowarn dungsbums.java
übersetze; es hagelt einfach weiter "dutzende" Warnungen und erschwert das Auffinden wichtigerer Meldungen. :(

HellHorse
2008-06-06, 21:14:16
Nein ich glaube nicht, dass du verstehst, wovor du da gewarnt wirst. Zu flicken ist das auch ganz einfach, du programmierst es richtig.

http://weblogs.java.net/blog/iasandcb/archive/2006/06/serializing_xml.html
(Beispiele 1 und 3, 2 ist was du machst, zählt nicht)

Wenn dir das jetzt alles zu mühsam ist, warum hast du nicht gleich JDOM genommen?

Dr.Doom
2008-06-08, 02:09:07
Nein ich glaube nicht, dass du verstehst, wovor du da gewarnt wirst. Zu flicken ist das auch ganz einfach, du programmierst es richtig.

http://weblogs.java.net/blog/iasandcb/archive/2006/06/serializing_xml.html
(Beispiele 1 und 3, 2 ist was du machst, zählt nicht)Danke für den Link, aber nur weil ich nicht auch so ein Java-Guru bin, brauchst du mir nicht zu unterstellen, ich wüsste es nicht. (Es sei denn, die Warning meint nicht das, was sie aussagt...)

Wenn dir das jetzt alles zu mühsam ist, warum hast du nicht gleich JDOM genommen?Ich habe nicht sonderlich darüber nachgedacht: das, was ich benutze (siehe startbeitrag), funktioniert --> abgehakt. Meine Energien werden leider an anderer Stelle benötigt. :(


EDIT: Ok, ich wollte zwar eigentlich in die Heia, aber, naja...:

Nutze ich Beispiel 1 (siehe Link oben), dann habe ich nach dem Schreibvorgang den kompletten Inhalt in einer Zeile <root><ele1></ele1><ele2>...
Nicht schön.

Nutze ich Beispiel 3, dann ist jeder <Tag> zar in einer eigenen Zeile, aber nicht eingerückt.
<root>
<ele1>
</ele1>
<ele2>
...
Auch nicht schön.


Meine bisherige Lösung baut mir ein "schönes" XML-Dokument:
OutputFormat format = new OutputFormat( dom );
format.setIndenting( true );
XMLSerializer serializer = new XMLSerializer(new FileOutputStream( new File( "file.xml" ) ), format );
serializer.serialize( dom );

<root>
<ele1>
...
</ele1>
<ele2>
...



EDIT 2: Ok, bei Beispiel 3 fehlt noch die Zeile:
transformer.setOutputProperty( "{http://xml.apache.org/xslt}indent-amount", "4");
dann wird entsprechend um je 4 Blanks eingerückt, je nach Schachtelungstiefe.


Gute Nacht dann. ;)

Dr.Doom
2008-06-09, 14:12:17
Noch eine Frage dazu:
...
Element rootEle = dom.createElement("Brettspiele");
rootEle.setAttribute( "Zwickmühle", "yes" );
rootEle.setAttribute( "Qubic", "no" );
...

Wenn ich dies in eine XML-Datei schreiben lasse, dann erscheinen die Attribute alphabetisch sortiert.
<Brettspiele Qubic="no" Zwickmühle="yes">

Wie bekomme ich es hin, dass die Attribute in der Reihenfolge in der XML-Datei erscheinen, in der ich sie oben gesetzt habe (Zwickmühle vor Qubic)?