XBUP - Specifikace: Úroveň 1Tento dokument je součástí dokumentace projektu eXtensible Binary Universal Protocol. Obsahuje specifikaci 1. úrovně protokolu.
1. Popis
2. Typ bloku
3. Specifikační bloky
3.1. Specifikace dokumentu (0)
3.2. Specifikace skupiny (1)
3.3. Specifikace bloku (2)
3.4. Seznamy specifikací (3,4,5)
3.5. Odkazy na specifikace z katalogu (6,7,8)
3.6. Odkazy na položky specifikace z katalogu (9,10,11)
4. Katalog
4.1. Architektura katalogu
4.2. Platnost katalogu
5. Zpracování dokumentu
5.1. Validita dokumentu
5.2. Rozhraní parseru
5.3. Typové třídy
Úroveň 1 je rozšířením úrovně 0 zavedením typu bloku a validaci platnosti. Obsahuje specifikaci základních bloků a katalogu specifikací.
Na detailnější popis a argumentaci zvoleného řešení se můžete podívat do sekce vývoj protokolu.
Pro atributy bloku platí, že neuvedený atribut má implicitní hodnotu 0. První dva atributy jsou interpretovány následovně:
UBNatural - BlockGroup
UBNatural - BlockType
Bloky jsou organizovány do skupin Groups. Skupina bloků s indexem 0 obsahuje specifikační bloky, které by měly být vestavěné. Specifikační bloky slouží především pro specifikaci rozsahu platných hodnot typu bloku.
Hodnota BlockGroup určuje do které skupiny daný blok patří. Hodnota BlockType pak určuje konkrétní typ bloku z dané skupiny. Význam jednotlivých skupin a typů bloků by měl být definován na začátku dokumentu. Definici je možné vynechat především v případě, kdy se jedná o přenos bloků na rezervovaném kanále, kdy jsou skupiny a odpovídající typy předem známy.
Více o zavedení typů se můžete dozvědět v sekci zavedení typů.
Primární účel těchto bloků je umožnit další definici dokumentu. Typ dokumentu určuje nejvyšší blok rezervace skupin, obvykle kořenový blok. Co představují jednotlivé vyšší indexy bloku je určeno základními bloky určujícími typ dokumentu. V základní variantě je v dokumentu obsažen pouze blok rezervace skupin a odkaz na externí veřejně dostupnou definici dokumentu. Nic však nebrání tomu, aby definice dokumentu byla přímo jeho součástí, i když tento přístup není doporučován a v pozdějších verzích může být tento způsob ještě striktněji omezen.
Pro specifikační bloky je potřeba zavést typ atributu UBPointer, který slouží pro základní odkazování bloků. Je jím možné odkazovat pouze vlastní podblok použitím hodnoty indexu jeho pořadí mezi podbloky. Jedná se o typ UBNatural , přičemž hodnota 0 znamená prázdný ukazatel a vyšší hodnoty pobloky podle pořadí ve kterém jsou uvedeny.
Rezervační blok určuje povolené rozmezí skupin. Tento blok by se měl nacházet na začátku každého souboru. Má tyto hodnoty:
UBNatural - GroupsReservedU podbloků tohoto bloku je povolen hodnot skupin v intervalu PreserveCount + 1 .. PreserveCount + GroupsReserved + 1, přičemž pokud není hodnota StartFrom uvedena, nebo je její hodnota 0, bere se nejvyšší dosud rezervovaný blok v aktuálním nebo rodičovských blocích + 1. Hodnota GroupSpecList není povinná a odkazuje na blok obsahující specifikaci těchto rezervovaných skupin, tedy typ 3, nebo 6.
Hodnota DocumentRootPointer umožňuje odkazovat primární obsah dokumentu. Je silně doporučeno, aby hodnota GroupSpecList byla menší než DocumentRoot a umožnila proudové zpracování specifikace dokumentu.
Tento blok nemusí být obsažen například v případě, že se dvě aplikace předem domluvili na daném rozsahu a vyměňují si data, která tuto dohodu respektují.
Tento základní blok umožňuje specifikovat skupinu bloků, určuje kolik typů bloků je v dané skupině povoleno. Jednotlivé bloky by pak měly být dle indexu specifikovány v podblocích seznamu odkazovaného hodnotou BlockSpecList.
UBNatural - BlocksCount
UBPointer - BlockSpecList
Tento základní blok umožňuje specifikovat povolený počet atributů bloku. Zřejmě uvedené tři základní bloky určují povolený rozsah hodnot typu bloku a počet povolených atributů.
UBENatural - AttribsCount
UBPointer - AttribList
Hodnota AttribListPointer odkazuje na případný seznam atributů bloku, pouze pro úrovně 2 a vyšší.
Tento blok umožňuje realizovat seznamu definic skupin. Uvádí se:
UBList - Items
Položky seznamu by měly být podle odpovídajícího čísla typu Specifikace dokumentu, skupiny či bloku nebo odkaz na blok tohoto typu. Pokud je počet seznamů menší než vyžadovaný, chybějící položky jsou nedefinovány. Pokud je větší, jsou přebývající bloky ignorovány.
Je možné použít standardního katalogu specifikací. Jak aplikace získá požadované informace z katalogu je na ní. Bloky mají následující hodnoty:
UBPath - CatalogPath
UBNatural - CatalogItem
UBNatural - Revision
Podle typu bloku je odkazován buď katalog specifikací formátů, skupin, nebo bloků.
Přidáním jedné hodnoty je možné následovat odkaz položky specifikace do katalogu. Jinak je význam obdobný.
UBPath - CatalogPath
UBNatural - CatalogItem
UBNatural - FollowProperty
Katalog typu 1 slouží pro ukládání specifikací dokumentů. Kromě základních údajů můžou být, jako rozšíření, součástí katalogu další údaje.
Na detailnější popis a argumentaci zvoleného řešení se můžete podívat do sekce vývoj katalogu.
Katalog má tři nezávislé stromy, které mají jako listové uzly specifikace formátu (dokumentu), skupiny a bloku. Kromě toho obsahuje specifikace formátu seznam odkazů na specifikace skupin a specifikace skupin obsahují seznam odkazů na specifikace bloků.
Dále platí:
Katalog je platný, pokud jsou splněny následující podmínky:
Práce s dokumentem na 1. úrovni umožňuje standardním způsobem pracovat s typem bloků.
Podobně jako je tomu v případě správně utvořenosti, je obdobně definována i platnost na 1. úrovni. Kromě požadavku na platnost dle úrovně 0, přidává ještě další požadavky, především na kontrolu platných rozsahů povolených typů bloků v dokumentu.
Dokument je platný, pokud platí:
Kontrolu platnosti je možné u parseru ovlivnit příznakem Validate.
Na úrovni 1 vrací parser následující 4 typy položek:
Parsery mají k dispozici následující třídy pro podporu typů bloků:
Homepage: http://xbup.sf.net
License: GNU Free Documentation License (FDL)
Latest update: 2008-04-05