#region summary
/****************************************************
*
* 功能描述: Xml验证类
*
* 作 者: laozhou *
* 修改日期: 20090701
*
* 职 责:
*
* 特 性:
* §命名规则:
*
* ***************************************************/
#endregion
using System;
using System.Collections.Generic;
using System.Text;
using System.IO;
using System.Xml;
namespace BusinessLayer
{
/// <summary>
/// XML验证类
/// </summary>
public sealed class XmlValidation
{
private bool security;
/// <summary>
/// 是否类型安全
/// </summary>
public bool Security
{
get
{
return this.security;
}
}
public XmlValidation()
{
//TODO:
this.security = true;
}
/// <summary>
/// 启动验证
/// </summary>
/// <param name="xml">待验证的XML</param>
/// <param name="xsdtype">验证XML的类型名</param>
public void StartValidator(string xml,string xsdtype)
{
try
{
TextReader txtreader = new StringReader(xml);
string schema = Parameters.XmlSchemas[xsdtype].InnerXml;
XmlReader xsdreader = XmlReader.Create(new StringReader(schema));
XmlReaderSettings settings = new XmlReaderSettings();
settings.ValidationType = ValidationType.Schema;
settings.Schemas.Add(null, xsdreader);
xsdreader.Close();
settings.ValidationEventHandler += new System.Xml.Schema.ValidationEventHandler(settings_ValidationEventHandler);
XmlReader xmlreader = XmlReader.Create(txtreader, settings);
while (xmlreader.Read())
{
if (!this.security)
{
break;
}
}
xmlreader.Close();
}
catch (Exception exception)
{
throw exception;
}
}
/// <summary>
/// XML验证异常处理
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
void settings_ValidationEventHandler(object sender, System.Xml.Schema.ValidationEventArgs e)
{
this.security = false;
}
}
}
浙公网安备 33010602011771号