While processing the DSL I can use the question ...getCaption()!=null ... to test whether the optional element caption is used or not.
In the case of align this did'nt work, getAlign() is not null and getAlign().getLiteral() deliver the first value of the enum ('h2').
How can I check wether th optional align was used or not?
at least 2 possibilities:
-you can introduce an artificial enum (default value) UNSET (first of the list
-you can bind the align keyword to a boolean feature (isAlignSet?='align' align=...)
you can use a manually maintained metamodel with an unsettable eattribute
maybe you can use the metamodel postprocessor to make the eattribute unsettable too