Masalah
Validasi XML terhadap XSD melalui Test-Xml
gagal jika XSD disarangkan (termasuk XSD lainnya).
Test-Xml "C:\XML\Onix3sample_refnames.xml" -SchemaPath "C:\XML\ONIX_BookProduct_3.0_reference.xsd"
menghasilkan kesalahan:
Test-Xml : Type 'http://ns.editeur.org/onix/3.0/reference:SourceTypeCode' is not declared, or is not a simple type.
Kemungkinan alasannya
ONIX_BookProduct_3.0_reference.xsd
menyertakan dua file XSD lainnya
<xs:include schemaLocation="ONIX_BookProduct_CodeLists.xsd"/>
<xs:include schemaLocation="ONIX_XHTML_Subset.xsd"/>
Komentar di kesalahan validasi XML menggunakan skema XSD bersarang - Ketik tidak dideklarasikan menunjukkan bahwa XmlReader
tidak mengetahui lokasi masukan Stream
yang mendasarinya sehingga tidak dapat memuat XSD turunan include
. Dugaan saya: Test-Xml
menggunakan XmlReader
.
Pengguna lain mengalami masalah yang sama di ASP.Net Core.
File uji
tersedia di https://www.editeur.org/93/Release-3.0-Downloads/
File contoh XML: https://www.editeur.org/files/ONIX%203/ONIX_Books_3.0_sample_6.zip
File skema XSD: https://www.editeur.org/files/ONIX%203/ONIX_BookProduct_XSD_schema+codes_Issue_52.zip
Pertanyaan
Karena pengetahuan .NET saya agak terbatas, saya akan sangat berterima kasih atas solusi Powershell untuk memvalidasi file XML ONIX terhadap Skema XSD yang disarangkan - sebaiknya tanpa harus mengubah XSD (karena seringnya pembaruan).
PS: Validasi file-file ini di Notepad++/XML Tools atau XML Notepad berfungsi dengan baik.