KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
Sometimes , when validating certain XML documents using an XmlValidatingReader, I receive the following error: System.Xml.Schema.XmlSchemaValidationException: "The 'http://www.w3.org/XML/1998/namespace:lang' attribute is not declared." The same document sometimes succeeds. I cannot figure out why. My XSD imports the schema like so: <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" /> ... And in the XML document I have the following attributes: <root xmlns="http://mytargetnamespace.com" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://mytargetnamespace.com myschema.xsd"> Finally, the 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()) {} This is a standalone exe running .NET 4.0
Tags (comma-separated)
Save Edits
Cancel