“未声明\'http://www.w3.org/XML/1998/namespace:lang\'属性。”
||
有时,当使用XmlValidatingReader验证某些XML文档时,会出现以下错误:
System.Xml.Schema.XmlSchemaValidationException:
\"The \'http://www.w3.org/XML/1998/namespace:lang\' attribute is not declared.\"
相同的文档有时会成功。我不知道为什么。
我的XSD导入架构如下:
<xs:schema id=\"myschemaId\"
xmlns:xs=\"http://www.w3.org/2001/XMLSchema\"
targetNamespace=\"http://mytargetnamespace.com\"
xmlns=\"http://mytargetnamespace.com\"
xmlns:mm=\"http://mytargetnamespace.com\"
elementFormDefault=\"qualified\">
<xs:import namespace=\"http://www.w3.org/XML/1998/namespace\"
schemaLocation=\"http://www.w3.org/2001/xml.xsd\" />
...
在XML文档中,我具有以下属性:
<root xmlns=\"http://mytargetnamespace.com\"
xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"
xsi:schemaLocation=\"http://mytargetnamespace.com myschema.xsd\">
最后,XmlReaderSettings:
const XmlSchemaValidationFlags validationFlags =
XmlSchemaValidationFlags.ProcessInlineSchema |
XmlSchemaValidationFlags.ProcessSchemaLocation |
XmlSchemaValidationFlags.ReportValidationWarnings |
XmlSchemaValidationFlags.AllowXmlAttributes;
// Set the validation settings.
var settings = new XmlReaderSettings
{
ValidationType = ValidationType.Schema,
ValidationFlags = validationFlags,
DtdProcessing = DtdProcessing.Parse
};
settings.ValidationEventHandler += OnValidationEventHandler;
// Create the XmlReader object.
var reader = XmlReader.Create(_xmlFilePath, settings);
// Parse the file.
while (reader.Read()) {}
这是一个在Windows 2003上运行.NET 4.0的独立exe。
我已经注意到,尝试进行验证时会出现明显的停顿。这可能有关吗?是否尝试下载实际的\“ xml.xsd \”模式,但未成功?
没有找到相关结果
已邀请:
2 个回复
拭十年
社攻取墟槽
就可以了。