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

 


Help: OASIS Mailing Lists Help | MarkMail Help

ebxml-core message

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


Subject: RE: Abstract Type vs. Type Code


If you have not done so, take a look at Commerce One's SOX and XDK.  Using
SOX to Java compiler, you can generate Java Bean representations of the
schema.  As one would expect, OO extensions are supported.

Brian

> -----Original Message-----
> From: John.Motley@log-net.com [mailto:John.Motley@log-net.com]
> Sent: Monday, March 19, 2001 5:01 AM
> To: rawlins@metronet.com
> Cc: ebXML Core
> Subject: Re: Abstract Type vs. Type Code
> 
> 
> 
> 
> 
> Mike,
> 
> Would the follow OOP example help?
> 
> class Party has attribute role such that you could have a 
> manufacturer's
> agent with;
> 
>      Attributes like;
>      Party.role='AGENT'
> 
>      Methods like
> 
>      Party.GetAddress( ) {Returns the party's address}
> 
> you would then have in Java the ability to create a subclass of Party
> SellingParty using;
> 
>      class SellingParty extends Party
> 
> which could have access to all methods and attributes of 
> Party plus new
> ones such that;
> 
>      Old Attribute
>      SellingParty.role='AGENT'
> 
>      Old Method
>      SellingParty.GetAddress( ) {Still returns the address}
> 
>      New Method
>      SellingParty.QuotePrice(string sellersItem)  {Returns a 
> quote price to
> sell a product in inventory as identified by the seller's 
> item or product
> ID}
> 
> Not sure the present work is 100% like this.  It would be 
> nice to see more
> delineation of methods from attributes so that process and data models
> could be more easily verified (i.e. any method should have 
> parenthesis so
> that Party.quotePrice is the attribute with the value of the 
> quoted price,
> while Party.quotePrice( ) is the method to get this price.  If such a
> convention is already in place, sorry for interrupting)
> 
> Regards,
> John Motley
> 
> LOG-NET
> 
> 
> 
> 
> 
> Mike Rawlins <rawlins@metronet.com> on 03/18/2001 11:59:19 AM
> 
> Please respond to rawlins@metronet.com
> 
> To:   ebXML Core <ebxml-core@lists.ebxml.org>
> cc:
> 
> Subject:  Re: Abstract Type vs. Type Code
> 
> 
> William does a very good job in describing the problem I see 
> here, but he
> falls short of a point I'm trying to make.
> 
> As a general rule, I strongly feel that what we define as 
> core components
> should be considered as, in OO terms, abstract classes.   If we then
> examine
> the various ways to use, for example "Party" in various 
> syntaxes to express
> a "Selling Party" that may or may not have additional 
> attributes or methods
> (properties in CC terms, probably context dependent), we 
> might have the
> following:
> 
> OO (Java) - Party abstract class and SellingParty descendent 
> concrete class
> 
> XML Schema - "Party" is defined as a complexType with all of 
> the relevant
> child elements and attributes.  We then simply declare an element
> "SellingParty" as type "Party"
> 
>     <xsd:element name="SellingParty" type="Party"/>
> 
> [NOTE:  There are other syntax complexities when extending 
> "Party", but I
> don't want to make this example too complex!]
> 
> EDIFACT - A NAD segment group is used to convey "Party" with 
> NAD01 (element
> 3035) having a value of "SE" for seller.
> 
> William is right in saying that if I have a type code already 
> defined in
> "Party", then why have an XML element named "SellingParty".  
> My point is
> that this particular use of type code is inherently unique to 
> EDI syntax.
> As a syntax dependent usage it should not be part of core component
> definitions.  Martin points out that there are other uses of 
> "type code"
> that he thinks are valid.  I think I understand his points, but need
> examples to be sure.   This is one reason why I still feel that it is
> important to provide a few example instantiations of CC's in different
> syntaxes so that analysts can fully understand the principles 
> for using
> CCs.
> 
> 
> 
> 
> "William J. Kammerer" wrote:
> 
> > Mike Rawlins, Lisa Shreve and Martin Bryan are having a 
> go-around on the
> > EDIFACT 1131/3055 pair being simulated in code.details.  
> I'm having a
> > hard time understanding what's going on - though it's 
> possible they're
> > all talking past one another.
> >
> > If a hunk of data is being carried along in Party saying 
> that this is a
> > "Selling Party,"  then it stands to reason that you don't need a
> > separate "SellingParty" schema type derived from Party.  In 
> this case -
> > Mike's first example when he initially brought this up at 
> the start of
> > the thread -  the only difference between a Buyer and a 
> Seller would be
> > a "type" passed as an element value or attribute in the XML 
> instance.
> > This simulates EDI: there's only one kind of NAD (Name and Address)
> > segment for identifying parties in UN/EDIFACT (i.e., there's no
> > SELLERNAD or BUYERNAD or CARRIERNAD) - you depend on a two character
> > coded qualifier (i.e., piece of data) to distinguish between Buyer,
> > Seller and Carrier.   If this is the intent of the 
> designers of ebXML's
> > party.details, then the spreadsheet seems to be showing it 
> (the problems
> > noted by Mike Conroy's excellent analysis to the contrary
> > notwithstanding).
> >
> > There's nothing in the spreadsheet - and hence in Conroy's 
> UML diagram
> > which was derived from the spreadsheet - that tells me there's any
> > intention whatsoever of deriving "SellerParty" or "CarrierParty"
> > descendant concrete classes from the base Party - and what 
> would be the
> > point if we already have the distinguishing characteristic 
> of a coded
> > data value indicating Party type (or "role")?
> >
> > Then Lisa Shreve has to go and say "the type code.... [just keeps] a
> > list of the subclasses of party."  I don't know UML modeling, but
> > Conroy's diagram doesn't show it as a collection of subclasses to be
> > used in isA relationships - and the spreadsheet or accompanying
> > documentation says nothing about that either.  If the magic 
> was hidden
> > in the "ebXML specification for the application of XML 
> based assembly
> > and context rules," it eluded me completely.
> >
> > I would agree with Mike that "...keeping a type code in a 
> superclass in
> > order to keep a list of the subclass members is [not] 
> something we want
> > to do."  Surely, the UML experts can show us how to enumerate the
> > subclass names the proper way, and doing away with the 
> instance data in
> > "party.type" which simulates EDIFACT's 1131/3055 pair.
> >
> > William J. Kammerer
> > FORESIGHT Corp.
> > 4950 Blazer Pkwy.
> > Dublin, OH USA 43017-3305
> > +1 614 791-1600
> >
> > Visit FORESIGHT Corp. at http://www.foresightcorp.com/
> > "accelerating time-to-trade"
> >
> > ------------------------------------------------------------------
> > To unsubscribe from this elist send a message with the single word
> > "unsubscribe" in the body to: ebxml-core-request@lists.ebxml.org
> 
> --
> Michael C. Rawlins, Rawlins EC Consulting
> http://www.metronet.com/~rawlins/
> 
> 
> 
> ------------------------------------------------------------------
> To unsubscribe from this elist send a message with the single word
> "unsubscribe" in the body to: ebxml-core-request@lists.ebxml.org
> 
> 
> 
> 
> 
> 
> 
> ------------------------------------------------------------------
> To unsubscribe from this elist send a message with the single word
> "unsubscribe" in the body to: ebxml-core-request@lists.ebxml.org
> 


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

Search: Match: Sort by:
Words: | Help


Powered by eList eXpress LLC