XML 스키마 (XSD) 유효성 검사 도구? [닫은]
사무실에서는 현재 주어진 스키마에 대해 XML 파일을 생성하는 응용 프로그램을 작성하고 있습니다. .XSD 파일에 스키마가 있습니다.
생성 된 XML이 스키마와 일치하는지 확인하기 위해 자동화 된 테스트에 사용할 수있는 도구 또는 라이브러리가 있습니까?
스키마 검사기를 번들로 제공하지는 않지만 개발 중에 개발자 만 사용할 수 있지만 상업적 용도에 적합한 무료 도구를 선호합니다.
xml 파일을 생성 한 다음 테스트에서 별도의 프로그램을 호출하여 유효성을 검사해야한다고 생각하지는 않지만 개발 언어는 C ++입니다.
몇 가지 연구를 거친 후에 가장 좋은 대답은 Xerces 라고 생각합니다 .Xerces 는 모든 XSD를 구현하므로 크로스 플랫폼이며 널리 사용됩니다. 기본 JRE 파서 (일반적으로 Xerces)를 사용하여 명령 줄에서 유효성을 검사하기 위해 github 에서 작은 Java 프로젝트를 만들었습니다 . 이것은 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 사양의 복잡성 때문입니다. 여러 도구를 사용하여 스키마를 테스트 할 수 있습니다.
업데이트 : 나는 이것을 블로그 게시물 에서 확장했습니다 .
XSD에 대한 XML 검증 및 유효성 검사를 제공하는 XML Tools 라는 메모장 ++ 용 플러그인이 있습니다 .
사용 방법은 여기에서 확인할 수 있습니다 .
xmlstarlet 은 다음과 같은 작업을 수행하는 명령 줄 도구입니다.
$ xmlstarlet val --help XMLStarlet Toolkit : XML 문서 유효성 검사 사용법 : xmlstarlet val <options> [<xml-file-or-uri> ...] 여기서 <옵션> -w 또는 --well-formed-올바른 형식 만 검증 (기본값) -d 또는 --dtd <dtd-file>-DTD에 대해 유효성 검증 -s 또는 --xsd <xsd-file>-XSD 스키마에 대해 유효성 검사 -E 또는 --embed-내장 DTD를 사용하여 유효성 검사 -r 또는 --relaxng <rng-file>-Relax-NG 스키마에 대해 유효성 검증 -e 또는 --err : stderr에 자세한 오류 메시지를 인쇄합니다 -b 또는 --list-bad-유효성을 검사하지 않는 파일 만 나열 -g 또는 --list-good-유효성을 검사하는 파일 만 나열 -q 또는 --quiet-파일을 나열하지 않습니다 (반환 결과 코드 만 해당) 참고 : XML 스키마는 아직 불완전하여 완전히 지원되지 않습니다 libxml2 지원 (http://xmlsoft.org 참조) XMLStarlet은 쿼리 / 편집 / 체크 / 변환을위한 명령 행 툴킷입니다 XML 문서 (자세한 내용은 http://xmlstar.sourceforge.net/ 참조)
귀하의 경우 사용법은 다음과 같습니다.
xmlstarlet val --xsd your_schema.xsd your_file.xml
Windows의 경우 무료 XML Notepad 2007이 있습니다. XSD를 선택하여 유효성을 검사 할 수 있습니다
업데이트 : XML 도구 플러그인과 함께 메모장 ++을 사용하는 것이 좋습니다.
DecisionSoft 의 온라인 XML 스키마 유효성 검증기 를 사용하면 지정된 스키마와 비교하여 XML 파일을 확인할 수 있습니다.
Xerces를 사용합니다.
http://xerces.apache.org/xerces-c/
빠르고 쉬운 XML 유효성 검사를위한 XML 편집기는 http://www.xml-buddy.com 에서 제공됩니다 .
설치 프로그램을 실행하기 만하면 그 후에 사용하기 쉬운 데스크탑 응용 프로그램이나 명령 줄로 XML 파일의 유효성을 검사 할 수 있습니다. 또한 Schematron 및 RelaxNG도 지원합니다. 배치 유효성 검사도 지원됩니다 ...
2012 년 1 월 1 일 업데이트 : 명령 줄 도구는 무료이며 Xerces를 XML 파서로 사용합니다.
( "외부 XML 스키마에 대해 유효성 검증"상자를 선택하십시오)
나는 단지 스키마를 배우고 있습니다. RELAX NG를 사용하고 xmllint를 사용하여 유효성을 검사하고 있습니다. xmlllint에서 나오는 오류로 인해 좌절하고 있습니다. 나는 그들이 좀 더 유익하기를 바랍니다.
XML에 잘못된 속성이있는 경우 xmllint는 지원되지 않는 속성의 이름을 알려줍니다. 그러나 XML에 속성이 없으면 요소를 확인할 수 없다는 메시지가 나타납니다.
매우 복잡한 규칙을 사용하여 매우 복잡한 XML을 작성 중이며 누락 된 속성을 추적하는 데 시간이 오래 걸립니다.
업데이트 : 방금 좋아하는 Java 도구를 찾았습니다. xmllint와 같은 명령 줄에서 실행할 수 있으며 다음과 같은 RELAX NG를 지원합니다. https://msv.dev.java.net/
나는 매우 유용 'corefiling'에서이 온라인 유효성을 발견 -
http://www.corefiling.com/opensource/schemaValidate.html
내 xsd의 유효성을 검사하는 몇 가지 도구를 시도한 후에 이것은 자세한 오류 정보를 제공하는 도구이므로 스키마의 오류를 수정할 수있었습니다.
XML에서 XSD를 검증하고 생성하는 훌륭한 시각적 도구 중 하나는 직관적이고 간단한 IntelliJ IDEA입니다.
XML 스키마를 Microsoft Visual Studio의 Intellisense에 연결할 수 있습니다. 이 옵션은 실시간 유효성 검사와 자동 완성 기능을 모두 제공합니다.
Microsoft Visual C ++ 2010 Express 무료 사본에서이 정확한 시나리오를 실행하고 있습니다.
또 다른 온라인 XML 스키마 (XSD) 유효성 검사기 : http://www.utilities-online.info/xsdvalidation/ .
Microsoft의 xsd를 사용하여 .NET 파일에서 xsd를 생성하는 경향이 있습니다. 또한 xmlstarlet을 사용하여 XML 섹션을 구문 분석합니다. 귀하에게 유용한 최종 무료 도구는 altovaxml이며이 URL은 http://www.altova.com/download_components.html에 있습니다.
이를 통해 xml을 파싱하여 사용할 xsd를 선택하는 모든 xml 파일을 검색 할 수 있습니다.
# Function:
# verifyschemas - Will validate all xml files in a configuration directory against the schemas in the passed in directory
# Parameters:
# The directory where the schema *.xsd files are located. Must be using dos pathing like: VerifySchemas "c:\\XMLSchemas\\"
# Requirements:
# Must be in the directory where the configuration files are located
#
verifyschemas()
{
for FILENAME in $(find . -name '*.xml' -print0 | xargs -0)
do
local SchemaFile=$1$(getconfignamefromxml $FILENAME).xsd
altovaxml /validate $FILENAME /schema $SchemaFile > ~/temp.txt 2> /dev/null
if [ $? -ne 0 ]; then
printf "Failed to verify: "
cat ~/temp.txt | tail -1 | tr -d '\r'
printf " - $FILENAME with $SchemaFile\n"
fi
done
}
내가 사용하는 XML을 생성하려면 xsd DOTNET.dll / type : CFGCLASS 및 schema0.xsd의 이름을 바꾸십시오. CFGCLASS.xsd
내가 사용하는 xsd 이름을 얻으려면 xmlstarlet sel -t -m / XXX / * -v local-name () $ 1 | sed 's / $ //'
이를 통해 xml 파일 내의 요소 태그를 사용하여 올바른 XSD를 선택할 수 있습니다.
결과적으로 bash 함수를 호출하여 모든 XML 파일을 스캔하고 확인할 수 있습니다. 여러 하위 디렉토리에 있더라도.
참고 URL : https://stackoverflow.com/questions/124865/xml-schema-xsd-validation-tool
'IT' 카테고리의 다른 글
'-업스트림'은 무엇을합니까? (0) | 2020.03.29 |
---|---|
소셜 활동 스트림을 구현하는 가장 좋은 방법은 무엇입니까? (0) | 2020.03.29 |
iOS 6 앱-iPhone 5 화면 크기를 처리하는 방법은 무엇입니까? (0) | 2020.03.29 |
IntelliJ IDEA에서 Eclipse의 Ctrl + O (Show Outline) 단축키는 무엇입니까? (0) | 2020.03.29 |
정적이 아닌 변수는 정적 컨텍스트에서 참조 할 수 없습니다 (0) | 2020.03.29 |