Ah, well so much for that idea then. :)
> -----Original Message----- > From: Melissa Turner [mailto:[EMAIL PROTECTED]] > Sent: Thursday, February 21, 2002 5:22 PM > To: [EMAIL PROTECTED] > Subject: Re: complexType extending a simpleType > > > On Thursday, February 21, 2002, at 01:43 , R J Scheuerle Jr wrote: > > > Talked to Glen and Tom on the chat, and they think that > > InternationalPrice > > should extend String. > > <snip> > > Comments ? > > > > String is final, as are the primitive type wrapper classes. > > +Melissa > > > Rich Scheuerle > > XML & Web Services Development > > 512-838-5115 (IBM TL 678-5115) > > > > > > > > Simon Fell > > <[EMAIL PROTECTED] To: axis- > > [EMAIL PROTECTED] > > co.uk> cc: > > Subject: Re: > > complexType extending a simpleType > > 02/21/2002 03:25 > > PM > > Please respond to > > axis-dev > > > > > > > > > > > > FWIW, I ran into this doing the Group D doc/literal interop > tests for > > pocketSOAP, and took exactly the same approach. > > > > Cheers > > Simon > > > > On Thu, 21 Feb 2002 15:12:03 -0600, in soap you wrote: > > > >> According to XML Schema Primer 0 Chapter 2.5.1, a > complexType can be > >> derived from a simple type to add attribute information. > >> > >> > >> Lets say you had the following schema: > >> > >> <complexType name="purchaseItem"> > >> <complexContent> > >> <sequence> > >> <element name="itemName" type="xsd:string" /> > >> <element name="price" type="xsd:string" /> > >> </sequence> > >> </complexContent> > >> </complexType> > >> > >> The above could be sent over the wire as: > >> > >> <purchaseItem> > >> <itemName> > >> Widget > >> </item> > >> <price> > >> 1.00 > >> </price> > >> <purchaseItem> > >> > >> And the above would be modeled as a java bean named > PurchaseItem with > >> two > >> String properties. > >> > >> > >> Now let's say you extend this for an international market, > thus the > >> price > >> needs to know the > >> currency. Since it is closely tied to the price, you want > to represent > >> currency as an > >> attribute on price. Here's how to represent this in xml schema. > >> > >> <complexType name="internationalPrice"> > >> <complexContent> > >> <simpleContent> > >> <extension base="xsd:string"/> > >> <attribute name="currency" type="xsd:string"> > >> </extension> > >> </simpleContent> > >> <complexContent> > >> </complexType> > >> > >> <complexType name="purchaseItem"> > >> <complexContent> > >> <sequence> > >> <element name="itemName" type="xsd:string" /> > >> <element name="price" type="tns:internationalPrice" /> > >> </sequence> > >> </complexContent> > >> </complexType> > >> > >> So this means that price is an element whose value is a string and > >> has a > >> currency attribute. > >> > >> Here is an example over the wire: > >> > >> <purchaseItem> > >> <itemName> > >> Widget > >> </item> > >> <price currency="USDollars"> > >> 1.00 > >> </price> > >> <purchaseItem> > >> > >> > >> We don't support extension of simpleTypes yet. When we do, we need > >> to generate a PurchaseItem bean (as before) and a > InternationalPrice > >> bean. > >> > >> However, note that the InternationalPrice has a "raw" value that is > >> serialized > >> directly...not within an element and not as an attribute > value. The > >> serializer and deserializer need to know about this raw > value, and the > > bean > >> requires > >> a special property name to get to the raw value. (I > propose getValue > >> and > >> setValue > >> accessors, which match what we do with enumeration > classes...our other > > kind > >> of simpleType). > >> > >> So both emitters, bean serializer, and bean deserializer > will need to > >> have > >> extra code to support this feature. (Note that this is an optional > > JAX-RPC > >> feature). > >> > >> > >> Comments? > >> > >> > >> > >> > >> > >> > >> Rich Scheuerle > >> XML & Web Services Development > >> 512-838-5115 (IBM TL 678-5115) > > > > > > > > >