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 파일을 스캔하고 확인할 수 있습니다. 여러 하위 디렉토리에 있더라도.