Я работаю с несколькими XElement
объектами, чтобы предоставить определенные пользователем данные для нескольких объектов в моей библиотеке.Я стараюсь не указывать структуру всего XML-файла, потому что библиотеке не нужно заботиться о том, как выглядит весь XML-файл, если конкретные элементы, которые ему нужны, правильно структурированы.
С этой целью яу меня есть 3 отдельных XSD
файла, которые определяют схему для каждого из 3 XElements
моих потребностей класса, однако я сталкиваюсь с некоторыми проблемами при проверке XElement относительно схемы.Похоже, не существует способа сделать это без обходного пути.
На странице MSDN способ расширения XElement.Validate()
, похоже, предназначен для повторной проверки подэлементовбольшего файла.Аргумент XmlSchemaObject
вызывает у меня проблемы, так как я не могу предположить, что он будет присутствовать в любом из XElements
.Я думаю, что могу обойти эту проблему, взяв XmlSchemaElement
из моего XmlSchemaSet
для передачи в качестве аргумента XmlSchemaObject
, но поскольку XmlSchemaSet
уже все определяет, кажется странным, что это нужно делать.
Есть ли лучший вариант для проверки XElement
со схемой без предварительной проверки всего XDocument
?
Или я должен просто позволить бизнес-уровню обрабатывать проверку схемы в приложениии позвольте библиотеке предположить, что XElement
сформирован правильно (я рассмотрел эту опцию, но в качестве личного предпочтения предпочел бы избегать генерирования исключений и хотел бы просто сообщить вызывающему методу, что XElement
недопустим через параметр возврата).