您的位置:首页 > 其它

使用 XmlReader 验证 XML 数据 import include

2009-07-30 12:44 369 查看
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());
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: