Karsten Thoms

     
 

openArchitectureWare Erweiterung fuer XSD Schema


Moritz Eysholdt, studentischer Mitarbeiter bei itemis, hat seine Erweiterung für XSD Metamodelle veröffentlicht. Die Plugins inklusive Tutorial und Demos sind als Anhang an dem Feature Request#159700 zu finden.

Auf dieses Feature habe ich schon lange gewartet. Auch wenn es grundsätzlich möglich ist, XML basierte Modelle einzulesen (mit dem XMLInstantiator oder XMIInstantiator aus oAW Classic oder dem XMLReader Utility), so war es insgesamt noch etwas umständlich und auch nicht besonders gut dokumentiert. Häufig hat man zu den XML Dokumenten das zugehörige XSD Schema aber parat bzw. kann es mit Tools leicht herleiten. Was man sich eigentlich dann in openArchitectureWare wünscht, ist dieses Schema einfach im Classpath zu haben und dann mit Xpand bzw. Xtend Templates gegen das Schema Metamodell zu definieren, ohne irgendwelche Zwischenschritte.

Dieses Problem wird nun durch die Erweiterung endlich gelöst. Man installiert einfach das neue Feature und schon kann man gegen XSD Templates programmieren. Eine zugehörige Parser Workflow Komponente ist natürlich auch gleich dabei.

Beispiel

XSD Schema

Template

Workflow

<workflow>
	<!-- load the file -->
	<component class="org.openarchitectureware.xsd.XMLReader">
		<modelSlot value="model" />
		<uri value="model/mysetup.xml" />
		<metaModel id="mm"
			class="org.openarchitectureware.xsd.XSDMetaModel">
		</metaModel>
	</component>

	<!-- clean up the target directory -->
	<component
		class="org.openarchitectureware.workflow.common.DirectoryCleaner">
		<directories value="src-gen/mypackage" />
	</component>

	<!-- generate some code -->
	<component class="org.openarchitectureware.xpand2.Generator">
		<metaModel idRef="mm" />
		<expand value="templates::wizard::Root FOR model" />
		<outlet path="src-gen" />
		<beautifier
			class="org.openarchitectureware.xpand2.output.JavaBeautifier" />
	</component>

</workflow>

Wie in dem Xpand Template Screenshot zu sehen ist funktioniert die Code Completion wunderbar und integriert sich nahtlos in openArchitectureWare. Jetzt muss der Sourcecode noch etwas Feinschliff bekommen und dann werde ich ihn in die Codebasis des 4.2er Branches aufnehmen.

 
 
 
 
 

January 2008 »
SunMonTueWedThuFriSat
  
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
24
25
26
28
29
30
31
  
       
Today

Valid XHTML or CSS?

[This is a Roller site]
Theme by Rowell Sotto.
 
© Karsten Thoms