Могу ли я использовать XText для DSL, включающего тип файла XML? - PullRequest
3 голосов
/ 09 марта 2010

Я определил небольшой DSL, который в основном записан в виде различных типов XML-файлов в сочетании с некоторыми файлами свойств. Это работает очень хорошо, но я хочу создать редактор Eclipse, чтобы упростить редактирование этих файлов для начинающих (у меня уже есть работающий парсер).

Основной файл XML может ссылаться на некоторые элементы из файлов .properties и наоборот. Основной XML-файл может также ссылаться на другие XML-файлы. Некоторые параметры должны быть доступны только в основном XML-файле, основываясь на содержимом файлов .properties и на основе некоторых подключаемых модулей osgi, которые можно добавить в проект DSL (синтаксис динамический в зависимости от контекста). Структура языка фиксирована, но параметры, доступные в каждом атрибуте, или выбор самих атрибутов изменяются в зависимости от метаданных, содержащихся в файлах плагина .jar.

Вопросы:

Поддерживает ли XText динамический синтаксис (проверка корректности зависит от внешних факторов)?
Поддерживает ли XText файлы XML / .properties?

Большое спасибо за вашу помощь заранее.

Ответы [ 3 ]

2 голосов
/ 14 июля 2012

Я не совсем понимаю, к чему вы стремитесь, но если у вас есть XSD, рассматривали ли вы возможность превратить его в модель Ecore, а затем создать для этого грамматику Xtext? Или, если вы начинаете с нуля, сначала создайте свою грамматику DSL, затем экспортируйте ecore как XSD и используйте помощников, как я только что опубликовал в моем http://blog2.vorburger.ch/2012/07/xtext-xml.html? НТН.

2 голосов
/ 10 марта 2010

Пожалуйста, прочитайте Xtext документацию .

Поддерживает ли XText динамический синтаксис (проверка корректности зависит от внешних факторов)?

Xtext автоматически проверяет синтаксис, используя определение грамматики. Кроме того, вы можете написать произвольные проверки в Java или Check.

Поддерживает ли XText файлы XML / .properties?

Если вы определите грамматику для них, конечно. ;) Ни один из них не слишком сложен.

1 голос
/ 08 февраля 2014

Если вам не нужно иметь XML / XSD, и то, что вам нужно, в сущности, это больше иметь читаемый (скажем, JSON-подобный, но строго типизированный?) «Универсальный» DSL для структур данных, ограниченных каким-либо видом «метамодели» (скажем, выраженной в XCore, который является DSL для модели EMF Ecore, которую вы можете импортировать из XSD ..), тогда, возможно, моя EMF Простая нотация объектов ESON (ex-EFactory) в https://github.com/vorburger/efactory вас интересует?

...