RELAXOVAT NG

Aktuální verze stránky ještě nebyla zkontrolována zkušenými přispěvateli a může se výrazně lišit od verze recenzované 10. září 2017; kontroly vyžadují 4 úpravy .

RELAX NG ( REgular LANguage for XML Next Generation ) je jedním z jazyků pro popis struktury XML dokumentu. Vzhledem k tomu, že jde o dokument XML sám o sobě, schéma v tomto formátu lze zapsat pomocí alternativní, kompaktnější syntaxe [1] . V porovnání s jinými jazyky schémat je RELAX NG relativně jednoduchý. RELAX NG byl vyvinut v OASIS a poprvé publikován v roce 2003 [2] . Soubory obsahující schémata RELAX NG mají obvykle v kompaktní syntaxi příponu „.rng“ nebo „.rnc“.

Schematický příklad

Uvedený příklad je zjednodušený XML představující knihu: kniha se skládá z jedné nebo více stránek a každá stránka obsahuje pouze text:

<kniha> <stránka> První stránka . </page> <page> Strana dvě. </page> </book>

Syntaxe XML

Schéma ve formátu RELAX NG lze zapsat v hierarchické struktuře počínaje kořenovým prvkem, který obsahuje další definice prvků, které zase mohou obsahovat vnořené definice. Schéma v tomto stylu pro výše uvedené označení je napsáno takto:

<element name= "book" xmlns= "http://relaxng.org/ns/structure/1.0" > <oneOrMore> <element name= "page" > <text/> </element> </oneOrMore> </ prvek>

Vnořená struktura se může velmi rozrůst a je nemožné s její pomocí popsat rekurzivní prvky. Tento nedostatek je překonán pomocí pojmenovaných vzorů , které jsou ve schématu umístěny samostatně:

<grammar xmlns= "http://relaxng.org/ns/structure/1.0" > <start> <název prvku = "kniha" > <oneOrMore> <ref name= "page" /> </oneOrMore> </element > </start> <define name= "page" > <element name= "page" > <text/> </element> </define> </grammar>

Kompaktní syntaxe

RELAX NG Compact Syntaxe je non-XML formát založený na Extended Backus-Naur formě a regulárních výrazech , navržený tak, aby jej bylo možné jednoznačně přeložit do az XML. Také se podobá syntaxi DTD . V kompaktní podobě vypadá výše uvedený diagram takto:

kniha prvků { stránka prvku { text }+ }

Nebo s pojmenovanými vzory :

začátek = kniha prvků { stránka + } page = element page { text }

Porovnání s jinými schématy XML

V současné době má RELAX NG, vyvinutý přibližně ve stejné době jako XML Schema , poměrně širokou podporu v editorech a parserech XML. RELAX NG se používá jako primární schéma pro některé značkovací jazyky zaměřené na dokumenty, jako jsou DocBook a OpenDocument .

RELAX NG, stejně jako XML Schema, podporuje mnoho funkcí: typování dat , regulární výrazy , jmenné prostory a schopnost odkazovat na složité definice.

Viz také

Odkazy

Poznámky

  1. RELAX NG Kompaktní syntaxe . Získáno 12. dubna 2010. Archivováno z originálu 16. června 2010.
  2. ISO. ISO/IEC 19757-2:2003 - Informační technologie -- Document Schema Definition Language (DSDL) -- Část 2: Ověřování na základě běžné gramatiky -- RELAX NG (mrtvý odkaz) . ISO. Archivováno z originálu 23. dubna 2012.