Tegnsæt i OIOXML elektronisk regning

Anvendt tegnsætning i OIOXML elektronisk regning.

Resume

Tegnsættet UTF-8 skal anvendes ved udformning af elektroniske regninger i overensstemmelse med "Bekendtgørelse om information i OIOXML elektronisk afregning med offentlige myndigheder", som kan findes via dette link.

Samtidig skal UTF-8 erklæres som tegnsæt i selve meddelelsen som en del af XML-deklarationen. Se nedenfor:

UTF-8

Erklæringen er ikke casesensitiv, dvs. at både "UTF-8" og "utf-8" er legale.

Baggrund

Specifikationen for XML fra W3C stiller krav om at alle XML-processorer skal understøtte UTF-8 og UTF-16 kodning af Unicode. Yderligere kræver specifikationen, at meddelelser kodet med UTF-16 skal starte med et byte-order-mark. Meddelelser kodet med UTF-8 kan starte med et byte-order-mark.

I OIOXML elektronisk regning er UTF-8 kodningen af Unicode valgt som enkodningsformat. [Fremhævet 20. april 05]

Supplerende begrundelse: De eksempler der indeholder en fuld meddelelse i "Bekendtgørelse om information i OIOXML elektronisk afregning med offentlige myndigheder" viser begge brugen af UTF-8. UBL-standarden, som OIOXML elektronisk regning bygger på, stiller ligeledes krav om at UTF-8 skal anvendes. Da XML-parsere ikke behøver at understøtte andet end UTF-8 og UTF-16, og da mange forskellige parsere anvendes ved modtagelsen af OIOXML elektronisk regning, og da bekendtgørelsen ikke illustrerer andet end brugen af UTF-8, har det været nødvendigt at gennemtvinge UTF-8 som eneste afleveringsformat.

Bemærk: Åbner man en UTF-8 kodet XML-instans i en editor, som ikke forventer at UTF-8 indeholde et byte-order-mark, kan dette vise sig som tre firkanter i starten af instansen. Dette er et visningsproblem i nogle editorer.

Validering af brugen af UTF-8

For at sikre, at en meddelelse baseret på OIOXML elektronisk regning vil kunne modtages og processeres, skal man sikre sig, at der er overensstemmelse mellem det tegnsæt som er erklæret i XML-erklæringen og det faktiske tegnsæt benyttet i meddelelsen (UTF-8).

Da UTF-8 ikke behøver at indeholde et byte-order-mark (BOM) kan det være svært at afgøre om meddelelsen rent faktisk er en UTF-8-meddelelse. Unicode.org har tilgængeliggjort C-kode, hvormed man kan teste om en streng er UTF-8 kodet med funktionen "isLegalUTF8Sequence".

Afvisning af meddelelser af VANS-operatører

VANS-operatørerne har indført validering af tegnsæt i indkomne meddelelser. Meddelelser, der ikke er kodet i UTF-8 bliver afvist af VANS-operatørerne, medmindre der er truffet særlig aftale med VANS-leverandøren om konvertering fra et tegnsæt til et andet.

Sidst opdateret 12.08.2010 kl. 13.51
Til top