Nápověda:Použití RELAX NG pro popis XML

Z VirtlabWiki

(Rozdíly mezi verzemi)
Přejít na: navigace, hledání
Verze z 19:52, 15. 8. 2008
Zap113 (Diskuse | příspěvky)
('''JING''')
← Předchozí porovnání
Verze z 19:57, 15. 8. 2008
Zap113 (Diskuse | příspěvky)
(JING)
Následující porovnání →
Řádka 24: Řádka 24:
-== JING ==+== JING: ==
-Nebo můžeme pro validaci použít Java validator:'''Jing'''.+Také můžeme pro validaci použít Java validator:'''Jing'''.
java –jar jing.jar [-c –e …] <soubor schématu> [<XML dokument>] java –jar jing.jar [-c –e …] <soubor schématu> [<XML dokument>]
* -c: schéma používá kompaktní syntaxi * -c: schéma používá kompaktní syntaxi
Řádka 34: Řádka 34:
Pokud je schéma správné a xml soubor validní proti uvedenému schématu, program Jing negeneruje '''žádný výpis'''. Pokud validace neproběhla správně Jing vypíše chyby. Pokud je schéma správné a xml soubor validní proti uvedenému schématu, program Jing negeneruje '''žádný výpis'''. Pokud validace neproběhla správně Jing vypíše chyby.
-Odkazy:+ 
 +== Odkazy: ==
 + 
 +* http://relaxng.org
* http://cz.php.net/manual/cs/ref.dom.php * http://cz.php.net/manual/cs/ref.dom.php
* http://en.wikipedia.org/wiki/RELAX_NG * http://en.wikipedia.org/wiki/RELAX_NG
 +* http://www.thaiopensource.com/relaxng/jing.html
 +* http://karussell.wordpress.com/2008/02/22/relax-ng
 +* http://relaxng.org/tutorial-20011203.html
[[Kategorie:HOW-TO]] [[Kategorie:HOW-TO]]
[[Kategorie:XML]] [[Kategorie:XML]]

Verze z 19:57, 15. 8. 2008

Obsah

O co jde?

RELAX NG (REgular LAnguage for XML Next Generation) je jeden z mnoha jazyků pro popis struktury XML. Narozdíl od DTD, které je starší, umožňuje použití datových typů. Můžeme například specifikovat, že jde o číslo nebo řetězec a navíc určit jeho minimální a maximální hodnotu.

Např. chceme, aby element "heslo" byl řetězec s minimálně 4 a maximálně 20 znaky:

<element name="heslo">
  <data type="string">
    <param name="minLength">4</param>
    <param name="maxLength">20</param>
  </data>
</element>


Jak na validaci

Přestože se nejedná o jazyk oficiálně schválený W3C (tato skupina vytvořila vlastní XML schéma), je hojně používaný (dokonce prý i některými pracovními skupinami ve W3C :-) ).

Pro validaci XML dokumentů proti RELAX NG existuje množství nástrojů. V linuxu je standardně obsažena utilitka xmllint, která dokáže XML validovat proti mnoha jazykům (DTD, W3C XML schema, RELAX NG,....)

Validace proti RELAX NG:

xmllint -relaxng relax_schema.rng k_validaci.xml

Tento příkaz načte schéma ze souboru relax_schema.rng, zkontroluje, zda toto schéma neobsahuje syntaktickou chybu a poté jej aplikuje na xml soubor k validaci. Na výstup pak vypíše odpověď, zda soubor validací prošel nebo ne. Součástí výstupu je také celý validovaný soubor. Ten však nemusíme vždy chtít vypisovat - v tom případě použijeme ještě parametr -noout, který způsobí potlačení "zbytečných" výpisů.


JING:

Také můžeme pro validaci použít Java validator:Jing.

java –jar jing.jar [-c –e …] <soubor schématu> [<XML dokument>]
  • -c: schéma používá kompaktní syntaxi
  • -e enc: určení kódování pro načtení schématu

XML soubor je volitelný. Pokud zadáme jen soubor schématu bude se validovat schéma, pokud uvedeme také soubor XML provede se validace daného souboru proti uvedenému schématu.

Pokud je schéma správné a xml soubor validní proti uvedenému schématu, program Jing negeneruje žádný výpis. Pokud validace neproběhla správně Jing vypíše chyby.


Odkazy:

Osobní nástroje