我正在尝试使用我拥有的编译模式验证XDocument(有效)但是当我尝试访问根XElement的PSVI时,它返回null。我需要这个,所以我可以验证子XElements。
以下是我正在尝试做的示例代码:
XDocument xmlDoc = XDocument.Load(xmlFilePath);
XElement root = _xmlDoc.Elements().Single();
XmlSchemaSet schemas = new XmlSchemaSet();
schemas.Add(schema);
xmlDoc.Validate(schemas, ValidationEventHandler);
XmlSchemaElement se = xmlDoc.Elements().Single().GetSchemaInfo();
我可以看到XDocument的验证工作正常,我抓住ValidationEvents和所有。
所有的想法都表示赞赏。谢谢。
答案 0 :(得分:6)
Validate(http://msdn.microsoft.com/en-us/library/bb354954(v=VS.90).aspx)还有另一个重载,它接受一个布尔参数。如果将该布尔值设置为true,则PSVI将存储在节点上,然后GetSchemaInfo应该起作用。没有树中的PSVI就无法工作。