Page 1 of 1

Using MagicDraw/Cameo as an XML editor

PostPosted: Thu Jan 09, 2014 2:48 pm
In the thread below Tomas explained how to reverse engineer an XSD and convert it to a pure UML model that does not have the XML-specific stereotypes. What if I simply want to use MagicDraw as an editor for XML Schemas and XML Documents; in other words, when I reverse engineer an XML Schema or Document, I want to preserve the XML-specific stereotypes and when I edit the XML-specific UML model I want to update the XML Schema or XML Document file that I had loaded into MagicDraw. Is there a way to do this?

David Frankel

3 posts • Page 1 of 1
Import XSD file within MagicDraw
Postby Hellin_T » Mon Aug 12, 2013 7:18 am

Good afternoon,

We are actually modeling our processes and information exchange within MagicDraw following the UMM2 methodology.
We would like to use UN/CEFACT codes lists. These code lists are available in XSD schemes (for example on the next link ... g_D12A.xsd) and we would like to know if it is possible to import XSD within MagicDraw to avoid having to create these enumeration lists manually.

Thanks in advance for your response

Kind regards

User avatar
Forum Beginner
Forum Beginner

Posts: 42
Posts Rating:0
Joined: Thu Aug 23, 2012 8:35 am
Full name: Thibaut Hellin
vote up
vote down
Re: Import XSD file within MagicDraw
Postby TomasJkn » Tue Aug 13, 2013 6:39 am

Hello dear Hellin,

It is possible and quite easy to do. It is 2-step process:
First you need to reverse-engineer the XSD into the schema model in MagicDraw.
Then you need to transform this schema model to plain/simple UML model.

To reverse engineer the schema, create the code engineering set for XML schemas, open it, add your schema file(s) to it, OK. Then rightclick the CE set and press reverse.

The result will be the schema model in MagicDraw. But this schema model is platform specific - it is adapted for engineering XMl schemas, so it is not a pure/simple UML elements but UML elements with a lot of stereotypes applied. In particular, the enumerations declared in the file turn into UML classes with <<XSDSimpleType>> stereotype applied, having a bunch of UML properties with <<XSDenumeration>> stereotype applied. This is not what we want - we want a simple UML enumeration, carrying enumeration literals.

So we need to "purify" it - transform it into pure platform-independent UML model.
1) Go To Tools>Model Transformations to open the transformation dialog;
2) pick the XML Schema to UML transformation in the first step
3) in the second step choose your XMl schema model parts that you need to transform (include your reversed XML schema models into transformation source). If you do not need the XML schema model for other purposes you can choose to transform in-place. Otherwise (if you need to retain the XML schema models) pick some target package where your UML model will be placed after the transformation
4) skip the wizard's 3rd and 4th steps. Finish

After transformation, you should get plain/simple UML Enumerations in the transformation results package.

I have prepared a small example from the schema that you provided. Please see the attached CEFACTImport.mdzip project (MD v17.0.4 is needed).
There is a code engineering set to reverse the UNECE_DocumentNameCodeBilling_D12A.xsd,
the reversed XML schema model is under Data::XSD::urn:un:unece:uncefact:codelist:standard:UNECE:DocumentNameCodeBilling:D12A
the transformed pure UML model is under Data::UML

Please see the Data::UML::urn:un:unece:uncefact:codelist:standard:UNECE:DocumentNameCodeBilling:D12A::DocumentNameCodeBilling diagram, showing the results - DocumentNameCodeBillingContentType enumeration.


Please note: XML schema engineering features (reverse/generation from/to files, UML <--> XSD transformations) are provided by the CameoDataModeler plugin - you need to have it purchased/installed to follow the path listed above.

Tomas Juknevicius

Re: Using MagicDraw/Cameo as an XML editor

PostPosted: Fri Jan 10, 2014 8:40 am
by PauliusGrigaliunas

after modifying XML-specific UML model just right click on CE set and select Generate menu option.

Kind regards,
Paulius Grigaliunas