Komprimované XML je velmi použitelný standard pro přenos tabulkových dat. Standard je navržen tak, aby co nejméně zatěžoval připojení k síti, tedy aby přenášená data byla co nejmenší.
XML dokument zapsaný v tomto formátu ztrácí svoji základní vlastnost - hierarchický datový model (1:N vazby). Může už pak vyjadřovat pouze množinu záznamů s určitým počtem atributů. To se výborně hodí zejména pro export jedné relace (tabulky) z relační databáze (MySQL).
Příklad:
klasický zápis s vazbami 1:N
<shop>
<category name="damske">
<product id="1" name="Zupan" price="300" />
<product id="4" name="Sukne" price="450" />
<product id="5" name="Halenka" price="200" />
</category>
<category name="panske">
<product id="2" name="Triko" price="250" />
<product id="3" name="Svetr" price="400" />
<product id="7" name="Kalhoty" price="1100" />
<product id="6" name="Rolak" price="320" />
</category>
</shop>
zápis bez vazeb 1:N (bez hierarchického modelu)
<shop>
<product id="1" name="Zupan" price="300" category="damske" />
<product id="4" name="Sukne" price="450" category="damske" />
<product id="5" name="Halenka" price="200" category="damske" />
<product id="2" name="Triko" price="250" category="panske" />
<product id="3" name="Svetr" price="400" category="panske" />
<product id="7" name="Kalhoty" price="1100" category="panske" />
<product id="6" name="Rolak" price="320" category="panske" />
</shop>
zápis pomocí komprimovaného XML
<root fields="name|price|category">
<e xk="1" a="Zupan" b="300" c="damske" />
<e xk="4" a="Sukne" b="450" c="damske" />
<e xk="5" a="Halenka" b="200" c="damske" />
<e xk="2" a="Triko" b="250" c="panske" />
<e xk="3" a="Svetr" b="400" c="panske" />
<e xk="7" a="Kalhoty" b="1100" c="panske" />
<e xk="6" a="Rolak" b="320" c="panske" />
</root>
Srovnání
zápis | počet znaků | úspora |
klasický | 425 | - |
klasický bez 1:N | 459 | -8% |
komprimovaný | 351 | 17% |
Komprimované XML nenajde využití pouze v B2B komunikacích, ale zejména v aplikacích s AJAXem, kde velikost přenášených dat hraje zásadní roli.
Bohužel nejsou k tomuto dni na internetu žádné podrobnější informace. Nenašel jsem dokonce ani specifikaci. Kdyby se někomu podařilo najít více, podělte se!
Toto XML _neni_ komprimovane, jsou v nem pouze zvoleny uspornejsi metody, cele je to v kvalite designu struktury a chce to trochu praxe, ale tam kde je potreba vykonna webova aplikace setrici prostredky sec to jde v zadnem pripade XML nema co delat, navic atributy pojmenovane jako a, b, c, ... zpusobuji horsi orientaci v textu a XML celkove dnes jeste stale neni "dobastlene", viz XSLT, XUL, xForms, xPath, xMath a nevim co jeste, nic z toho nefunguje spolehliveji nez klasicke desitky let programatory overene metody pro ukladani dat