マイクロソフトのxsdを使用して、.NETファイルからxsdを生成する傾向があります。また、xmlstarletを使用してxmlのセクションを解析します。あなたに役立つ最後の無料ツールはaltovaxmlで、次のURLから入手できます:http : //www.altova.com/download_components.html。
これにより、すべてのxmlファイルをスキャンして、xmlを解析することで使用するxsdを取得できます。
# 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ファイル内のelementタグを使用して正しいXSDを取得できます。
最終的な結果として、bash関数を呼び出してすべてのXMLファイルをスキャンし、検証することができます。複数のサブディレクトリにある場合でも。