XElement.GetSchemaInfo () возвращает ноль, почему? - PullRequest
2 голосов
/ 02 июля 2010

Я пытаюсь проверить XDocument с моей скомпилированной схемой (которая работает), но когда я пытаюсь получить доступ к PSVI для корневого XElement, он возвращает ноль. Мне нужно это, чтобы я мог проверить дочерние элементы 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 Ответ

6 голосов
/ 02 июля 2010

Существует еще одна перегрузка для Validate (http://msdn.microsoft.com/en-us/library/bb354954(v=VS.90).aspx), которая принимает логический параметр. Если вы установите для этого логического значения значение true, PSVI будет храниться на узлах, а затем GetSchemaInfo будет работать. Без PSVI в деревене может работать.

...