当前位置:  开发笔记 > 编程语言 > 正文

XML验证错误:未声明元素

如何解决《XML验证错误:未声明元素》经验,为你挑选了2个好方法。

我正在.NET中构建一个Web服务,它将通过XML来回传递数据.我想使用我定义的XSD验证传入请求中的XML.

这是XSD:



   
       
           
       
   

这是XML:


   1
   2

这是C#中的验证代码:

static void Main(string[] args){
   XmlSchemaSet iSchemas = new XmlSchemaSet();
   iSchemas.Add(string.Empty, @"...xsd file location");

   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);
   settings.Schemas.Add(iSchemas);

   XmlReader reader = XmlReader.Create(@"...xml file location", settings);

   try {
      while(reader.Read())
       ;
   }
   catch(Exception ex) {
      Console.WriteLine(ex.Message);
   }
}

private static void ValidationCallBack(object sender, ValidationEventArgs args) {
     if(args.Severity == XmlSeverityType.Warning)
        Console.WriteLine("\tWarning: Matching schema not found.  No validation occurred." + args.Message);
     else
        Console.WriteLine("\tValidation error: " + args.Message);
  }

我觉得我之前有这个工作,我不完全确定为什么现在这不起作用.每当我运行它时,我得到以下异常消息:

验证错误:未声明'POSearch'元素.

我是否定义了XSD错误?我的验证码是错的吗?这些元素都很清楚.非常感谢任何指导我正确方向的帮助.



1> kjhughes..:

您已声明了类型,但没有声明该类型的元素.

添加元素声明:




   

   
       
           
       
   



2> Kachna..:

尝试这个:



   
       
           
       
   
    

推荐阅读
有风吹过best
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有