我正在创建一个模式来验证一些 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);