logo       

multiple code pages in kXML, die zweite: msg#00000

java.enhydra.kxml

Subject: multiple code pages in kXML, die zweite

hallo stefan

nun, da ich schon dachte, mein projekt "mehrere code pages in kXML"
würde zu allegemeiner zufriedenheit funktionieren, ist mir doch etwas
eigenartiges zu ohren gekommen.

das problem ist das folgende: wie geht der WBXML writer / parser mit XML
Namespaces um?

bis jetzt war meine lösung so, dass in SyncML XML dokumenten (wo 2 code
pages, 0x00 und 0x01 gebraucht werden), die pages einfacht geswitcht
wurden, wenn ein tag in der aktuellen code page nicht gefunden wurde.
allerdings scheint mir das jetzt nicht mehr die sauberste lösung zu
sein, da man sich eigentlich auf die namespace deklarationen stützen
können sollte - also wenn das attribut 'xmlns' gelesen wird (ob nun von
WBXML oder XML), die gesamten code pages geladen werden entsprechend dem
wert des attributs.

Ein SyncML Dokument hat nun folgende struktur:

<SyncML xmlns='SYNCML:SYNCML1.0'>
<SyncHdr>
<Target>
<LocURI>
http://10.95.12.202:80
</LocURI>
</Target>

<Cred>
<Meta>
<Format xmlns='syncml:metinf'>
b64
</Format>
<Type xmlns='syncml:metinf'>
syncml:auth-basic
</Type>
</Meta>
</Cred>
</SyncHdr>
<SyncBody>
<Data>
<DevInf xmlns='syncml:devinf'>
<VerDTD>1.0</VerDTD>
<Man>Ericsson</Man>
<SwV>R1A</SwV>
<HwV>R1A</HwV>
</DevInf>
</Data>
</SyncBody>
</SyncML>

Das Problem:

Alle Tags (ausser die Tags innerhalb von <DevInf>) können mit den code
pages 0x00 (SyncML) und 0x01 (MetInf) ausgedrückt werden. Nun ist es
aber 'lustigerweise' so, dass die codepage für die tags von <DevInf>
auch 0x00 heissen muss.

Wie löse ich das am besten?

vielen dank & gruss
nicola fankhauser


<Prev in Thread] Current Thread [Next in Thread>
Google Custom Search

News | FAQ | advertise