Wie kann man Zeichen von Oracle nach XML verschlüsseln?

8

In meiner Umgebung verwende ich Java, um die Ergebnismenge in XML zu serialisieren. Es passiert grundsätzlich so:

%Vor%

Das XML sieht in Firefox so aus:

%Vor%

Aber wenn ich das XML analysiere, bekomme ich das a

  

org.xml.sax.SAXParseException: Zeichenreferenz " & amp; # 26 " ist ein   ungültiges XML-Zeichen.

Meine Frage ist jetzt: Welche Zeichen muss ich ersetzen oder wie muss ich meine Zeichen kodieren, damit sie gültiges XML sind?

    
Andre Bossard 05.10.2008, 12:54
quelle

3 Antworten

7

Ich habe eine interessante Liste in der Xml Spec gefunden: Gemäß dieser Liste wurde davon abgeraten, das Zeichen # 26 (Hex: # x1A ) zu verwenden.

  

Die in der   Folgende Bereiche werden ebenfalls abgeraten.   Sie sind entweder Steuerzeichen oder   permanent undefiniert Unicode   Zeichen

Siehe die vollständigen Bereiche .

Dieser Code ersetzt alle ungültigen Xml Utf8 von einem String:

%Vor%

Es stammt aus Ungültigen XML-Zeichen: wenn gültiges UTF8 nicht bedeutet gültiges XML

Aber damit hatte ich noch das UTF-8 Kompatibilitätsproblem:

%Vor%

Nach dem Lesen XML - Rückgabe von XML als UTF-8 aus ein Servlet Ich habe gerade ausprobiert, was passiert, wenn ich den Inhaltstyp wie folgt einstelle:

%Vor%

Und es hat funktioniert ....

    
Andre Bossard 01.10.2008, 08:46
quelle
2

Extensible Markup Language (XML) 1.0 sagt:

  

Das kaufmännische Und-Zeichen (& amp;) und der   Die linke spitze Klammer (& lt;) darf nicht erscheinen   in ihrer wörtlichen Form, außer wenn   als Markup-Trennzeichen oder innerhalb von   Kommentar, eine Verarbeitungsanweisung, oder   ein CDATA-Abschnitt. Wenn sie benötigt werden   anderswo müssen sie mit Hilfe entkommen   entweder numerische Zeichenreferenzen oder   die Saiten "& amp;" und "& lt;"   beziehungsweise. Der rechte Winkel   (& gt;) kann unter Verwendung der   String "& gt;", und muss, z   Kompatibilität, mit entweder entkommen lassen   "& gt;" oder eine Zeichenreferenz wenn   Es erscheint in der Zeichenfolge "]] & gt;" im   Inhalt, wenn diese Zeichenfolge nicht ist   Markieren Sie das Ende eines CDATA-Abschnitts.

Sie können die Codierung überspringen, wenn Sie CDATA verwenden:

%Vor%     
Eugene Yokota 01.10.2008 08:46
quelle
0

Welche Version von JRE laufen Sie? Sax Projekt sagt:

  

J2SE 1.4 bündelt eine alte Version von   SAX2. Wie stelle ich SAX2 r2 oder später zur Verfügung?

    
Eugene Yokota 01.10.2008 09:13
quelle

Tags und Links