xml 예제




XML 스키마(XSD) 유효성 검사 도구? (10)

DecisionSoft의 온라인 XML 스키마 검사기 를 사용하면 주어진 스키마에 대해 XML 파일을 검사 할 수 있습니다.

사무실에서 우리는 현재 주어진 스키마에 대해 XML 파일을 생성하는 응용 프로그램을 작성하고 있습니다. .XSD 파일에 스키마가 있습니다.

생성 된 XML이 스키마와 일치하는지 자동 테스트를 위해 사용할 수있는 도구 또는 라이브러리가 있습니까?

개발 과정에서 개발자가 사용할 수 있도록 스키마 검사기를 번들로 묶지는 않겠지 만 상업적으로 사용하기에 적합한 무료 도구를 선호합니다.

개발 언어는 C ++입니다. 차이가 있다면 xml 파일을 생성 한 다음 테스트에서 별도의 프로그램을 호출하여 유효성 검사를 수행해야한다고 생각하지는 않습니다.


Windows의 경우 무료 XML 메모장 2007이 있습니다. 유효성을 검사 할 XSD를 선택할 수 있습니다.


XML에서 XSD를 검증하고 생성하는 훌륭한 비주얼 도구는 직관적이고 단순한 IntelliJ IDEA입니다.


XSD에 대한 XML 확인 및 유효성 검사를 제공하는 XML Tools 라는 메모장 + + 용 플러그인이 있습니다.

here 에서 사용 방법을 볼 수 있습니다.



나는 지금 Schema를 배우는 중이다. 나는 RELAX NG를 사용하고 xmllint를 사용하여 유효성을 검사합니다. xmlllint에서 나오는 오류로 인해 좌절감을 느낍니다. 나는 그들이 조금 더 유익했으면 좋겠다.

XML에 잘못된 속성이 있으면 xmllint가 지원되지 않는 속성의 이름을 알려줍니다. 그러나 XML에 속성이 누락 된 경우 요소의 유효성을 확인할 수 없다는 메시지가 나타납니다.

매우 복잡한 규칙을 사용하는 매우 복잡한 XML 작업을하고 있습니다. 새로운 속성이므로 누락 된 속성을 추적하는 데 오랜 시간이 걸립니다.

업데이트 : 방금 내가 좋아하는 자바 도구를 발견했습니다. xmllint와 같은 명령 줄에서 실행할 수 있으며 RELAX NG를 지원합니다. https://msv.dev.java.net/


몇 가지 조사를 한 후에 XSD를 구현 한 Xerces 는 크로스 플랫폼이며 널리 사용되는 가장 좋은 대답이라고 생각합니다. 필자는 github에 작은 Java 프로젝트를 생성하여 기본 JRE 파서 (일반적으로 Xerces)를 사용하여 명령 줄에서 유효성을 검사합니다. 이것은 Windows / Mac / Linux에서 사용할 수 있습니다.

XercesC ++ 버전 도 있습니다. StdInParse 유틸리티 를 사용하여 명령 줄에서 호출 할 수 있습니다. 또한 아래 주석 기자는 보다 완벽한 래퍼 유틸리티를 가리 킵니다.

libxml 일부인 xmllint를 사용할 수도 있습니다. 이미 설치되어있을 수 있습니다. 사용 예 :

xmllint --noout --schema XSD_FILE XML_FILE

한 가지 문제는 libxml이 모든 사양을 구현하지 못하기 때문에 문제가 발생할 수 있다는 것입니다.

또는 Windows 사용자 인 경우 msxml 을 사용할 수 있지만이 DDJ 기사 에서 설명한 GUI와 같이 일종의 래퍼가 필요합니다. 그러나 Windows에서 대부분의 사람들은 SteveC가 제안한 Notepad ++ ( Nate의 답변에 설명 된대로) 또는 XML Notepad 2007 과 같은 XML 편집기를 사용합니다 (여기서 언급하지 않는 여러 상업 편집기도 있음).

마지막으로, 불행하게도 다른 프로그램이 다른 결과를 보일 것입니다. 이는 주로 XSD 사양의 복잡성 때문입니다. 여러 도구를 사용하여 스키마를 테스트 할 수 있습니다.

업데이트 : 나는 이것을 블로그 게시물 에서 확장했습니다.


쉽고 빠르게 XML을 검증 할 수있는 XML 편집기는 http://www.xml-buddy.com 에서 제공됩니다 http://www.xml-buddy.com

설치 프로그램을 실행하기 만하면 사용하기 쉬운 데스크톱 응용 프로그램이나 명령 줄을 사용하여 XML 파일의 유효성을 검사 할 수 있습니다. 또한 Schematron 및 RelaxNG에 대한 지원도받을 수 있습니다. 배치 유효성 검사도 지원됩니다 ...

2012 년 1 월 13 일 업데이트 : 명령 줄 도구는 무료로 사용할 수 있으며 XML 파서로 Xerces를 사용합니다.



xmlstarlet 은이 작업을 수행하는 명령 줄 도구입니다.

$ xmlstarlet val --help
XMLStarlet Toolkit: Validate XML document(s)
Usage: xmlstarlet val <options> [ <xml-file-or-uri> ... ]
where <options>
  -w or --well-formed        - validate well-formedness only (default)
  -d or --dtd <dtd-file>     - validate against DTD
  -s or --xsd <xsd-file>     - validate against XSD schema
  -E or --embed              - validate using embedded DTD
  -r or --relaxng <rng-file> - validate against Relax-NG schema
  -e or --err                - print verbose error messages on stderr
  -b or --list-bad           - list only files which do not validate
  -g or --list-good          - list only files which validate
  -q or --quiet              - do not list files (return result code only)

NOTE: XML Schemas are not fully supported yet due to its incomplete
      support in libxml2 (see http://xmlsoft.org)

XMLStarlet is a command line toolkit to query/edit/check/transform
XML documents (for more information see http://xmlstar.sourceforge.net/)

귀하의 경우에 사용법은 다음과 같습니다.

xmlstarlet val --xsd your_schema.xsd your_file.xml




schema