IT

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

lottoking 2020. 3. 29. 09:13
반응형

XML 스키마 (XSD) 유효성 검사 도구? [닫은]


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

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

스키마 검사기를 번들로 제공하지는 않지만 개발 중에 개발자 만 사용할 수 있지만 상업적 용도에 적합한 무료 도구를 선호합니다.

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


몇 가지 연구를 거친 후에 가장 좋은 대답은 Xerces 라고 생각합니다 .Xerces모든 XSD를 구현하므로 크로스 플랫폼이며 널리 사용됩니다. 기본 JRE 파서 (일반적으로 Xerces)를 사용하여 명령 줄에서 유효성을 검사하기 위해 github 에서 작은 Java 프로젝트를 만들었습니다 . 이것은 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 사양의 복잡성 때문입니다. 여러 도구를 사용하여 스키마를 테스트 할 수 있습니다.

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


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 파서로 사용합니다.


http://www.xmlvalidation.com/

( "외부 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

반응형