2012-05-23 1 views
1

Xtext에 DSL을 작성해야합니다. 기존 XML 언어를 간소화 할 것입니다. 즉, DSL을 작성한 다음 Xtext를 사용하여 XML로 변환합니다. 지금까지 문법을 썼지 만 문제는 XML을 기반으로 XML을 생성하는 방법입니다. 유사한 작업을 수행하는 방법에 대한 자습서를 알고 있습니까? 특히 새로운 Xtext 프로젝트를 만들 때 대부분의 자습서에 표시된대로 projectcame.generator 프로젝트를 생성하지 못하는 문제가 있습니다.내 DSL에서 XML 생성

+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 패키지에 digg로 옮길 수 있습니다. 여기에서 EMF 리소스를 가져 와서 텍스트를 만들 수있는 스텁 구현을 찾을 수 있습니다. Statemachine 예제는 Java 코드를 생성하기 위해이 방법을 사용하지만 XML 또는 원하는 것을 생성 할 수도 있습니다.

XML이 특정 스키마와 일치하는 경우 모델을 대상 모델의 유효한 인스턴스로 변환하고 EMF 표준 기능 (예 : XMLResource.save().

0

이론 상으로는 생성 된 EMF Java 모델을 JiBX로 바이트 단위로 향상시킨 다음 원하는 XML에 JiBX 매핑을 사용할 수 있습니다. 그것은 모델에 대한 과잉이라고 할지라도 (목표 문서가 얼마나 복잡한 지에 달려있다).

EMF 클래스에서이 작업을 수행하지 않았 음을 경고해야합니다. 내 프로젝트는 처음에 EMF 모델을 JiBX로 개선 된 기존 POJO 모델로 변환했습니다. 그러나 그들이 행동한다고 ​​가정하면 효과가 있습니다.