602SQL-Úplná dokumentace Index  

Formát elementárních dat v XML souboru

XML rozšíření vytváří a očekává zápis elementárních dat v XML souboru ve formátech popsaných níže (pokud nejsou formáty nastaveny autorem DADu již při návrhu v dialogu Vlastnosti XML textu nebo Vlastnosti XML atributu).

Hodnotě NULL v databázi odpovídá prázdný údaj v XML.

Pokud aplikace vyžaduje přenos dat v jiných formátech, musí provést explicitní konverzi do a ze znakových řetězců.

Znaková data

Znaková data (včetně CLOBů) se mezi databází a XML souborem přenášejí beze změny. Rozdělení textů do řádek zůstává zachováno. Při přenosu se provádí překódování, pokud je v databázi a v XML zvolen odlišný způsob kódování znaků.

Desetinná čísla

Pro oddělení desetinných míst pro REAL i NUMERIC se používá implicitně tečka, nezávisle na lokálním nastavení desetinného oddělovače. Lze v návrhu změnit.

Reálné číslo je exportováno v desetinném nebo semilogaritmickém tvaru, při importu se akceptují oba formáty.

Binární data

Při zápisu binárních dat z databáze do XML souboru se využívá kódování BASE64. Toto kódování využívá písmena anglické abecedy, číslice, znaky "+", "/" a "=". Jeho výhodou je, že nehrozí poškození binárních dat při různých překladech národních abeced. Binární data zabírají v XML souboru o třetinu více místa, než při přímém binárním uložení.

Binární data pevné délky jsou zprava doplněna nulami, binární data proměnné délky si exportem a importem zachovají svou původní délku.

Při importu se zpětně převádějí zakódovaná data do původní podoby.

Jelikož je kódování BASE64 jedním z internetových standardů (PEM, RFC 1421), je pravděpodobné, že takto zakódovaný XML soubor je stále přenositelný mezi heterogenními systémy.

Alternativně lze binární data kódovat v hexa-tvaru. Toto kódování využívá číslice a znaky A až F. Každý bajt je reprezentován dvěma znaky. Pro práci s tímto kódováním zadejte formát Hex.

Datum a čas

XML rozšíření pracuje implicitně s reprezentací data a času v XML souboru dle specifikace jednoduchých datových typů date, time a dateTime v XSD:
čas: 23:59:59[.000][+02:00]
datum: 2003-12-31
timestamp: 2003-12-31T23:59:59[+02:00]

Na vstupu se připouští uvedení časové zóny i u data, ale 602SQL ji ignoruje.

Formát dat lze pro jednotlivé elementy nastavit.

Typ Boolean

Logické hodnoty se v XML reprezentují jako true a false, v souladu se specifikací jednoduchého typu Boolean v XSD.

I formát pro tento typ lze nastavit.

Vlastní nastavení formátů dat

V dialozích Vlastnosti XML textu nebo Vlastnosti XML atributu lze jednotlivě nastavovat formát výstupních i vstupních dat odlišně od standardu uvedeného výše. Veškeré formáty se uvádějí v jediném editačním poli nazvaném Formát.

Vlastní formát pro typ BOOLEAN

Zápis formátu tvoří dva řetězce oddělené čárkou. První řetězec odpovídá hodnotě FALSE, druhý hodnotě TRUE.

Vlastní formát pro typ REAL

Zápis formátu tvoří řetězec složený ze čtyř částí. První znak je desetinný oddělovač, druhý znak (nepovinný) je oddělovač tisíců, následuje počet des. míst a znak E nebo F pro semilogaritmický nebo des. tvar (např. pro formát s des. čárkou, oddělovačem tvořeným mezerou, 10 desetin. místy a des. zápisem použijte řetězec ", 10F" (bez uvozovek)).

Vlastní formát pro typ NUMERIC

Zápis formátu je řetězec tvořený jedním znakem, kterým je desetinný oddělovač.

Vlastní formát pro typ DATE

Zápis formátu tvoří řetězec reprezentující masku formátu, kde D značí den, M značí měsíc, Y značí rok, MM znamená uvedení vedoucí nuly apod., ostatní jsou oddělovače (např. maska pro 2004-08-25 je YYYY-MM-DD).

Vlastní formát pro typ TIME

Zápis formátu tvoří řetězec reprezentující masku formátu, kde h značí hodiny, m minuty a s sekundy - všechny znaky malé (např. maska pro 12:00:01 je hh:mm:ss).

Vlastní formát pro typ TIMESTAMP

Zápis formátu tvoří řetězec reprezentující masku formátu, kde kde D značí den, M značí měsíc, Y značí rok, h značí hodiny, m minuty a s sekundy (např. maska pro 2004-08-25 12:00:01 je YYYY-MM-DD hh:mm:ss).

Obecná transformace

Je-li požadovaný formát natolik odlišný, že nejde vytvořit či analyzovat pomocí tohoto jednoduchého nástroje, musí se použít obecný překlad pomocí SQL funkce (tlačítko Překlad v dialozích Vlastnosti XML textu a Vlastnosti XML atributu).