Das Notes Forum

Domino 9 und frühere Versionen => ND8: Entwicklung => Thema gestartet von: dirkkid am 11.09.12 - 12:42:02

Titel: XML & encoding: ISO-8859-15
Beitrag von: dirkkid am 11.09.12 - 12:42:02
Hallo,

wenn ich versuche eine XML Datei zu lesen die nach  ISO-8859-15 kodiert ist erhalte ich folgende Fehlermeldung des Parser-Logs:

Zitat
<?xml version='1.0'?>
<DOMParserLog>
<fatalerror source='NotesInputSource' line='1' column='62'>An exception occurred! Type:TranscodingException, Message:Could not create a converter for encoding: ISO-8859-15</fatalerror>
<error>DOM parser operation failed</error>
</DOMParserLog>

Ändere ich das encoding der Datei auf ISO-8859-1, wird die Datei fehlerfrei eingelesen.

Kann Notes generell die ISO-8859-15 nicht dekodieren??? Oder kann man dem Parser irgendeine Anweisung mitgeben die Kodierung zu ignorieren?

Vielen Dank für eure Hilfe
Dirk
Titel: Re: XML & encoding: ISO-8859-15
Beitrag von: pram am 11.09.12 - 13:20:25
Geht es so nicht?

Code
<?xml version="1.0" encoding="ISO-8859-15" ?>
....

Gruß
Roland

/edit: Ich hatte aber auch schon mal eine Datei, die im Header "behauptet" ISO-xxx codiert zu sein und dann Zeichen enthielt, die nicht in der Codepage vorkommen... da kommt der Parser dann nicht weiter. Ist das dein Problem?
Titel: Re: XML & encoding: ISO-8859-15
Beitrag von: dirkkid am 11.09.12 - 13:31:19
Geht es so nicht?

Code
<?xml version="1.0" encoding="ISO-8859-15" ?>
....

Gruß
Roland

/edit: Ich hatte aber auch schon mal eine Datei, die im Header "behauptet" ISO-xxx codiert zu sein und dann Zeichen enthielt, die nicht in der Codepage vorkommen... da kommt der Parser dann nicht weiter. Ist das dein Problem?


Die Datei sieht so aus:

Zitat
<?xml version="1.0" encoding="ISO-8859-15" standalone="yes"?>
<UC_PersoenlicheVersichertendatenXML CDM_VERSION="5.1.0" xmlns="http://ws.gematik.de/fa/vsds/UC_PersoenlicheVersichertendatenXML/v5.1">
<Versicherter>
   <Versicherten_ID>123456789</Versicherten_ID>
   <Person>
      <Geburtsdatum>19700101</Geburtsdatum>
      <Vorname>Hans</Vorname>
      <Nachname>Mustermann</Nachname>
      <Geschlecht>M</Geschlecht>
      <StrassenAdresse>
         <Postleitzahl>00000</Postleitzahl>
         <Ort>Musterdorf</Ort>
         <Land>
            <Wohnsitzlaendercode>D</Wohnsitzlaendercode>
         </Land>
         <Strasse>Muster-Str.</Strasse>
         <Hausnummer>1</Hausnummer>
      </StrassenAdresse>
   </Person>
</Versicherter>
</UC_PersoenlicheVersichertendatenXML>

Wie gesagt - sobald ich die 5 rausnehme wird die Datei gelesen und ich kann sie parsen.

Gruß
Dirk
Titel: Re: XML & encoding: ISO-8859-15
Beitrag von: pram am 11.09.12 - 15:41:43
Aus der Meldung
<?xml version='1.0'?>
<DOMParserLog>
<fatalerror source='NotesInputSource' line='1' column='62'>An exception occurred! Type:TranscodingException, Message:Could not create a converter for encoding: ISO-8859-15</fatalerror>
<error>DOM parser operation failed</error>
</DOMParserLog>
schließe ich, dass der Parser  bereits hier
Zitat
<?xml version="1.0" encoding="ISO-8859-15" standalone="yes"?>
aussteigt. Das sieht aus, als ob es den Konverter "ISO-8859-15" nicht gibt: -> http://atnotes.de/index.php/topic,36896.msg232224.html#msg232224
Verwendest du evtl noch Notes 6?

Gruß
Roland

Ändere ich das encoding der Datei auf ISO-8859-1, wird die Datei fehlerfrei eingelesen.

Kann Notes generell die ISO-8859-15 nicht dekodieren??? Oder kann man dem Parser irgendeine Anweisung mitgeben die Kodierung zu ignorieren?

Vielen Dank für eure Hilfe
Dirk
[/quote]
Titel: Re: XML & encoding: ISO-8859-15
Beitrag von: dirkkid am 11.09.12 - 15:51:34
Ich verwende Release 8.5.3FP2.

Wenn das encoding für ISO-8859-15 wirklich nicht unterstützt wird, werde ich wohl vor dem Parsen die ISO-8859-15 in ISO-8859-1 ändern müssen... :o
Titel: Re: XML & encoding: ISO-8859-15
Beitrag von: pram am 11.09.12 - 19:06:59
Kann ich mir fast nicht vorstellen, kannst du mal ein kurzes Scriptschnipsel pasten, wie du die Datei einliest, dann probiere ich das morgen mal aus.

Gruß
Roland
Titel: Re: XML & encoding: ISO-8859-15
Beitrag von: pram am 11.09.12 - 20:30:26
Unter 8.5.3 (ohne Fixpack, kanns morgen nochmal auf einer anderen Maschine testen) läuft folgender Code:
Code
Sub Initialize
	Dim sess As New NotesSession
	Dim iStream As NotesStream
	Dim oStream As NotesStream
	Set iStream = sess.CreateStream
	Set oStream = sess.CreateStream
	Call iStream.Writetext(|<?xml version="1.0" encoding="ISO-8859-15" standalone="yes"?>
<UC_PersoenlicheVersichertendatenXML CDM_VERSION="5.1.0" xmlns="http://ws.gematik.de/fa/vsds/UC_PersoenlicheVersichertendatenXML/v5.1">
<Versicherter>
   <Versicherten_ID>123456789</Versicherten_ID>
   <Person>
      <Geburtsdatum>19700101</Geburtsdatum>
      <Vorname>Hans</Vorname>
      <Nachname>Mustermann</Nachname>
      <Geschlecht>M</Geschlecht>
      <StrassenAdresse>
         <Postleitzahl>00000</Postleitzahl>
         <Ort>Musterdorf</Ort>
         <Land>
            <Wohnsitzlaendercode>D</Wohnsitzlaendercode>
         </Land>
         <Strasse>Muster-Str.</Strasse>
         <Hausnummer>1</Hausnummer>
      </StrassenAdresse>
   </Person>
</Versicherter>
</UC_PersoenlicheVersichertendatenXML>|)
	Dim parser As NotesDOMParser
	Set parser = sess.Createdomparser(iStream, oStream)
	On Error GoTo errhand
	Call parser.Process()
	Dim doc As NotesDOMDocumentNode
	Set doc = parser.Document
	MsgBox doc.Documentelement.Nodename ' liefert UC_PersoenlicheVersichertendatenXML
	
	Exit Sub
errhand: MsgBox parser.Log
	Exit sub	
End Sub
Gruß
Roland
Titel: Re: XML & encoding: ISO-8859-15
Beitrag von: dirkkid am 12.09.12 - 11:48:59
Hallo Roland,

dank Dir habe ich meinen, zugegebenermaßen peinlichen, Fehler jetzt endlich gefunden...

Ich habe beim öffnen der Datei den Charset nicht mitangegeben:

Zitat
Call inputStream.Open("C:\Test.xml"))

statt:

Zitat
Call inputStream.Open("C:\Test.xml"), "Unicode")

Danke noch mal für deine Hilfe!
Gruß
Dirk