2012-05-23 2 views
1

Мне нужно написать DSL в Xtext, что упростит некоторый существующий язык XML. Другими словами, мне нужно написать DSL, а затем каким-то образом перевести его в XML с помощью Xtext. До сих пор я писал грамматику, но моя проблема заключается в том, как создать на ней XML. Знаете ли вы какие-либо учебники о том, как сделать что-то подобное? Особенно у меня возникают проблемы с тем, что при создании нового проекта Xtext он не генерирует проект projectcame.generator, как показано в большинстве руководств.Создание XML из моего DSL

+0

вас может заинтересовать мое сообщение http://blog2.vorburger.ch/2012/07/xtext-xml.html (пример кода на странице https://github.com/vorburger/xtext-sandbox/tree/master/XText-XML) – vorburger

ответ

3

Предполагаю, что вы используете Xtext 2.2.

Проект выделенного генератора был заменен генератором, который является частью директивы языковой инфраструктуры. Вы можете захотеть вставить в пакет yourdsl.generator в своем плагине времени выполнения. Там вы найдете реализацию заглушки, которая берет ресурс EMF и позволяет создавать текст из этого. Пример Statemachine использует этот подход для генерации кода Java, но вы также можете создавать XML или все, что от вас требуется.

Если ваш XML соответствует определенной схеме, вы можете, конечно, преобразовать свою модель в действительный экземпляр целевой модели и сериализовать ее с помощью стандартных функций EMF, например. XMLResource.save().

0

Теоретически вы можете байт-улучшить созданную Java-модель EMF с помощью JiBX, а затем использовать сопоставление JiBX для требуемого XML. Это может быть слишком велико для вашей модели (это зависит от того, насколько сложны ваши целевые документы).

Я должен предупредить вас, что я не делал этого на классах EMF; мой проект сначала перевел мою модель EMF в существующую модель POJO, которая была усовершенствована JiBX. Но, полагая, что они будут себя вести, это должно сработать.

Смежные вопросы