World Library  
Flag as Inappropriate
Email this Article

Relax Ng

Article Id: WHEBN0000347005
Reproduction Date:

Title: Relax Ng  
Author: World Heritage Encyclopedia
Language: English
Subject: XML schema, Office Open XML, Text Encoding Initiative, XHTML Modularization, TREX
Collection: 2001 Introductions, Data Modeling Languages, Iso/Iec Standards, Xml, Xml-Based Standards
Publisher: World Heritage Encyclopedia

Relax Ng

Filename extension .rng
Internet media type application/xml, text/xml
Type of format XML Schema language
Extended from XML

In computing, RELAX NG (REgular LAnguage for XML Next Generation) is a schema language for XML - a RELAX NG schema specifies a pattern for the structure and content of an XML document. A RELAX NG schema is itself an XML document but RELAX NG also offers a popular compact, non-XML syntax.[1] Compared to other XML schema languages RELAX NG is considered relatively simple.

It was defined by a committee specification of the ISO/IEC 19757: Document Schema Definition Languages (DSDL).[5][6] ISO/IEC 19757-2 was developed by ISO/IEC JTC1/SC34 and published in its first version in 2003.[7]


  • Schema examples 1
    • XML syntax 1.1
    • Compact syntax 1.2
  • Comparison with W3C XML Schema 2
  • Filename extensions 3
  • See also 4
  • References 5
  • External links 6

Schema examples

Suppose we want to define an extremely simple XML markup scheme for a book: a book is defined as a sequence of one or more pages; each page contains text only. A sample XML document instance might be:

  This is page one.
  This is page two.

XML syntax

A RELAX NG schema can be written in a nested structure by defining a root element that contains further element definitions, which may themselves contain embedded definitions. A schema for our book in this style, using the full XML syntax, would be written:


Nested structure becomes unwieldy with many sublevels and cannot define recursive elements, so most complex RELAX NG schemas use references to named pattern definitions located separately in the schema. Here, a "flattened schema" defines precisely the same book markup as the previous example:


Compact syntax

RELAX NG compact syntax is a non-XML format inspired by extended Backus-Naur form and regular expressions, designed so that it can be unambiguously translated to its XML counterpart, and back again, with one-to-one correspondence in structure and meaning, in much the same way that Simple Outline XML (SOX) relates to XML. It shares many features with the syntax of DTDs. Here is the compact form of the above schema:

element book
    element page { text }+

With named patterns, this can be flattened to:

start = element book { page+ }
page = element page { text }

A compact RELAX NG parser will treat these two as the same pattern.

Comparison with W3C XML Schema

Although the RELAX NG specification was developed at roughly the same time as the W3C XML Schema specification, the latter was arguably better known and more widely implemented in both open-source and proprietary XML parsers and editors when it became a W3C Recommendation in 2001. Since then, however, RELAX NG support has increasingly found its way into XML software, and its acceptance has been aided by its adoption as a primary schema for popular document-centric markup languages such as DocBook, the TEI Guidelines, OpenDocument, and EPUB.

RELAX NG shares with W3C XML Schema many features that set both apart from traditional DTDs: data typing, regular expression support, namespace support, ability to reference complex definitions.

Filename extensions

By informal convention, RELAX NG schemas in the regular syntax are typically named with the filename extension ".rng". For schemas in the compact syntax, the extension ".rnc" is used.

See also


  1. ^ RELAX NG Compact Syntax
  2. ^ James Clark. """TREX - Tree Regular Expressions for XML - "TREX has been merged with RELAX to create RELAX NG.. Retrieved 2009-12-28. 
  3. ^ Murata Makoto (2002-04-03). """RELAX (Regular Language description for XML) -- "RELAX NG of OASIS. It is a schema language created by unifying RELAX Core and TREX.. Retrieved 2009-12-28. 
  4. ^ "TREX and RELAX Unified as RELAX NG, a Lightweight XML Language Validation Specification.". Cover Pages. 2001-06-05. Retrieved 2009-12-28. 
  5. ^ RELAX NG Specification
  6. ^ RELAX NG Technical Committee
  7. ^ ISO. "ISO/IEC 19757-2:2003 - Information technology -- Document Schema Definition Language (DSDL) -- Part 2: Regular-grammar-based validation -- RELAX NG". ISO. Retrieved 2009-12-28. 

External links

  • RELAX NG home page
  • "The Design of RELAX NG" by James Clark
  • RELAX NG tutorial for the XML syntax
  • RELAX NG tutorial for the compact syntax
  • Design patterns for structuring XML documents
  • RELAX NG Book by Eric van der Vlist, released under the GNU Free Documentation License
  • Relax NG Reference by ZVON
  • RELAX NG Java community projects at
  • Sun Multi-Schema Validator (MSV) open-source Java XML toolkit
  • Relax NG Compact Syntax validator open-source C program
  • XSD to Relax NG Converter Web-based converter
This article was sourced from Creative Commons Attribution-ShareAlike License; additional terms may apply. World Heritage Encyclopedia content is assembled from numerous content providers, Open Access Publishing, and in compliance with The Fair Access to Science and Technology Research Act (FASTR), Wikimedia Foundation, Inc., Public Library of Science, The Encyclopedia of Life, Open Book Publishers (OBP), PubMed, U.S. National Library of Medicine, National Center for Biotechnology Information, U.S. National Library of Medicine, National Institutes of Health (NIH), U.S. Department of Health & Human Services, and, which sources content from all federal, state, local, tribal, and territorial government publication portals (.gov, .mil, .edu). Funding for and content contributors is made possible from the U.S. Congress, E-Government Act of 2002.
Crowd sourced content that is contributed to World Heritage Encyclopedia is peer reviewed and edited by our editorial staff to ensure quality scholarly research articles.
By using this site, you agree to the Terms of Use and Privacy Policy. World Heritage Encyclopedia™ is a registered trademark of the World Public Library Association, a non-profit organization.

Copyright © World Library Foundation. All rights reserved. eBooks from Project Gutenberg are sponsored by the World Library Foundation,
a 501c(4) Member's Support Non-Profit Organization, and is NOT affiliated with any governmental agency or department.