Re: [mdr-users] XMI Modules supported by MDR?

Pieter Van Gorp <[email protected]> Wed, 13 Jul 2005 09:26:48 +0200
Newsgroups gmane.comp.java.netbeans.modules.mdr.user
Message-ID <[email protected]>
Thanks Chad & Martin,
I'll check the archives etc. and use the AndroMDA patch.

Best regards,
Pieter.

On 7/12/05, Chad Brandon <[email protected]> wrote:
> We ended up commenting out the CompositionViolationException in the MDR
> code (that was our work-a-round).  No Magic said they wouldn't fix it
> (the invalid references) until Magic Draw 10.
> 
> Martin Matula wrote:
> 
> > I already wrote you about the CompositionViolationException in one of
> > my previous e-mails. MagicDraw serializes the elements to several
> > files in a wrong way - it puts some kind of proxy element into each
> > file, but these are proprietary - a generic XMI client does not know
> > the elements added by MD are just some kind of proxies that should be
> > matched based on the xmi.id with the element from the remote file. So,
> > the MDR thinks the XMI assigns several containers (composites) to a
> > single element. At least that's what I remember. We were discussing
> > this with Matthias Bohlen and MagicDraw guys and in the end I think it
> > was somehow resolved on the AndroMDA side. You should be able to find
> > some discussion about it on the AndroMDA web pages (I remember
> > Matthias Bohlen logged it somewhere).
> > Martin
> >
> > Pieter Van Gorp wrote:
> >
> >> Hi Martin,
> >> I decided to generate the plain XML file with MagicDraw and guess
> >> what: the prolog exception isn't thrown anymore.
> >>
> >> The UML files are available on
> >> http://www.fots.ua.ac.be/~pvgorp/tmp/mdr/mdrWorksWithProfiles.tar.gz
> >>
> >> Apparently I missed something when I tried to unzip the MagicDraw
> >> files myself and update the hrefs with a search/replace... Thanks for
> >> keeping me thinking in this direction!
> >>
> >> Now the prolog exception is gone, another one came up.  This time it
> >> is an MDR exception instead of an XML parser one.  It is the recurring
> >> (well-known) CompositionViolationException.  If I cannot find its
> >> cause, I'll start a new mail thread on it.
> >>
> >> Thanks again and best regards,
> >> Pieter.
> >>
> >> On 7/12/05, Martin Matula <[email protected]> wrote:
> >>
> >>
> >>> Yes, please send them.
> >>> Martin
> >>>
> >>> Pieter Van Gorp wrote:
> >>>
> >>>
> >>>
> >>>> Hi Martin,
> >>>> I should have sent you some other files since I already checked
> >>>> whether it worked when using plain XML files instead XML.ZIPs... When
> >>>> using plain XML files (as you suggest as well), the same exception is
> >>>> thrown.  I'll send you the plain XML files as well if you like.
> >>>>
> >>>> Regards,
> >>>> Pieter.
> >>>>
> >>>> On 7/12/05, Martin Matula <[email protected]> wrote:
> >>>>
> >>>>
> >>>>
> >>>>
> >>>>> Pieter,
> >>>>> modelWithModules.xml contains hrefs of a proprietary format - they
> >>>>> reference zip file - MDR tries to handle files referenced in HREFs as
> >>>>> XML files, since that's how standard hrefs in XMI should work. By
> >>>>> trying
> >>>>> to parse the file referenced from HREF - i.e. the zip file - the XML
> >>>>> parser seems to report this weird message (we are using the
> >>>>> standard XML
> >>>>> parser that is part of the JDK - MDR sources themselves do not
> >>>>> contain
> >>>>> any string literal containing word "prolog" so the message is
> >>>>> really not
> >>>>> generated by MDR). It is obvious that this will end up with an error,
> >>>>> since the file referenced from the hrefs is a binary file, not a
> >>>>> valid XML.
> >>>>> Regards,
> >>>>> Martin
> >>>>>
> >>>>> Pieter Van Gorp wrote:
> >>>>>
> >>>>>
> >>>>>
> >>>>>
> >>>>>
> >>>>>> Hi all,
> >>>>>> coming back to a recent thread, I have prepared a small example that
> >>>>>> illustrates the problem I experienced with MDR.
> >>>>>>
> >>>>>> On http://www.fots.ua.ac.be/~pvgorp/tmp/mdr/ you find
> >>>>>> modelWithoutModules.xml and modelWithModules.xml.  The former is an
> >>>>>> XMI file exported by MagicDraw 9.0 that is correctly processed by
> >>>>>> MDR.
> >>>>>> The latter represents the same UML model but imports profile
> >>>>>> information from an external XMI module file called
> >>>>>> sdm-profile-jcmtg.xml.zip.  Apart from storing the profile in a
> >>>>>> separate file, there should be no changes between
> >>>>>> modelWithModules.xml
> >>>>>> and modelWithoutModules.xml.  MDR throws the "content not allowed in
> >>>>>> prolog" exception when loading modelWithModules.xml.
> >>>>>>
> >>>>>> If you like to execute the problematic situation on your machine,
> >>>>>> you
> >>>>>> can use the code from mdr-modules.tar.gz.  The reason for the large
> >>>>>> file size is that I wanted to make the code executable with minimal
> >>>>>> effort for me and you ;-) Once unzipped, go to the
> >>>>>> mdr-modules/jcmtg/transformer dir and execute (1) ant build-exec,
> >>>>>> (2)
> >>>>>> ant and (3) ant exec.
> >>>>>>
> >>>>>> You can switch between the loading of modelWithModules.xml and
> >>>>>> modelWithoutModules.xml by adjusting the trans.model.xmi.url
> >>>>>> property
> >>>>>> in mdr-modules/jcmtg/transformer/build.properties.
> >>>>>>
> >>>>>> Chad, I tried to use plain XML files only instead of zipped XML
> >>>>>> files
> >>>>>> and I still get the exception, so I'm not sure if using a custom XMI
> >>>>>> reference resolver will solve the problem.
> >>>>>>
> >>>>>> I hope if these sample files help you understand my problem better.
> >>>>>> Please let me know if I should give additional info.
> >>>>>>
> >>>>>> Best regards,
> >>>>>> Pieter.
> >>>>>>
> >>>>>> On 6/15/05, Pieter Van Gorp <[email protected]> wrote:
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>>> Hi Martin, I'll check out Chad's solution first and send my
> >>>>>>> files if
> >>>>>>> that doesn't work for me.
> >>>>>>>
> >>>>>>> Thanks again,
> >>>>>>> Pieter.
> >>>>>>>
> >>>>>>> On 6/14/05, Martin Matula <[email protected]> wrote:
> >>>>>>>
> >>>>>>>
> >>>>>>>
> >>>>>>>
> >>>>>>>
> >>>>>>>
> >>>>>>>> A minimal example would of course be more desirable. Anyway, if
> >>>>>>>> your
> >>>>>>>> files are of a reasonable size for sending them to the mailing
> >>>>>>>> list, I
> >>>>>>>> don't mind...
> >>>>>>>>
> >>>>>>>> Pieter Van Gorp wrote:
> >>>>>>>>
> >>>>>>>>
> >>>>>>>>
> >>>>>>>>
> >>>>>>>>
> >>>>>>>>
> >>>>>>>>
> >>>>>>>>> Hi Martin,
> >>>>>>>>> shall I post to the list my actual MagicDraw XMI files (profile
> >>>>>>>>> definition and application) or shall I make a minimal example
> >>>>>>>>> that
> >>>>>>>>> still triggers the exception first?
> >>>>>>>>>
> >>>>>>>>> Regards,
> >>>>>>>>> Pieter.
> >>>>>>>>>
> >>>>>>>>> On 6/14/05, Pieter Van Gorp <[email protected]> wrote:
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>>>> Hi Martin,
> >>>>>>>>>> thanks for your reply:
> >>>>>>>>>>
> >>>>>>>>>> On 6/14/05, Martin Matula <[email protected]> wrote:
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>>>> I'm experiencing problems when processing XMI files using
> >>>>>>>>>>>> external
> >>>>>>>>>>>> modules in MDR.  My input file is a UML file in XMI
> >>>>>>>>>>>> generated by
> >>>>>>>>>>>> MagicDraw 9.  The problem occurred after moving my profile
> >>>>>>>>>>>> definitions
> >>>>>>>>>>>> to a separate XMI file.  MDR throws a "Content is not
> >>>>>>>>>>>> allowed in
> >>>>>>>>>>>> prolog" exception.
> >>>>>>>>>>>>
> >>>>>>>>>>>>
> >>>>>>>>>>>>
> >>>>>>>>>>>>
> >>>>>>>>>>>>
> >>>>>>>>>>>>
> >>>>>>>>>>>>
> >>>>>>>>>>>
> >>>>>>>>>>> That's weird. MDR definitely does not print anything like
> >>>>>>>>>>> that. Maybe
> >>>>>>>>>>> the XML parser does that. Try if the file is a valid XML.
> >>>>>>>>>>>
> >>>>>>>>>>>
> >>>>>>>>>>>
> >>>>>>>>>>>
> >>>>>>>>>>>
> >>>>>>>>>>>
> >>>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>> Here's the context of the exception:
> >>>>>>>>>> org.netbeans.lib.jmi.util.DebugException: Content is not
> >>>>>>>>>> allowed in prolog.
> >>>>>>>>>>     at
> >>>>>>>>>> org.netbeans.lib.jmi.xmi.XmiContext.readExternalDocument(XmiContext.java:927)
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>> When validating with Xerces, I get a lot of "undeclared type"
> >>>>>>>>>> errors
> >>>>>>>>>> although MagicDraw happily opens and saves the file...
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>>>> I found that AndroMDA contains special code for dealing
> >>>>>>>>>>>> with modules
> >>>>>>>>>>>> (in the
> >>>>>>>>>>>> org.andromda.repositories.mdr.MDRXmiReferenceResolverContext
> >>>>>>>>>>>> class).  Should I follow the same strategy or does MDR provide
> >>>>>>>>>>>> built-in module-support such that I don't have to wrap
> >>>>>>>>>>>> repository
> >>>>>>>>>>>> classes?  For instance, is there one specific MDR method
> >>>>>>>>>>>> that I should
> >>>>>>>>>>>> call after loading an XMI file containing hrefs to elements
> >>>>>>>>>>>> in another
> >>>>>>>>>>>> XMI file to make MDR treat the two XMI files as one large
> >>>>>>>>>>>> model?
> >>>>>>>>>>>>
> >>>>>>>>>>>>
> >>>>>>>>>>>>
> >>>>>>>>>>>>
> >>>>>>>>>>>>
> >>>>>>>>>>>>
> >>>>>>>>>>>>
> >>>>>>>>>>>
> >>>>>>>>>>> MDR does this automatically.
> >>>>>>>>>>>
> >>>>>>>>>>>
> >>>>>>>>>>>
> >>>>>>>>>>>
> >>>>>>>>>>>
> >>>>>>>>>>>
> >>>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>> Good to know... it makes me wonder why AndroMDA uses special XMI
> >>>>>>>>>> resolvers... anyway, I'm still wondering where the "content
> >>>>>>>>>> is not
> >>>>>>>>>> allowed in prolog" exception comes from...
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>>> In earlier versions of MagicDraw there was
> >>>>>>>>>>> a bug in XMI serialization causing
> >>>>>>>>>>> CompositionViolationException. I
> >>>>>>>>>>> don't know if this was fixed in MagicDraw 9, but so far this
> >>>>>>>>>>> does not
> >>>>>>>>>>> seem to be your problem.
> >>>>>>>>>>>
> >>>>>>>>>>>
> >>>>>>>>>>>
> >>>>>>>>>>>
> >>>>>>>>>>>
> >>>>>>>>>>>
> >>>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>> Indeed, in fact I encountered this problem when copying
> >>>>>>>>>> subgraphs
> >>>>>>>>>> across models.  It was not a bug of MagicDraw but a
> >>>>>>>>>> consequence of my
> >>>>>>>>>> way of copying model elements.  I'll come back to that shortly.
> >>>>>>>>>>
> >>>>>>>>>> Best regards,
> >>>>>>>>>> Pieter.
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>
> >>>>>>>>
> >>>>>>>
> >>>>>
> >>>>
> >>>
> >>
> >
> >
> 
>