- From: D Gross <justdave@onebox.com>
- Date: Wed, 22 Aug 2001 11:44:58 -0400 (EDT)
- To: xmlschema-dev@w3.org
> There is one tag name <Address>, but based on its
> attribute value of "type", the elements inside of
> <Address> varies.
I would do it like so:
<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2000/10/XMLSchema" elementFormDefault="qualified">
<xsd:element name="top">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="Address" type="US"/>
<xsd:element name="Address" type="China"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:complexType name="US">
<xsd:sequence>
<xsd:element name="Street" type="xsd:string"/>
<xsd:element name="City" type="xsd:string"/>
<xsd:element name="Zip" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="China">
<xsd:sequence>
<xsd:element name="Street" type="xsd:string"/>
<xsd:element name="City" type="xsd:string"/>
<xsd:element name="Province" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
</xsd:schema>
Then your XML would look like this:
<top xmlns:xsi="http://www.w3.org/2000/10/XMLSchema-instance">
<Address xsi:type="US">
<Street>12345 main street</Street>
<City>JoeTown</City>
<Zip>2456</Zip>
</Address>
<Address xsi:type="China">
<Street>12344 lo pai street</Street>
<City>...</City>
<Province>..</Province>
</Address>
</top>
Note the xsi:type and the declaration of the Schema Instance namespace.
-- Dave
D Gross
justdave@onebox.com - email
(312) 777-4000 x7673 - voicemail/fax
__________________________________________________
FREE voicemail, email, and fax...all in one place.
Sign Up Now! http://www.onebox.com
Received on Wednesday, 22 August 2001 11:48:35 UTC