XML formát přenosové dávky lze popsat následujícím DTD schématem:
<!ENTITY %NAME "Name NMTOKEN #REQUIRED">
<!ELEMENT waknst(nstheader, nstdata, nstdeletedinfo)>
<!ELEMENT nstheader(datdavky, emailuzlu?, gdavky, gtypupren, naztypupren, guzlu, nazuzlu, popisdavky?, nazdb, verdb, pubkeyuzlu?)> Hlavička přenosové dávky
<!ELEMENT datdavky (#PCDATA)> Datum dávky
<!ELEMENT emailuzlu (#PCDATA)> Adresa odesílatele
<!ELEMENT gdavky (#PCDATA)> GUID dávky
<!ELEMENT gtypupren (#PCDATA)> Typ přenosu (viz dále)
<!ELEMENT naztypupren (#PCDATA)> Název přenosu
<!ELEMENT guzlu (#PCDATA)> GUID uzlu odesílatele
<!ELEMENT nazuzlu (#PCDATA)> Název uzlu odesílatele
<!ELEMENT popisdavky (#PCDATA)> Popis dávky
<!ELEMENT nazdb (#PCDATA)> Název databáze (Kis)
<!ELEMENT verdb (#PCDATA)> Verze databáze
<!ELEMENT pubkeyuzlu (#PCDATA)> Veřejný RSA klíč odesílatele zakódovaný BASE64
<!ELEMENT nstdata(Table+)> Data jednotlivých tabulek
<!ELEMENT Table(Row+)> Tabulka
<!ATTLIST Name %NAME;> Jméno tabulky
<!ELEMENT Row(n.., g.., nUzlu, w_datupd, ...)> Záznam tabulky
<!ELEMENT n..(#PCDATA)> Primární klíč záznamu
<!ELEMENT g..(#PCDATA)> GUID záznamu
<!ELEMENT nUzlu(#PCDATA)> Primární klíč uzlu, který pořídil záznam
<!ELEMENT w_datupd(#PCDATA)> Datum poslední modifikace
<!ELEMENT nstdeletedinfo (Table+)> GUID smazaných záznamů v jednotlivých tabulkách
<!ELEMENT Table(g+)> Tabulka
<!ATTLIST Name %NAME;> Jméno tabulky
<!ELEMENT g (#PCDATA)> GUID záznamu
Přenosový soubor má tedy tři části a to sice hlavičku, přenášená data a seznam GUID smazaných záznamů.
Hodnoty tagů gtypupren a naztypupren v hlavičce jsou následující:
|
Uživatelské označení |
gtypupren |
naztypupren |
|
Export databáze |
CB75631A-01D0-4E06-9C0E-7DD1514F0ADD |
Celá databáze systému KIS |
|
Export navštívenky |
D3E0F56B-3F9A-45E8-A19E-F964DB41AF78 |
Přenos údajů o vlastním uzlu |
|
Export podle dokumentu nebo kapitoly krizového plánu |
14270BCC-21C7-4941-B72F-10819C11D2E7 |
Dokument KP nebo kapitola KP systému KIS |
Popis dávky není povinný, stejně jako není povinný veřejný RSA klíč uzlu, pokud se nevyužívá elektronický podpis.
Přenášená data obsahují tagy Table se jmény tabulek. Každá tabulka obsahuje tagy Row s daty jednotlivých záznamů. Každý záznam je popsán tagy, odpovídající jeho polím. Z hlediska technologie NST jsou významná čtyři pole, která jsou obsažena v každé tabulce:
|
Označení pole |
Název pole |
|
n...(n + jméno tabulky, např. nOrg) |
primární klíč záznamu |
|
g...(g + jméno tabulky, např. gOrg) |
GUID záznamu |
|
nUzlu |
Identifikátor uzlu |
|
w_datupd |
Datum poslední modifikace záznamu |
Technologie NST umožňuje dva formáty přenosové dávky a to sice XML a NST. Formát NST je XML formát opatřený hlavičkou a komprimovaným obsahem. Formát souboru NST je popsán v následující kapitole.
Dále uvedená tabulka představuje popis významu jednotlivých bytů v souboru typu NST:
|
Adresa |
Délka |
Popis |
|
0H |
2H |
Délka hlavičky v bytech |
|
2H |
3H |
Identifikátor NST |
|
5H |
1H |
Číslo verze |
|
6H |
1H |
Číslo subverze |
|
7H |
4H |
Typ přenosu – v NST vždy 00 00 00 00 |
|
0BH |
4H |
Alg. komprese 00 00 00 00 bez komprese 01 00 00 00 gzip |
|
0FH |
4H |
Alg. šifrování 00 00 00 00 bez šifrování 01 00 00 00 rijndael |
|
13H |
4H |
Alg. podpisu 00 00 00 00 bez podpisu 01 00 00 00 RSA |
|
17H |
400H |
Klíč pro dešifrování obsahu šifrovaný algoritmem RSA |
|
417H |
80H |
Elektronický podpis obsahu |
|
497H |
|
Kopie hlavičky přenosové dávky (tag nstheader) |
|
497H |
25H |
GUID dávky |
|
4BC |
25H |
GUID uzlu odesílatele |
|
4E1H |
25H |
GUID typu přenosu |
|
506H |
FBH |
Název typu přenosu |
|
601H |
FBH |
Název uzlu |
|
6FCH |
FBH |
E-mail uzlu |
|
7F7H |
15H |
Datum dávky |
|
80CH |
100H |
Popis dávky |
|
90CH |
51H |
Název databáze |
|
95DH |
51H |
Verze databáze |
|
9AEH |
100H |
Veřejný klíč uzlu odesílatele |
|
AAEH |
|
Data přenosové dávky (XML soubor), dle volby komprimovaný a šifrovaný |
GUID
Pro jednoznačnou identifikaci záznamu je použit tzv. identifikátor GUID (Globally Unique Identifier), který je možné generovat například pomocí systémové funkce v operačních systémech MS Windows. Identifikátor je generován dle algoritmu specifikovaného OSF DCE, 3. Identifikátor je generován na základě aktuálního času, čítače volání funkce a jednoznačného identifikátoru daného hardwarovou konfigurací počítače. Má formát 32-ti místného čísla doplněného čtyřmi oddělovacími znaky na 36-ti znakový řetězec a s dostatečnou pravděpodobností se lze spolehnout na to, že nebudou nikdy generovány dva shodné identifikátory.
Referenční integrita
Pro zajištění referenční integrity jsou záznamy v tabulkách opatřeny primárním klíčem, což je automaticky generované 32 bitové číslo. Zatímco GUID záznamu se nemění po celou dobu existence záznamu, při zajištění referenční integrity se záznamy v jiných tabulkách může být primární klíč v databázi různých uzlů různý. Toto řešení dovoluje replikaci dat mezi uzly, aniž by docházelo ke konfliktům v primárních klíčích záznamů.
V databázi existuje tabulka uzlů, obsahující GUID všech uzlů. Primární klíč záznamů v této tabulce je obsažen ve všech tabulkách databáze a identifikuje uzel vlastníka záznamu, který jediný ho smí modifikovat a mazat. Dále tato tabulka obsahuje veřejné RSA klíče uzlů pro elektronický podpis přenosových dávek.