# XBUP - Dokumentace: Lidská rozhraní

### Úvod

Tento dokument je součástí dokumentace projektu eXtensible Binary Universal Protocol. Obsahuje popis ...

O úroveň výše

### Obsah

1. Popis
1.1. Motivace
1.2. Textová rozhraní
1.2.1. Textový vstup
1.2.2. Virtualizace textové konzoly
1.2.2.1. Transparentní překlad na straně klienta
1.2.2.2. Transparentní překlad na straně serveru
1.2.3. XML-like syntaxe
1.3. Grafická rozhraní

### 1. Popis

Mezi hlavní rozhraní pro zpřístupnění dokumentů lidem patří především jednotné vizuální zobrazování obsahu ve formě vhodné pro porozumění člověkem.

### 1.1. Motivace

Podobně jako je používán textový editor jako standartizovaný překladač čísel (textu v kódu ASCII) na grafické symboly, by měla být definována vhodná rozhraní i pro zpřístupnění binární struktury protokolu XBUP.

### 1.2. Textová rozhraní

Jedním z možných zobrazení je vypsání dokumentu v textovém tvaru s využitím vhodné textové gramatiky. Pro výpis stromové struktury je možné například použít XML syntaxi, či jinou obdobu. Nejvhodnější se jeví umožnit více možných syntaxí, nebo zvolit jedinou. Vhodnost textové syntaxe je však dosti subjektivní záležitost, proto bude spíše vhodné zvolit preferovanou syntaxi, ale umožnit i použití dalších alternativ.

### 1.2.1. Textový vstup

Lze umožnit uživatelům vytvářet nový dokument z textového tvaru. V takovém případě je však nutné zvážit, jakým způsobem bude zpracováván chybný vstup a rozpoznáno napojování odlišných specifikací na syntaxi. Z možných řešení se nabízí:

- Upozornit uživatele na chyby v syntaxi a neumožnit uložení - zřejmě ignorování chyb by mohlo vést ke ztrátě dat.
- Znemožnit napsání nevalidního dokumentu - omezit psaní textu tak, aby byl vždy automaticky doplnitelný na platný tvar.
- Upozornit uživatele na chyby a uložit dokument včetně nesprávných částí pomocí speciálních bloků.

### 1.2.2. Virtualizace textové konzoly

Je v zájmu projektu nabídnout i textové rozhraní pro přístup k službám, stejně jako textový překlad komunikace. Ten by měl probíhat automatizovaně podle definovaných pravidel a gramatik.

Virtuální konzole umožňuje procházet obsah souboru, jako by jednotlivé úrovně stromu byly součástí systému souboru. Dále by mělo být možné provádět některé základní operace, jako je přidávání uzlu, odebrání, editace a podobně.

### 1.2.2.1. Transparentní překlad na straně klienta

Základní varianta překládá textové příkazy na straně klienta tak, aby byla přes komunikační rozhraní přenášena data v protokolu XBUP. Ke komunikaci je definováno rozhraní protokolu XBUP pro příjem vzdálených volání.

### 1.2.2.2. Transparentní překlad na straně serveru

Druhá z možných vyriant, vhodná především pro implementaci kompatibility a propojení s existujícími službami, překládá příkazy z textové konzoly přímo na straně serveru. To znamená, že příkazy jsou přenášeny přes síťovou vrstvu v textovém tvaru, například i s použitím stávajích technologií.

### 1.2.3. XML-like syntaxe

Jedním z příkladů textové reprezentace je textový tvar značkovacího jazyka XML.

Úroveň nula je možné reprezentovat například následujícím způsobem:

<xbup bytesize="7" version="0" signature="1">
<node terminated="true/false" /> // Kořenový uzel
<attribute>x</attribute>
...
<attribute>x</attribute>
<node> // Poduzel
<attribute>0</attribute>
</node>
<data>XASfdsfASD/*asd</data> // Data v kódování BASE64
</node>
</xbup>

Pořadí v jakém jsou bloky a atributy uváděny odpovídá výskytu v dokumentu. Text tagu atribut je nezáporné celé číslo. Každý uzel musí mít alespoň jeden atribut.

Úroveň 1 přidává tagu "node" XML atributy group a block, jejichž hodnoty jsou textové názvy odpovídajících specifikací XBUP dokumentu.

Kromě toho na začátku je tagu xbup přidána následující reprezentace specifikace dokumentu:

<specification>
<group name="jméno">
<block name="jméno"/>
...
<block name="jméno"/>
</group>
...
<group name="jméno">
<block name="jméno"/>
...
<block name="jméno"/>
</group>
</specification>

Úroveň 2 pak tagu "attribute" přidává XML atributy name a type, pro něž se v části specifikace objeví tagy <attrib type="typ" name="jméno"/> jako podtagy tagů "block".

Za předpokladu, že dva atributy nebudou mít stejné jméno, je možné použít následující XML syntaxi:

<!xbup bytesize="7" version="0" signature="1">
<název_skupiny:název_bloku id="index" term="true/false" název_atributu="hodnota" ... >
<podblok .../>
...
<data>Base64 nebo hexadecimálně kódované data</data>
<podblok .../>
</název_skupiny:název_bloku>

Případně by také bylo možné pro bloky zavést speciální hodnoty pro toto textové vyjádření.

### 1.3. Grafická rozhraní

Další z možností zobrazení je například výpis seznamu položek s grafickým odsazením a znázorněním náležitosti pomocí čar. Toto zobrazení stromu je dostupné ve většině moderních operačních systémů a je použito jako výchozí i v editoru XBEditor.

Homepage: http://xbup.sf.net
License: GNU Free Documentation License (FDL)
Latest update: 2007-05-14