找不到schemaLocation"属性

本文关键字:属性 quot schemaLocation 找不到 | 更新日期: 2023-09-27 17:49:15

我正在创建一个模式来验证一些XML,但是当实际读取文档时,我得到了错误:

The 'http://www.w3.org/2001/XMLSchema:schemaLocation' attribute is not declared.

这是一个使用模式的XML文件的开头。

<?xml version="1.0"?>
<envelope xsi:schemaLocation="C:'LocalPath MySchema.xsd" 
 xmlns:xsi="http://www.w3.org/2001/XMLSchema" 
 xmlns="http://tempuri.org/MySchema.xsd">
...
</envelope>

我的验证代码看起来像这样:

XmlReaderSettings settings = new XmlReaderSettings();
settings.ValidationType = ValidationType.Schema;
Settings.Schemas.Add(@"http://tempuri.org/MySchema.xsd",
@"C:'LocalPath' MySchema.xsd");
XmlReader reader = XmlReader.Create(@"C:'LocalPath'testxml'somefile.xml", settings);
xmlDoc.Load(reader);
ValidationEventHandler eventHander = new ValidationEventHandler(validationHandler);
xmlDoc.Validate(eventHander);

找不到schemaLocation"属性

命名空间http://www.w3.org/2001/XMLSchema(带有常规前缀xsdxs)用于模式文档;您想要的schemaLocation属性是在命名空间http://www.w3.org/2001/XMLSchema-instance中(它具有传统的前缀xsi表示"XMLSchema Instance namespace")。