Charles Fineman wrote:
> Say i've got a type that appears in a request... say it represents a
> shipment. I want it to contain things like from and to address elements
> as well as a sequence of the pieces being shipped.
>
> Say the operation is supposed to calculate the cost to ship each piece.
> I would like the response type to look just like the request type but
> with a price element under each of the item types. For example:
>
> Request:
> <shipment>
> <from/>
> <to/>
> <pieces>
> <piece>
> <weight>100</weight>
> </piece>
> <piece>
> <weight>5</weight>
> </piece>
> </pieces>
> </shipment>
>
> Response:
> <shipment>
> <from/>
> <to/>
> <pieces>
> <piece>
> <weight>100</weight>
> <cost>10.00</cost>
> </piece>
> <piece>
> <weight>5</weight>
> <cost>5.00</cost>
> </piece>
> </pieces>
> </shipment>
>
> It would be great if I could easily extend the request type to turn it
> into the response type but I'm not sure there is an easy way to do that.
One possible way is to have an element with minOccurs="0":
<xs:element name="pieces">
<xs:complexType>
<xs:sequence>
<xs:element name="piece" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="weight" type="xs:double" />
<xs:element name="cost" minOccurs="0" maxOccurs="1"
type="xs:double" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
That way you can have <weight> and <cost> children or only a <weight> child.
--
Martin Honnen
http://JavaScript.FAQTs.com/