使用 XmlReader 验证 XML 数据 import include

using System;
using System.Xml;
using System.Xml.Schema;
using System.IO;

public class Sample {

  public static void Main() {

    // Create the XmlSchemaSet class.
    XmlSchemaSet sc = new XmlSchemaSet();

    // Add the schema to the collection.   import and inlcude part for the xml
    sc.Add("namespace", "uri");  

    sc.Add("namespace1", "uri1");

    // Set the validation settings.
    XmlReaderSettings settings = new XmlReaderSettings();
    settings.ValidationType = ValidationType.Schema;
    settings.Schemas = sc;
    settings.ValidationEventHandler += new ValidationEventHandler (ValidationCallBack);

    // Create the XmlReader object.
    XmlReader reader = XmlReader.Create(new stringReader("test string"), settings);

    // Parse the file.
    while (reader.Read());

  }

  // Display any validation errors.
  private static void ValidationCallBack(object sender, ValidationEventArgs e) {
    Console.WriteLine("Validation Error: {0}", e.Message);
  }
}

 

 

如果xml 有多个shema:

  //Create the XmlSchemaSet class.
            XmlSchemaSet schemaSet = new XmlSchemaSet();

     
            //Add the schema to the collection.   import and inlcude part for the xml
            schemaSet.Add("http://tempuri.org/", XmlTextReader.Create(new StringReader(SchemaResource.schema1)));
            schemaSet.Add("http://schemas.microsoft.com/2003/10/Serialization/Arrays", XmlTextReader.Create(new StringReader(SchemaResource.schema2)));
            schemaSet.Add("http://schemas.datacontract.org/2004/07/Microsoft.Office.Server.Search.Internal.Administration", XmlTextReader.Create(new StringReader(SchemaResource.schema3)));
            schemaSet.Add("http://schemas.microsoft.com/2003/10/Serialization/", XmlTextReader.Create(new StringReader(SchemaResource.schema4)));
            schemaSet.Add("http://schemas.datacontract.org/2004/07/Microsoft.Office.Server.Search.Administration", XmlTextReader.Create(new StringReader(SchemaResource.schema5)));

       
             //Set the validation settings.
            XmlReaderSettings validationSettings = new XmlReaderSettings();
           
            validationSettings.Schemas = schemaSet;
            validationSettings.ValidationType = ValidationType.Schema;

            XmlReader validationReader = XmlReader.Create(new StringReader(xmlString), validationSettings);

            try
            {
                while (validationReader.Read())
                return ;
            }
            catch (System.Xml.Schema.XmlSchemaValidationException xmlSchemaValidationException)
            {
                throw new XmlSchemaValidationException(xmlSchemaValidationException.ToString());
            }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值