カスタムツールボックスモジュールに関数を作成し、カスタムxmlファイルを使用して命令を提供するとします($xmlpath
パラメーターを使用して渡されます)。入力が正しいxmlタイプ/構文/フォーマット(正しい要素、ルートノードなど)を使用していることを確認するにはどうすればよいですか?スキーマ(xsd)と名前空間について読みました(これを理解していませんでした)。
スキーマファイルを使用する場合:exを使用してxmlを検証するにはどうすればよいですか。Test-XML(PSCXコマンドレット)?xsdファイルをオンラインで保存し、そのパスをxmlドキュメントで指定しますか?モジュールフォルダーに保存し、スクリプトにハードコーディングしますか?もしそうなら、どのようにスキーマパスを指定しますか?コードサンプル:
#Stored in ..\Modules\MyModule\Process-Config.psm1)
function Process-Config
{
param($xmlpath)
#Test that file is xml
try{ $xml = [xml](Get-Content $xmlpath) } catch {}
#Test that xml-file is valid against schema in Module-folder (Modules\MyModule\xmlschema.xsd)
#Using Test-XML PSCX cmdlet
Test-XML -Path $xmlpath -SchemaPath #Schemapath#
}
編集:$ PSScriptRootがモジュールの場所を提供するので、パスとして$ PSScriptRoot \ Schemas\MySchema.xsdを使用できることがわかりました。スクリプトで動作すると思いましたが、関数も動作するようです。:-)それでも、このようなローカルファイルのxmlでスキーマを指定しますか?その場合、このローカルパスを指定するにはどうすればよいですか、またはxsdをオンラインで公開して、xmlファイルのスキーマアドレスとして使用する必要がありますか?