xml 예제
XML 스키마(XSD) 유효성 검사 도구? (10)
DecisionSoft의 온라인 XML 스키마 검사기 를 사용하면 주어진 스키마에 대해 XML 파일을 검사 할 수 있습니다.
사무실에서 우리는 현재 주어진 스키마에 대해 XML 파일을 생성하는 응용 프로그램을 작성하고 있습니다. .XSD 파일에 스키마가 있습니다.
생성 된 XML이 스키마와 일치하는지 자동 테스트를 위해 사용할 수있는 도구 또는 라이브러리가 있습니까?
개발 과정에서 개발자가 사용할 수 있도록 스키마 검사기를 번들로 묶지는 않겠지 만 상업적으로 사용하기에 적합한 무료 도구를 선호합니다.
개발 언어는 C ++입니다. 차이가 있다면 xml 파일을 생성 한 다음 테스트에서 별도의 프로그램을 호출하여 유효성 검사를 수행해야한다고 생각하지는 않습니다.
Windows의 경우 무료 XML 메모장 2007이 있습니다. 유효성을 검사 할 XSD를 선택할 수 있습니다.
XML에서 XSD를 검증하고 생성하는 훌륭한 비주얼 도구는 직관적이고 단순한 IntelliJ IDEA입니다.
나는 Xerces를 사용한다.
나는 지금 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에서 사용할 수 있습니다.
Xerces 의 C ++ 버전 도 있습니다. 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를 사용합니다.
( "외부 XML 스키마에 대해 유효성 확인"상자를 확인하십시오)
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