我正在尝试使用我拥有的已编译架构(有效)验证XDocument,但是当我尝试访问根XElement的PSVI时,它将返回null。我需要这样做,以便可以验证子XElement。

这是我要执行的操作的示例代码:
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以及所有这些。

所有的想法表示赞赏。谢谢。

最佳答案

Validate(http://msdn.microsoft.com/en-us/library/bb354954(v=VS.90).aspx)还有另一个重载,它需要一个布尔参数。如果将该布尔值设置为true,则PSVI将存储在节点上,然后GetSchemaInfo应该起作用。如果树中没有PSVI,它将无法正常工作。

关于xsd - XElement.GetSchemaInfo()返回null,为什么?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3167070/

10-09 05:59