none
请教一个关于XML文件校验的问题 RRS feed

  • 问题

  • 您好,我有个问题向您请教:

    我在写一段关于xml文件校验的程序,摘要如下:

    public void CheckDataXml(XmlDocument doc,string xsdFile,string ns)
    {
           //ns表示名称空间
           XmlSchemaSet xsd = new XmlSchemaSet();
           xsd.Add(ns, xsdFile);
           doc.Schemas = xsd;
           doc.Validate(new ValidationEventHandler(MyValidationEventHandler));
    }

    void MyValidationEventHandler(object sender, ValidationEventArgs e)
    {
           //System.Xml.DocumentSchemaValidator
           //这里我想将【sender】转换为System.Xml.DocumentSchemaValidator类型,以便
           //获取更详细的反馈信息,但是VS2008提示没有这个类,请问为什么?
    }
    System.Xml.DocumentSchemaValidator这个类是我在调试的时候通过监视窗口监视【sender】时 发现的,截图如下:
    【不能发图片:(,看我的头像吧,我把图片当成头像传了】

    开发环境:VS20008+.NET Framework 3.5 + Vista
    2009年6月27日 9:18

答案

  • 你好!
         有这个类的,但是你的命名空间写错了,应该是System.Xml.Schema.XmlSchemaValidator
         具体可以参考:
    http://msdn.microsoft.com/zh-cn/library/system.xml.schema.xmlschemavalidator.aspx
    周雪峰
    • 已标记为答案 tanglg 2009年6月28日 4:19
    2009年6月27日 11:30
    版主

全部回复

  • 你好!
         有这个类的,但是你的命名空间写错了,应该是System.Xml.Schema.XmlSchemaValidator
         具体可以参考:
    http://msdn.microsoft.com/zh-cn/library/system.xml.schema.xmlschemavalidator.aspx
    周雪峰
    • 已标记为答案 tanglg 2009年6月28日 4:19
    2009年6月27日 11:30
    版主
  • 您好,感谢您回复。

          您提供的System.Xml.Schema.XmlSchema Validator类是有的,但是我想要的是【System.Xml.Document SchemaValidator】类,这个类在调试时查看【sender】的时候出现的,存储了一些校验相关的更详细的信息,所以我想将【sender】转换为System.Xml.Document SchemaValidator类型以便提取其中的信息,但是System.Xml名称空间下根本就没有这个类,而且在msdn中也搜索不到,不知道为什么。

          System.Xml.Document SchemaValidator好像是一个私有的密闭类,只能在调试的时候看到:(
    2009年6月28日 1:34
  • 你好!
         这个类的定义如下:
    internal sealed class DocumentSchemaValidator : IXmlNamespaceResolver
         内部的而且是密封的类,你不能使用啊!
    周雪峰
    2009年6月28日 5:27
    版主