XML 스키마(XSD) 검증 도구?
현재 사무실에서 우리는 주어진 스키마에 대해 XML 파일을 생성할 애플리케이션을 작성하고 있습니다..X에 스키마가 있습니다.SD파일.
생성된 XML이 스키마와 일치하는지 확인하기 위해 자동 테스트에 사용할 수 있는 도구나 라이브러리가 있습니까?
우리는 스키마 체커를 번들로 제공하지 않을 것이기 때문에 개발 중에 개발자가 사용하기만 하면 되지만 상업적으로 사용하기에 적합한 무료 툴을 선호합니다.
우리 개발 언어는 차이가 있다면 C++이지만, xml 파일을 생성하고 테스트에서 별도의 프로그램을 호출하여 검증을 할 수는 없을 것 같습니다.
어느 정도 조사해 본 결과, XSD를 모두 구현하는 Xerces가 크로스 플랫폼이고 널리 사용되는 것이 가장 좋은 답이라고 생각합니다.기본 JRE 파서를 사용하여 명령줄에서 검증하기 위해 github에 작은 Java 프로젝트를 만들었습니다. 이 프로젝트는 일반적으로 Xerces입니다.이것은 윈도우/맥/리눅스에서 사용할 수 있습니다.
만약 당신이 그것을 사용하고 싶다면 C++ 버전의 Xerces도 이용 가능합니다.StdInParse 유틸리티를 사용하여 명령줄에서 호출할 수 있습니다.또한 아래 코멘트는 이 보다 완벽한 래퍼 유틸리티를 지적합니다.
libxml의 일부인 xmlint를 사용할 수도 있습니다.이미 설치되어 있을 수도 있습니다.사용 예시:
xmllint --noout --schema XSD_FILE XML_FILE
한 가지 문제는 libxml이 모든 사양을 구현하지 않기 때문에 문제가 발생할 수 있다는 것입니다:(
또는 Windows(윈도우)에 있는 경우 msxml(msxml)을 사용할 수 있지만 이 DDJ 문서에서 설명한 GUI와 같이 이를 호출하기 위한 일종의 래퍼가 필요합니다.그러나 대부분의 Windows 사용자는 Notepad++(Nate의 답변에 설명되어 있음) 또는 Steve C가 제안한 XML Notepad 2007과 같은 XML Editor를 사용하는 것으로 보입니다(여기서는 언급하지 않을 상업용 Editor도 여러 개 있습니다).
마지막으로, 다른 프로그램이 다른 결과를 제공한다는 것을 알게 될 것입니다.이는 주로 XSD 사양의 복잡성에 기인합니다.여러 도구를 사용하여 스키마를 테스트할 수 있습니다.
업데이트: 블로그 게시물에서 이에 대해 자세히 알아봤습니다.
XSD에 대한 XML 검증 및 검증을 제공하는 XML Tools라는 Notepad++용 플러그인이 있습니다.
여기서 사용법을 보실 수 있습니다.
xmlstarlet은 다음과 같은 작업을 수행하는 명령줄 도구입니다.
$ xmlstarlet val --helpXMLStarlet Toolkit: XML 문서의 유효성 검사용도: xmlstarlet val <options> [<xml-file-or-uri> ... ]where <options>-word 또는 --well-formed - well-formed만 검증(기본값)-d 또는 --dtd <dtd-file> - DTD에 대해 검증-s 또는 --xsd <xsd-file> - XSD 스키마에 대해 검증-E 또는 --embedded - 내장된 DTD를 사용하여 검증-r또는 --relaxng <rng-file> - Relax-NG 스키마에 대해 검증합니다.-e 또는 --err - stderr에 자세한 오류 메시지를 인쇄합니다.-b 또는 --list-bad - 유효성을 검사하지 않는 파일만 나열합니다.-g 또는 --list-good - 유효성을 검사하는 파일만 나열합니다.-q 또는 --quiet - 파일을 나열하지 않음(결과 코드만 반환) 참고: XML 스키마가 불완전하기 때문에 아직 완전히 지원되지 않습니다.slibxml2에서 지원(http://xmlsoft.org 참조) XMLstarlet은 쿼리/편집/체크/변환을 위한 명령줄 툴킷입니다.XML 문서(자세한 내용은 http://xmlstar.sourceforge.net/) 참조)
이 경우 사용 용도는 다음과 같습니다.
xmlstarlet val --xsd your_schema.xsd your_file.xml
윈도우의 경우 무료 XML 메모장 2007이 있습니다.XSD를 선택하여 다음에 대해 검증할 수 있습니다.
업데이트: XML Tools 플러그인과 함께 Notepad++를 사용하는 것이 더 좋습니다.
DecisionSoft의 온라인 XML 스키마 Validator를 사용하면 주어진 스키마와 비교하여 XML 파일을 확인할 수 있습니다.
Xerces를 사용합니다.
http://xerces.apache.org/xerces-c/
난 그저 스키마를 배우고 있을 뿐입니다.저는 RELAXENG을 사용하고 xmlint를 사용하여 검증하고 있습니다.xmllint에서 오류가 나와서 답답합니다.그들이 조금 더 많은 정보를 얻었으면 좋겠습니다.
XML에 잘못된 특성이 있으면 xmlint에서 지원되지 않는 특성의 이름을 알려줍니다.그러나 XML에 속성이 없는 경우 요소를 검증할 수 없다는 메시지만 표시됩니다.
저는 매우 복잡한 규칙을 가진 매우 복잡한 XML을 작업하고 있으며, 이 작업은 처음이라 누락된 속성을 추적하는 데 시간이 오래 걸립니다.
업데이트: 방금 내가 많이 좋아하는 자바 도구를 찾았습니다.xmlint처럼 명령줄에서 실행할 수 있으며 RELAXNG: https://msv.dev.java.net/ 을 지원합니다.
는 '가 '' 에서에서 꽤 하다는 것을
://
xsd를 검증하기 위해 몇 가지 도구를 시도한 결과, 자세한 오류 정보를 제공한 것입니다. 그래서 스키마의 오류를 수정할 수 있었습니다.
빠르고 쉬운 XML 검증을 위한 XML 편집기는 http://www.xml-buddy.com 에서 구입할 수 있습니다.
설치 프로그램을 실행한 후 사용하기 쉬운 데스크톱 애플리케이션이나 명령줄을 사용하여 XML 파일의 유효성을 검사할 수 있습니다.이외에도 Schematron과 RelaxNG에 대한 지원도 받을 수 있습니다.배치 유효성 검사도 지원됩니다...
업데이트 1/13/2012:명령줄 도구는 자유롭게 사용할 수 있으며 XML 파서로 Xerces를 사용합니다.
("외부 XML 스키마에 대해 검증" 상자를 선택해야 합니다.)
XML로부터 XSD를 검증하고 생성하기 위한 하나의 훌륭한 시각적 도구는 직관적이고 간단한 IntelliJ IDEA입니다.
XML 스키마를 Microsoft Visual Studio의 Intellisense에 연결할 수 있습니다.이 옵션은 실시간 유효성 검사와 자동 완료 기능을 모두 제공합니다. 이것은 정말 멋진 일입니다.
Microsoft Visual C++ 2010 Express의 무료 복사본에서 이 시나리오를 실행하고 있습니다.
저는 마이크로소프트사의 xsd를 사용하여 a에서 xsd를 생성하는 것을 돕습니다.NET 파일.또한 xmlstarlet을 사용하여 xml의 섹션을 파싱합니다.최종 무료 도구는 altovaxml이며, 이 도구는 다음 URL http://www.altova.com/download_components.html 에서 사용할 수 있습니다.
이것은 xsd가 xml을 파싱하여 사용할 모든 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
}
사용하는 xsd DOTNET.dll /type xsd DOTNET을 생성하려면:CFGCLASS & rename 스키마0.xsd CFGCLASS.xsd
사용하는 xsd 이름을 가져오려면: xmlstarlet sel -t -m /XXX/* -v local-name() $1 | sed's/ $/'
이를 통해 xml 파일 내의 요소 태그를 사용하여 정확한 XSD를 픽업할 수 있습니다.
결과적으로 bash 함수를 호출하여 모든 XML 파일을 스캔하여 확인할 수 있습니다.여러 하위 디렉터리에 있는 경우에도 해당됩니다.
또 다른 XSD(온라인 XML 스키마) 검증자 http://www.utilities-online.info/xsdvalidation/ 입니다.
언급URL : https://stackoverflow.com/questions/124865/xml-schema-xsd-validation-tool
'bestsource' 카테고리의 다른 글
일반 암호로 WordPress 해시 암호 확인 (0) | 2023.10.21 |
---|---|
AngularJS 재스민 테스트 실패: 모듈을 인스턴스화하지 못했습니다. (0) | 2023.10.16 |
페이지를 다시 로드한 후 트위터 부트스트랩으로 현재 탭을 활성화하려면 어떻게 해야 합니까? (0) | 2023.10.16 |
C++ 방식으로 앨리어싱 구조 및 배열 (0) | 2023.10.16 |
사용자 지정 워드프레스 편집기? (0) | 2023.10.16 |