C # - Библиотека для создания XML-редактора на основе XSD - PullRequest
3 голосов
/ 06 апреля 2011

Итак, я планирую создать модуль редактора XML, способный мгновенно проверять с помощью XSD и отображать IntelliSense в текущей позиции редактирования.

Часть проверки проста, но у меня проблемы с созданием IntelliSense.

Существует ли какая-либо библиотека, которая делает этот IntelliSense простым или нет другого способа, чем написать это с нуля?

Ответы [ 5 ]

1 голос
/ 07 апреля 2011

Вы можете использовать .NET Class: XmlSchemaValidator

2 основных метода: GetExpectedParticles и GetExpectedAttributes, которые возвращают объект XmlSchemaObject.Прежде чем использовать их, вам необходимо настроить контекст для валидатора, проверив все предшествующие элементы и элементы и атрибуты предка.

Вам также нужно будет использовать методы в классах, производных от XmlSchemaObject, они предоставляют различные частипосткомпиляция объектной модели схемы.Сама иерархия моделей очень напоминает структуру XML, которую вы найдете в файлах XSD.Возможно, вам потребуется использовать рекурсию, и существует довольно много потенциальных ловушек, например, при обработке групп подстановки, но разумное решение может быть найдено примерно в 2000 строках c #.

1 голос
/ 06 апреля 2011

А как насчет использования Visual Studio (Express, даже)?В него встроен XML Intellisense.

1 голос
/ 06 апреля 2011

http://www.codeproject.com/KB/cs/diy-intellisense.aspx

Должен дать вам хороший старт.

0 голосов
/ 06 апреля 2011

Мы используем SyntaxBox в одном из наших проектов. Производительность не не так хороша , есть коммерческие продукты, которые также довольно недорогие и высокого качества.

Кроме того, я считаю, Scintilla является самым мощным бесплатным компонентом редактора синтаксической раскраски.

0 голосов
/ 06 апреля 2011

Попробуйте Синтаксический редактор Actipro . Он доступен для WinForms, WPF и Silverlight и включает поддержку построения абстрактного синтаксического дерева, общих визуальных подсказок, подобных IntelliSense, и т. Д.

...