Rumah >pembangunan bahagian belakang >C++ >Bagaimana untuk Mengesahkan XML Terhadap XSD yang Dirujuk dalam C#?
Sahkan XML dengan skema XSD luaran dalam C#
Dalam C#, mengesahkan dokumen XML terhadap skema XSD luaran biasanya boleh dicapai dengan memanfaatkan secara langsung maklumat yang diberikan dalam atribut xsi:schemaLocation
XML. Walau bagaimanapun, dalam beberapa kes, campur tangan manual diperlukan untuk melakukan pengesahan.
Untuk mengesahkan XML secara automatik terhadap skema yang ditentukan, anda perlu mencipta contoh XmlReaderSettings
dan menghantarnya kepadanya apabila mencipta XmlReader
. Dengan menetapkan ValidationType
kepada Schema
dan ValidationFlags
untuk memasukkan ProcessInlineSchema
, ProcessSchemaLocation
dan ReportValidationWarnings
, pembaca akan memproses dan mengesahkan XML secara automatik terhadap skema yang dirujuk dalam atribut xsi:schemaLocation
.
Berikut ialah coretan kod yang menunjukkan pendekatan ini:
<code class="language-csharp">using System.Xml; using System.Xml.Schema; using System.IO; public class ValidXSD { public static void Main() { // 设置验证设置。 XmlReaderSettings settings = new XmlReaderSettings(); settings.ValidationType = ValidationType.Schema; settings.ValidationFlags |= XmlSchemaValidationFlags.ProcessInlineSchema; settings.ValidationFlags |= XmlSchemaValidationFlags.ProcessSchemaLocation; settings.ValidationFlags |= XmlSchemaValidationFlags.ReportValidationWarnings; settings.ValidationEventHandler += new ValidationEventHandler(ValidationCallBack); // 创建XmlReader对象。 XmlReader reader = XmlReader.Create("inlineSchema.xml", settings); // 解析文件。 while (reader.Read()) ; } // 显示任何警告或错误。 private static void ValidationCallBack(object sender, ValidationEventArgs args) { if (args.Severity == XmlSeverityType.Warning) Console.WriteLine("\t警告:未找到匹配的模式。未进行验证。" + args.Message); else Console.WriteLine("\t验证错误: " + args.Message); } }</code>
Atas ialah kandungan terperinci Bagaimana untuk Mengesahkan XML Terhadap XSD yang Dirujuk dalam C#?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!