OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

ubl-dev message

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]


Subject: Re: [ubl-dev] RE: UML meta-modeling of UN/CEFACT Core Components


Clarification:

This was in response to Bruno's email, not Mark's.

Duane

Duane Nickull wrote:

> "UML meta-modeling may be a good solution to seamlessly translate the 
> UML specification into an XML specification."
>
> I am skeptical.  I have problems with this statement since such 
> methodologies as XMI et al ignore the problems faced by programmers.  
> If you simply make a UML class with a name of Foo and attributes bar 
> and bah into
>
> <Foo bar="1" bah="2" />
>
> That *seems* all fine an dandy. 
> The problem is that programmers have to write very specific handler 
> code to read such values.  In java like this:
>
> //assume use of JDOM ;-)
>
> Attribute attribute1 = current.getChild("Foo").getAttributeValue("bar");
> Attribute attribute2 = current.getChild("Foo").getAttributeValue("bah");
> String myString = attribute1.toString();
> ...
>
> Since the UML is often several layers deep, the "current" token, is 
> subject to radical change if the hierarchy changes.  This is very 
> frustrating for any developer to constantly have to re-code their 
> classes in a grand tense to reflect minor changes in the UML.  
> Changing UML does not require the same discipline as re-writing 
> several classes of code.  (let the flames begin ;-) 
> There is simply no elegant way to prepare for this with automated 
> transformations (aside form declaring some JDO's as constants to save 
> some grief).
>
> I favor an approach whereby we use thinking to create XML that will 
> protect investments into existing code by attempting to be backwards 
> compatible, at the same time accounting for forwards compatibility.  
> An example of this is the "contexts" of CCTS.  It would be tempting to 
> write the contexts as such:
>
> <Contexts>
>    <GeopoliticalContext>
>            <Value> Canada</Value>
>    </GeopoliticalContext>
>    <SomeOtherContext>
>             <Value>1234</Value>
>    </SomeOtherContext>
> ...
>
> But this creates problems for managibility over time.  We cannot be so 
> arrogant and to think we have thought of everything today. People will 
> need to extend and add to our work over time.  That is the nature of 
> standards.  If we create a schema and perform validating parses, then 
> add another mandatory context element, it may break existing context 
> declaration instances, since they will not have that element.  
> Likewise, if we add another nesting of elements, developers will have 
> to hunt through their code to add in corresponding lines in order to 
> reflect the changes.  One extra box in a UML Class diagram = many 
> headaches for hundreds of developers.
>
> A better way to write it is to 'think" about future developers/users 
> and write XML in a format so other tokens can be added without 
> breaking forwards or backwards compatibility.
>
> <Contexts>
>    <Context  name="Geopolitical" qualifier="ISO-3166" value="CA-on" />
>    <Context name="myAddedContext" qualifier="whatever" 
> value="itsNotImportantToOthers" />
> ...
>
> The code to read this is simple.  One class supplements the parser by 
> simply grabbing the Context@value, then passing it to the appropriate 
> handler class.  When someone adds another one, it does not break 
> existing implementations.
>
> We have to start thinking of this IMO.
>
> My $0.02 CAD worth.
>
> Duane Nickull
>

-- 
Senior Standards Strategist
Adobe Systems, Inc.
http://www.adobe.com





[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]