XElement.GetSchemaInfo()返回null,为什么?

时间:2010-07-02 15:28:25

标签: xsd linq-to-xml

我正在尝试使用我拥有的编译模式验证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和所有。

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

1 个答案:

答案 0 :(得分:6)

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