2010-07-01 5 views
1

특정 xml 파일에 대한 유효성 검사 규칙을 지정할 수있는 일종의 규칙 엔진이 필요합니다. 그런 다음 규칙을 읽고 XML에 대해 주장합니다.XML 유효성 검사 - 어떤 규칙 기반 엔진이나 프레임 워크를 사용해야합니까?

가장 좋은 방법은 무엇입니까? XPath 또는 XQuery 또는 XSL 또는 XSD입니까? 아니면 XMLUnit일까요?

나는

<root> 
    <customers> 
    <customer name="Fred"> 
     <contact-details email="[email protected]"> 
    </customer> 
    <customer name="Barney"> 
     <contact-details email="[email protected]"> 
    </customer> 
    <customer name="Fred"> 
     <contact-details email="[email protected]"> 
    </customer> 
    </customers> 
</root> 

그래서 그것을 하나의 규칙으로, 위의 이메일 주소가 다른 것을 감지 것 : 특정 attibutes 비슷한 노드에서 다른 경우, 감지와 같은 예컨대을 물건을 수행해야합니다. xml의 데이터를 외부 참조 데이터와 비교하여 유효성을 검사해야합니다 (예 : 우편 번호 조회 등

규칙을 쉽게 지정하는 데 사용해야하는 제안은 매우 빠르게 실행됩니까? XML과 외부 데이터는 적당히 크며 xml 당 몇 MB가 될 수 있습니다.

일부 규칙은 간단 할 수 있으며 XPath에서 수행 될 수 있습니다. - 검사 필드는 특정 길이이거나 특정 특성에 특정 특성이 채워 졌는지 확인합니다. 여기서는 XSD가 적합합니다. 그러나 외부 데이터를 확인하거나 위와 같은 조치를 취하는 것은 아닙니다. XQuery는 내가 원하는 것입니까?

도움을 주시면 감사하겠습니다.

-Justin

답변

0

이 모든 것이 있습니까?

XSD는 기본적인 XML 유효성 검사를 제공합니다. 엘리먼트가 올바른 childen과 올바른 속성을 갖고 올바른 순서로 존재 하는지를 확인할 수 있습니다. XML과 외부 XML 데이터를 비교한다면 XMLUnit을 사용하는 것이 좋습니다. XML 필드를 다른 필드의 외부 필드 (예 : 우편 번호가 유효한 우편 번호인지 확인)와 비교하는 경우 XPath를 사용할 수 있습니다. 사용자는 각 도구의 기능이 무엇인지 확인하여 유효성 검사를 지원할 수 있습니다.

0

당신은 문법에 있지만, 구문 분석 문서의 찾는 나무 패턴을 기반으로되지 않은 스키마 트론은 다른 스키마 언어의 기본 개념에 차이가 Schematron

에서 살펴 보셔야합니다. 이 방법은 종류의 구조를 으로 표시 할 수 있으며 문법 기반 스키마 언어로는 불편하고 어려울 수 있습니다. XPath 또는 XSLT 표현식 을 알고있는 경우 즉시 Schematron을 사용할 수 있습니다.

+0

감사합니다. Mads, 내가 훑어 볼게! 어떻게 외부 참조에 대해 유효성을 검사합니까? 테스트 할 XML에 병합해야하나요? 나는이 접근법을 좋아한다. 나는 schematron 규칙을 외부에서 유지할 수있다. 그리고 나서 이것들로부터 schematron 문서를 구성한다. 이것은 xml에 적용한다. 확실히 일할 수 있습니다! 다시 한 번 감사드립니다. 저스틴 – Justin

관련 문제