문제

서버측 Java의 스키마에 대해 XML 문서의 유효성을 검사하려면 내장된 JRE Xerces 구현과 javax.xml.validation.Schema를 사용합니다.잘 작동하지만 유효성 검사가 실패하면 Xerces는 거의 쓸모가 없는 오류 메시지를 표시합니다. 예를 들면 다음과 같습니다.

cvc-minLength-valid: Value '' with length = '0' is not facet-valid with respect to minLength '1' for type 'PopulatedStringType'

유효성 검사에 실패한 XML 문서의 특정 부분을 진단하고 추적하는 데 시간이 걸릴 수 있으며 이는 모두 잘못된 오류 메시지 때문입니다.

그래서 내 질문은 유효성 검사 실패에 대해 더 유용한 출력을 제공하는 스키마에 대해 XML 유효성을 검사하는 대체 수단을 사용합니까?

이것은 서버 측 Java이므로 "XML Spy 사용" 또는 이와 유사한 말을 하지 마십시오.

도움이 되었습니까?

해결책

유효성 검사를 위해 핸들러에서 해당 메시지와 함께 saxparseexception을 받아야합니다. 열 번호와 줄 번호 XML 파일에서. 사실이 아닌가?

다른 팁

우리는 사용 오라클의 XDK(XML 개발 키트) 여기에는 유효성 검사 파서와 XSLT 2.0이 포함된 xmlparserv2.jar이 포함되어 있습니다.이는 JAXB API를 사용하므로 이를 클래스 경로에 추가하고 가져오기만 변경하면 됩니다.완벽하지 않은 오류가 발생하지만 귀하의 예보다 더 쉽게 이해할 수 있다고 말하고 싶습니다.

xmlstarlet (xmlstar.sourceforge.net/)은 명령 줄 툴킷입니다. 주어진 XML에 대해 runtime.exec ()를 사용하여 실행할 수 있습니다 (XML이 파일에있는 한).

우리는 사용 비버.

Castor는 Java [TM]을위한 오픈 소스 데이터 바인딩 프레임 워크입니다. Java 개체, XML 문서 및 관계형 테이블 사이의 가장 짧은 경로입니다. Castor는 Java-to-XML 바인딩, Java-to-SQL 지속성 등을 제공합니다.

XERCES 오류를 해석하는 데 어려움이 있고 문서에서 규칙을 위반 한 위치를 강조하는 데 도움이되는 것을 원하는 경우 XML 작성 도구 중 일부를 확인하십시오. 산소.

alt text
(원천: Oxygenxml.com)

스키마를 인스턴스 XML 문서와 연결하면 편집기는 문서의 문제 영역을 강조하고 위반에 대한 설명을 제공합니다.

또한 다른 엔진을 사용하여 검증을 수행 할 수 있습니다.

산소는 XERCES, LIBXML, XSV, Saxon SA, MSXML4.0, MSXML .NET 및 SQC에 대한 내장 지원이 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top