•  


RELAX NG - Wikipedia Jump to content

RELAX NG

From Wikipedia, the free 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 OASIS RELAX NG technical committee in 2001 and 2002, based on Murata Makoto 's RELAX and James Clark 's TREX , [2] [3] [4] and also by part two of the international standard ISO / IEC 19757: Document Schema Definition Languages ( DSDL ). [5] [6] ISO/IEC 19757-2 was developed by ISO/IEC JTC 1/SC 34 and published in its first version in 2003. [7]

Schema examples [ edit ]

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:

<book>

  <page>
This
 is
 page
 one.
</page>

  <page>
This
 is
 page
 two.
</page>

</book>

XML syntax [ edit ]

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:

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

   <oneOrMore>

      <element
 name=
"page"
>

         <text/>

      </element>

   </oneOrMore>

</element>

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:

<grammar
 xmlns=
"http://relaxng.org/ns/structure/1.0"
>

   <start>

      <element
 name=
"book"
>

         <oneOrMore>

            <ref
 name=
"page"
/>

         </oneOrMore>

      </element>

   </start>

   <define
 name=
"page"
>

      <element
 name=
"page"
>

         <text/>

      </element>

   </define>

</grammar>

Compact syntax [ edit ]

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 [ edit ]

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 [ edit ]

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.

Determinism [ edit ]

Relax NG schemas are not necessarily "deterministic" or "unambiguous".

Converting Relax NG to DTD [ edit ]

Relax NG schemas can be converted to DTDs by applying Trang which can be found at: [1] . The manual for Trang is located at [2] . Note that Trang is unable to convert the OASIS DITA 1.3 schema to DTDs, failing with messages like:

 sorry, combining definitions with combine="choice" is not supported

See also [ edit ]

References [ edit ]

  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:2008 - Information technology -- Document Schema Definition Language (DSDL) -- Part 2: Regular-grammar-based validation -- RELAX NG" . ISO . Retrieved 2009-12-28 .

External links [ edit ]

- "漢字路" 한글한자자동변환 서비스는 교육부 고전문헌국역지원사업의 지원으로 구축되었습니다.
- "漢字路" 한글한자자동변환 서비스는 전통문화연구회 "울산대학교한국어처리연구실 옥철영(IT융합전공)교수팀"에서 개발한 한글한자자동변환기를 바탕하여 지속적으로 공동 연구 개발하고 있는 서비스입니다.
- 현재 고유명사(인명, 지명등)을 비롯한 여러 변환오류가 있으며 이를 해결하고자 많은 연구 개발을 진행하고자 하고 있습니다. 이를 인지하시고 다른 곳에서 인용시 한자 변환 결과를 한번 더 검토하시고 사용해 주시기 바랍니다.
- 변환오류 및 건의,문의사항은 juntong@juntong.or.kr로 메일로 보내주시면 감사하겠습니다. .
Copyright ⓒ 2020 By '전통문화연구회(傳統文化硏究會)' All Rights reserved.
 한국   대만   중국   일본