셰마트론
Schematron스키마트론은 XML 트리에 패턴이 있는지 없는지에 대한 주장을 하기 위한 규칙 기반의 검증 언어다.소수의 요소와 XPath를 사용하여 XML로 표현되는 구조 스키마 언어다.null
많은 구현에서 Schematron 스키마 XML은 XSLT를 사용할 수 있는 모든 곳에 배포하기 위해 일반 XSLT 코드로 처리된다.null
쉐마트론은 XML 스키마, DTD와 같은 다른 XML 스키마 언어가 할 수 없는 방식으로 제약을 표현할 수 있다.예를 들어, 그것은 요소의 내용을 그것의 형제자매 중 한 명이 통제하도록 요구할 수 있다.또는 어떤 요소인지에 관계없이 루트 요소가 특정 속성을 가져야 한다고 요청하거나 요구할 수 있다.또한 스키마트론은 여러 XML 파일들 사이에 필요한 관계를 지정할 수 있다.null
제약 조건과 내용 규칙은 숫자 쉐마트론 오류 코드를 의미 있는 사용자 오류 메시지로 변환할 수 있도록 "일반 영어"(또는 모든 언어) 유효성 검사 오류 메시지와 연관될 수 있다.null
현재 ISO 권장사항은 정보 기술, DSDL(Document Schema Definition Language), Part 3: 규칙 기반 검증, Schematron(ISO/IEC 19757-3:2020)이다.null
사용하다
제한조건은 XSLT 코드로 전개할 수 있는 XPath 기반 언어를 사용하여 Schematron에 명시되어 있어 다음과 같은 응용에 실용적이다.
- 구조 유효성 확인 부속서
- Schematron은 공동발생 제약조건, 비정규 제약조건, 문서간 제약조건에 대한 시험을 통해 DTD, REACE NG 또는 XML Schema와 같은 언어로 표현할 수 있는 검증을 확장할 수 있다.[1]
- 경량 비즈니스 규칙 엔진
- Schematron은 포괄적인 Rete 규칙 엔진은 아니지만 XML 문서로 복잡한 구조에 대한 규칙을 표현하는 데 사용될 수 있다.
- XML 편집기 구문 강조 표시 규칙
- 일부 XML 편집자는 쉐마트론 규칙을 사용하여 XML 파일의 오류를 조건부로 강조 표시한다.모든 XML 편집자가 Schematron을 지원하는 것은 아니다.
버전
Schematron은 대만 Academy Sinica Computing Center에 있는 동안 Rick Jelliffe에 의해 발명되었다.그는 Schematron을 "다른 스키마 언어가 도달할 수 없는 부분에 도달하기 위한 깃털 걸레"라고 묘사했다.null
Schematron의 가장 일반적인 버전은 다음과 같다.
- 셰마트론 1.0(1999년)
- 스키마트론 1.3(2000):이 버전은 http://xml.ascc.net/schematron/이라는 네임스페이스를 사용했다.그것은 플러그인 아키텍처를 통한 XSLT 구현에 의해 지원되었다.
- Schematron 1.5(2001):이 버전은 널리 구현되었고 여전히 찾을 수 있다.
- Schematron 1.6 (2002):이 버전은 ISO Schematron의 기초였고 그것에 의해 폐기되었다.
- ISO 스키마트론(2006):이 버전은 몇 가지 기능을 정규화하고 XML 출력 형식인 SVRL(Schematron Validation Report Language)을 제공한다.[2]그것은 새로운 네임스페이스 http://purl.oclc.org/dsdl/schematron을 사용한다.
- ISO 스키마트론(2010)
- ISO 스키마트론(2016):이 버전은 XSLT2에 대한 지원을 추가했다.
- ISO 스키마트론(2020):이 버전은 XSLT3에 대한 지원을 추가했다.
ISO 표준으로서의 도식론
Schematron은 정보 기술, DSDL(Document Schema Definition Language), Part 3: 규칙 기반 검증, Schematron(ISO/IEC 19757-3:2020)으로서 ISO에 의해 표준화되었다.null
이 표준은 현재 ISO 공개 사용 사양 목록에 나열되지 않았다.종이 버전은 ISO 또는 국가 표준 기관에서 구입할 수 있다.null
ISO/IEC FDIS 19757-3을 사용하는 스키마는 다음 네임스페이스를 사용해야 한다.
http://purl.oclc.org/dsdl/schematron
샘플 규칙
스키마트론 규칙은 표준 XML 편집기 또는 XForms 애플리케이션을 사용하여 만들 수 있다.다음은 샘플 스키마:
<procession xmlns="http://purl.oclc.org/dsdl/schematron"><패턴> 날짜 규칙 <규칙 컨텍스트="Contract"><procord test="ContractDate < current-date()""ContractDate는 향후 계약이 허용되지 않기 때문에 과거여야 한다.</> </규칙> </패턴> </패턴> </패턴> </패턴>.
이 규칙은 ContractDate XML 요소에 현재 날짜 이전 날짜가 있는지 확인하십시오.이 규칙이 실패하면 유효성 검사가 실패하고 주장 요소의 본문인 오류 메시지가 사용자에게 반환된다.null
실행
스키마트론 스키마는 XML 파이프라인에서 사용하기에 적합하므로 워크플로 프로세스 설계자가 XML 조작 도구를 사용하여 규칙을 작성하고 유지관리할 수 있다.예를 들어 W3C의 XProc 파이프라인 언어는 "validate-with-schematron" 단계를 통해 Schematron 스키마 처리를 기본적으로 지원한다.[3]null
Schematron 스키마는 XSLT 스타일시트로 변환될 수 있기 때문에 XSLT 변환을 지원하는 XML 파이프라인에서 사용될 수 있다.Apache Ant 태스크를 사용하여 Schematron 규칙을 XSLT 파일로 변환할 수 있다.null
또한 스트리밍을 하는 Innovimax/INRIA의 Java 구현, QuiXSchematron과 같은 네이티브 Schematron 구현도 존재한다.null
참고 항목
- XML 스키마 언어 비교 - 다른 XML 스키마 언어와 비교.
- 서비스 모델링 언어 - 서비스 모델링 언어는 Schematron을 사용한다.
- 문서 스키마 정의 언어
참조
- ^ Fennell, Philip (June 2014). "Schematron - More useful than you'd thought". XML London 2014: 103–112. doi:10.14337/XMLLondon14.Fennell01. ISBN 978-0-9926471-1-7.
- ^ Part 3: Rule-based validation — Schematron (ISO/IEC 19757-3:2006) (zip), Information technology — Document Schema Definition Languages (DSDL), ISO/IEC, 2006-06-01, retrieved 2014-06-15
- ^ "7.2.5 p:validate-with-schematron". XProc: An XML Pipeline Language. World Wide Web Consortium. 2010-05-11. Retrieved 2012-11-12.