릴렉스 NG
RELAX 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와 차별화되는 많은 기능을 제공합니다.
파일 이름 확장자
이 섹션은 어떠한 출처도 인용하지 않습니다.(2019년 9월 (이 및 ) |
비공식 규약에 따라 정규 구문의 RELEX NG 스키마는 일반적으로 파일 확장자 ".rng"로 명명됩니다.콤팩트 구문의 스키마의 경우 확장자 ".rnc"가 사용됩니다.
결정론
완화 NG 스키마는 반드시 "결정적" 또는 "명확한" 것은 아닙니다.
완화 NG를 DTD로 변환
완화 NG 스키마는 [1]에 있는 Trang을 적용하여 DTD로 변환할 수 있습니다.Trang에 대한 설명서는 [2]에 있습니다.Trang은 OASIS DITA 1.3 스키마를 DTD로 변환할 수 없으므로 다음과 같은 메시지가 나타납니다.
죄송합니다. 정의를 combine="choice"와 결합하는 것은 지원되지 않습니다.
「 」를 참조해 주세요.
- XML 스키마
- DTD(문서 유형 정의)
- 문서 구조 설명
- XML 스키마(W3C)
- 스키마트론
- ODD(한 개의 문서만으로 모든 것이 가능)
- SXML
레퍼런스
- ^ RELEX NG 콤팩트 구문
- ^ James Clark. "TREX - Tree Regular Expressions for XML - "TREX has been merged with RELAX to create RELAX NG."". Retrieved 2009-12-28.
- ^ 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.
- ^ "TREX and RELAX Unified as RELAX NG, a Lightweight XML Language Validation Specification". Cover Pages. 2001-06-05. Retrieved 2009-12-28.
- ^ 릴렉스 NG 사양
- ^ 릴랙스 NG 기술위원회
- ^ 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.
외부 링크
- 릴렉스 NG 홈페이지
- James Clark의 "The Design of RELEX NG"
- XML 구문에 대한 RELEX NG 튜토리얼
- 콤팩트 구문을 위한 RELEX NG 튜토리얼
- XML 문서 구조를 위한 설계 패턴
- Eric van der Vlist의 REACE NG Book, GNU Free Documentation License로 출시
- ZVON에 의한 NG 레퍼런스 완화
- 릴렉스 NG Java 커뮤니티 프로젝트(java.net)
- Sun Multi-Schema Validator(MSV) 오픈 소스 Java XML 툴킷
- NG 콤팩트 구문 검증기 오픈 소스 C 프로그램 완화
- XSD를 통한 NG 컨버터 웹 기반 컨버터 완화
- https://github.com/relaxng/jing-trang