X-definice

X-definice verze 2.0 jsou registrovanou technologií firmy Syntea pro práci s XML dokumenty

X-definice jsou programový nástroj pro popis struktury XML dokumentů. Představují čitelný a lehko udržovatelný prostředek, s jehož pomocí lze vytvářet, validovat a zpracovávat XML dokumenty.

X-definice je šablona, která popisuje strukturu, obsah a zároveň i zpracování XML dokumentů. Pomocí X-definic lze nahradit existující technologie užívané pro validaci (např. DTD, XML Schema), popř. i pro transformaci (např. XSLT transformace) XML dokumentů.

Šablona X-definice, stejně jako popisovaná data, je opět XML dokument, jehož struktura se velmi podobá struktuře popisovaného XML objektu. To umožňuje rychle a víceméně intuitivně navrhnout odpovídající X-definici pro danou třídu XML dokumentů. Výhodou X-definice je mnohem jednodušší způsob zápisu při zachování flexibility, což zvyšuje přehlednost a udržovatelnost těchto šablon.

Programové vybavení X-definic bylo navrženo tak, aby mohlo zpracovávat datové soubory s neomezenou velikostí. V současných projektech se díky X-definicím zpracovávají XML dokumenty o velikostí jednotek až desítek GB.

Tutorial X-definic naleznete ZDE, nebo si X-definice můžete rovnou stáhnout ZDE.
POZOR, dne 19.6.2018 jsme uvolnili zdrojový kód X-definice, který je nyní součastí souboru JAR na našem webu www.xdefinice.cz, v sekci KE STAŽENÍ. Pokud se chcete o X-definicích dozvědět více, navštivte náš web www.xdefinice.cz.

Příklad:
XML  data:

<Nehoda
      id        ="0012"
      casNehody ="2017.05.15T13:45"
      zraneno   ="1"
      usmrceno  ="0"
      skoda     ="345000.00" >
    <SPZ>1A29876</SPZ>
    <SPZ>9B8765</SPZ>
</Nehoda>

X-Definice:

<xd:def xmlns:xd    ="https://www.syntea.cz/xdef/2.0"
      xd:name     ="Nehoda"
      xd:root     ="Nehoda">

    <Nehoda
          id        ="required int()"
          casNehody ="required dateTime()"
          zraneno   ="required int()"
          usmrceno  ="required int()"
          skoda     ="required dec()" >
        <SPZ xd:script="occurs 1..">
            required string(6,7)
        </SPZ>
    </Nehoda>
</xd:def>