PDA

View Full Version : XML-INTO



helm
10-07-09, 09:11
Hallo,

ich benutze den Befehl XML-INTO und lese damit XML-Dateien eines Partners aus dem IFS.

klappt prima.

Aber - jetzt stellt der Partner auf DBCS um und nix geht mehr.

Gibt es eine Möglichkeit mit XML-INTO auch DBCS zu verarbeiten??

Gruß
helm

B.Hauser
10-07-09, 09:21
Versuch's mal mit der Option ccsid=ucs2.

Birgitta

helm
10-07-09, 10:18
Hallo Brigitta,

es geht leider nicht.

Ich habe festgestellt, dass mit ucs2 die normale(Single-Byte) Umsetzung auch funktioniert.

Mehr Auswahl bei der CCSID immXML-INTO gibt es ja nicht.

Jetzt ist für mich die Frage, ob es überhaupt im DBCS Mode geht.

Gruß
Helm

Fuerchau
10-07-09, 11:12
Bist du sicher, dass es DBCS ist und nicht UTF8 ?
Soweit ich weiß, gibt es XML nicht als native DBCS sondern im Header eines XML steht meist der Typ, z.B. encoding="ISO-..." oder encoding="UTF-8".

UTF8 ist, glaube ich, CCSID 1208.

helm
13-07-09, 08:25
Hallo,

es handelt sich um den Code UTF-16.
( 2 Bytes ein Zeichen ).

Das macht die ganze Sache so schwierig und ich frage mich, ob hier der Befehl XML-INTO noch funktionieren kann.

Gruß Helm

Fuerchau
13-07-09, 12:11
Dann probiers mit CCSID 1200 (UTF-16).
Nur der Datenteil (Attribute, Texte) dürfte in UTF-16 sein, Namen müssen weiterhin in SBCS sein (XML-Definition).

helm
13-07-09, 14:24
Danke für die Hilfe aber ich glaube XML-INTO geht nicht mit UTF-16.

Ich bekomme vom Parser die Fehlermeldung 302 und die sagt:

<TABLE border=1 width="100%"><TBODY><TR><TD vAlign=top width="13%" headers=WQ163 align=left>302 </TD><TD vAlign=top width="88%" headers=WQ164 align=left>The parser does not support the requested CCSID value or the first character of the XML document was not '<'. </TD></TR></TBODY></TABLE>

Gruß Helm

Fuerchau
13-07-09, 16:18
Dann scheint sich das XML-Dokument nicht an die Konvention zu halten.
XML-Steuerwerte dürfen nicht in UTF-16 stehen.

Alternativ musst du die XML-Datei per CPYFRMSTMF von CCSID 1200 nach CCSID 1208 konvertieren.
Das geht dann wieder nur über den Umweg STMF->PF->STMF.

Und zu guter letzt bleibt dir wohl nur noch Java.

KM
13-07-09, 20:01
Dann konvertiere halt erst mal den gesamten XML-Stream mit iconv() in eine SBCS-CCSID (in diesem Fall von 1200 nach 1141) und führe erst danach den XML-INTO aus.

Gruß,
KM