| OCL to validate XML models? [message #1057832] |
Thu, 09 May 2013 03:31  |
Kosala Yapa Messages: 134 Registered: September 2010 |
Senior Member |
|
|
Hi there,
I have model.ecore and model.xml and its codebase generated from model.genmodel. Now I need to find a way to write OCL rules and validate model.xml.
I like to keep OCL constraints separated from model.ecore.
Can someone propose me a good approach or tutorial?
Many thanks.
Yapa
[Updated on: Thu, 09 May 2013 04:38] Report message to a moderator
|
|
|
|
|
|
|
| Re: OCL to validate XML models? [message #1058267 is a reply to message #1058258] |
Mon, 13 May 2013 08:21  |
Kosala Yapa Messages: 134 Registered: September 2010 |
Senior Member |
|
|
Thanks. I could get that working. Complete code is:
// create OCL instance for Ecore
OCL ocl = OCL.newInstance(EcoreEnvironmentFactory.INSTANCE);
// create OCL helper
OCLHelper<EClassifier, EOperation, EStructuralFeature, Constraint> helper = ocl
.createOCLHelper();
// set OCL context classifier
helper.setContext(ModelPackage.Literals.DEVICE);
// helper.setInstanceContext(ModelPackage.Literals.DEVICE__MODULES);
helper.setInstanceContext(device);
// create query
OCLExpression<EClassifier> query = helper
.createQuery("self.Modules->select(m|m.number<>null)->size()");
// use the query expression parsed before to create a Query
Query eval = ocl.createQuery(query);
int result = (Integer) eval.evaluate(device);
System.out.println(result);
However this has a small problem, which is creating query takes a considerable time.
Any fix for that?
Any help is appreciated.
Thanks
Kosala
|
|
|
Powered by
FUDForum. Page generated in 0.01596 seconds