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“.
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>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>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 }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.
ISO | normy|
---|---|
| |
1 až 9999 |
|
10 000 až 19999 |
|
20 000+ | |
Viz také: Seznam článků, jejichž názvy začínají na „ISO“ |