릴렉스 NG

RELAX NG
릴렉스 NG
파일 이름 확장자
.rng
인터넷 미디어 유형
응용 프로그램/xml, 텍스트/xml
포맷의 종류XML 스키마 언어
확장원XML

컴퓨팅에서 RELEX NG(Regular LAnguage for XML Next Generation)는 XML용 스키마 언어입니다.RELEX NG 스키마는 XML 문서의 구조와 내용의 패턴을 지정합니다.RELEX NG 스키마는 그 자체가 XML 문서이지만 RELEX NG는 널리 사용되는 콤팩트한 [1]비XML 구문도 제공합니다.다른 XML 스키마 언어에 비해 RELEX NG는 비교적 단순하다고 생각됩니다.

2001년과 2002년에 무라타 마코토RELEX제임스 클락의 [2][3][4]TREX기초한 OASIS RELEX NG 기술 위원회의 위원회 사양 및 국제 표준 ISO/IEC 19757: Document Schema Definition Languages(DSDL)[5][6] 파트 2에 의해 정의되었습니다.ISO/IEC 19757-2는 ISO/IEC JTC1/SC34에 의해 개발되어 2003년에 [7]첫 번째 버전으로 발행되었습니다.

스키마 예시

책에 대해 극히 단순한 XML 마크업 방식을 정의하는 경우를 가정해 보겠습니다.책은 1페이지 이상의 시퀀스로 정의됩니다.각 페이지에는 텍스트만 포함됩니다.XML 문서 인스턴스의 예는 다음과 같습니다.

<book> <페이지>이것은 1페이지입니다.</page> <페이지>이것은 2페이지입니다.</page> </book>

XML 구문

RELEX NG 스키마는 추가 요소 정의를 포함하는 루트 요소를 정의함으로써 중첩된 구조로 작성할 수 있습니다. 루트 요소 자체에는 포함된 정의가 포함될 수 있습니다.완전한 XML 구문을 사용하여 이 스타일의 책 스키마를 작성합니다.

<클라이언트> 이름="책" xmlns="http://relaxng.org/ns/structure/1.0">    <OneMore>       <>요소 name="페이지">          <>text/>.       <>/element>.    <>/oneOrMore>. <>/element>. 

중첩된 구조 많은 sublevels과, 재귀적 요소를 규정할 수 없이 불편할 때 이름 패턴의 정의를 별도로 스키마에 위치해 있는 가장 복잡한 RELAX NGschemas 사용 참조이다.여기, 한"스키마를 납작하게"의 예제: 똑같은 책 가격 인상을 정의합니다.

<클라이언트> xmlns="http://relaxng.org/ns/structure/1.0">    <시작>       <클라이언트> 이름="책">          <OneMore>             <참조: 이름="페이지"/>          <>/oneOrMore>.       <>/element>.    </start>    <클라이언트> 이름="페이지">       <클라이언트> 이름="페이지">          <>text/>.       <>/element>.    </filters> </filters> 

콤팩트 구문

RELEX NG 콤팩트 구문은 확장 Backus-Naur 형식과 정규 표현에서 영감을 얻은 비 XML 형식입니다.SOX(Simple Outline XML)가 XML과 관련된 것과 거의 같은 방식으로 XML의 대응 형식과 의미를 명확하게 변환하고 다시 한 번 확인할 수 있도록 설계되었습니다.h DTD 구문위의 스키마의 콤팩트한 형식을 다음에 나타냅니다.

요소 북 { 요소 페이지 { text } + }

명명된 패턴을 사용하면 다음과 같이 평탄화할 수 있습니다.

시작 = 요소 북 { page + } 페이지 = 요소 페이지 { text }

콤팩트 RELEX NG 파서는 이 두 가지를 같은 패턴으로 취급합니다.

W3C XML 스키마와의 비교

RELEX NG 사양은 W3C XML Schema 사양과 거의 동시에 개발되었지만 2001년 W3C 권고안이 되었을 때 오픈 소스 및 독점 XML 파서 및 편집기에서 더 잘 알려져 더 널리 구현되었습니다.그러나 이후 RELEX NG 지원은 XML 소프트웨어에 점점 더 많이 보급되어 DocBook, TEI Guidelines, OpenDocument, EPUB널리 사용되는 문서 중심 마크업 언어의 주요 스키마로 채택되고 있습니다.

RELEX NG는 W3C XML Schema와 공유하며 데이터 입력, 정규 표현 지원, 네임스페이스 지원, 복잡한 정의 참조 기능 등 기존 DTD와 차별화되는 많은 기능을 제공합니다.

파일 이름 확장자

비공식 규약에 따라 정규 구문의 RELEX NG 스키마는 일반적으로 파일 확장자 ".rng"로 명명됩니다.콤팩트 구문의 스키마의 경우 확장자 ".rnc"가 사용됩니다.

결정론

완화 NG 스키마는 반드시 "결정적" 또는 "명확한" 것은 아닙니다.

완화 NG를 DTD로 변환

완화 NG 스키마는 [1]에 있는 Trang을 적용하여 DTD로 변환할 수 있습니다.Trang에 대한 설명서는 [2]에 있습니다.Trang은 OASIS DITA 1.3 스키마를 DTD로 변환할 수 없으므로 다음과 같은 메시지가 나타납니다.

죄송합니다. 정의를 combine="choice"와 결합하는 것은 지원되지 않습니다.

「 」를 참조해 주세요.

레퍼런스

  1. ^ RELEX NG 콤팩트 구문
  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. ^ 릴렉스 NG 사양
  6. ^ 릴랙스 NG 기술위원회
  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.

외부 링크