XMLText: From XML Schema to Xtext

Published at SLE 2015

Patrick Neubauer and Alexander Bergmayr and Tanja Mayerhofer and Javier Troya and Manuel Wimmer

A multitude of Domain-Specific Languages (DSLs) have been implemented with XML Schemas. While such DSLs are well adopted and flexible, they miss modern DSL editor functionality. Moreover, since XML is primarily designed as a machine-processible format, artifacts defined with XMLbased DSLs lack comprehensibility and, therefore, maintainability. In order to tackle these shortcomings, we propose a bridge between the XML Schema Definition (XSD) language and text-based metamodeling frameworks. This bridge exploits existing seams between these two worlds and closes identified gaps. The resulting approach is able to generate Xtext-based editors from XSDs providing powerful editor functionality, customization options for the textual concrete syntax style, and round-trip transformations enabling the exchange of data between these two worlds. We evaluate our approach by a case study on TOSCA, which is an XML-based standard for defining Cloud deployments. The results show that our approach enables bridging XMLware with modelware and grammarware in several ways going beyond existing approaches and allows the automated generation of editors that are at least equivalent to editors manually built for XML-based languages.

DSL, Language Engineering, Markup Language, Language Modernization, XSD, Xtext.

Bibtex entry
  author    = {Patrick Neubauer and
               Alexander Bergmayr and
               Tanja Mayerhofer and
               Javier Troya and
               Manuel Wimmer},
  title     = {XMLText: from {XML} schema to xtext},
  booktitle = {Proceedings of the 2015 {ACM} {SIGPLAN} International Conference on
               Software Language Engineering, {SLE} 2015, Pittsburgh, PA, USA, October
               25-27, 2015},
  pages     = {71--76},
  year      = {2015},
  crossref  = {DBLP:conf/sle/2015},
  url       = {http://doi.acm.org/10.1145/2814251.2814267},
  doi       = {10.1145/2814251.2814267},
  timestamp = {Tue, 27 Oct 2015 10:12:50 +0100},
  biburl    = {http://dblp.uni-trier.de/rec/bib/conf/sle/NeubauerBMTW15},
  bibsource = {dblp computer science bibliography, http://dblp.org}

Downloads and links
External Resources