Как программно определить элементы XML, которые могут быть вставлены далее? - PullRequest
5 голосов
/ 20 октября 2010

Когда я редактирую документ XML с XmlSchema, как я могу программно определить элементы, которые могут быть вставлены далее?Я использую C # и уже знаю, в каком элементе я нахожусь. Есть ли метод MSXML, который я могу вызвать или что-то еще?Спасибо.

Ответы [ 2 ]

1 голос
/ 22 октября 2010

Tarzan,

Насколько я понимаю, вы пытаетесь определить допустимый XML, который можно добавить в определенном месте в документе, на основе используемой схемы.Если это правильно, то это очень трудная проблема, которую нужно решить.Если в вашем XSD есть «любой» элемент, ваша сложность возрастает, потому что вы можете буквально быть любым элементом!Кроме того, схемы XSD могут быть разделены на подклассы (то есть структура определения элемента, основанная на другой структуре), тогда это вносит большую сложность.Есть только пара продуктов (Oxygen, Visual Studio), которые пытались это с каким-либо успехом (я знаю, что).

Если ваша схема довольно проста и не включает в себя ни одного из этих прерывателей сделок, вы можете использовать объектную модель схемы, чтобы найти юридические элементы в вашем текущем местоположении, но только если вы знаетечасть XSD относится к вашему текущему элементу.

Имеет ли это смысл?

Erick

1 голос
/ 22 октября 2010

Звучит так, будто вы за объектной моделью схемы .Net (SOM)

Модель объекта схемы

Вот статья о том, как работать с СДЛ.

Пример 1

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...