[
Lists Home |
Date Index |
Thread Index
]
Here are the two instances that you give (simplified):
<time xsi:type="complexTime"><hour>14</hour><min>59</min></time>
<time xsi:type="simpleTime">14:59</time>
I don't want to be embarrassing, but, practically, from the instances
creator point of view (the one that write an instance), is it differing so
much with the following ?
<time-complex><hour>14</hour><min>59</min></time>
<time-simple>14:59</time>
Thanks a lot everybody for your assistance.
-----Message d'origine-----
De : Dare Obasanjo [mailto:dareo@microsoft.com]
Envoyé : mardi 9 septembre 2003 15:37
À : Chiusano Joseph
Cc : GARNIER Pierre; xml-dev@lists.xml.org
Objet : RE: [xml-dev] Re: RE : [xml-dev] Text or tags choice with XSD
Actually I was wrong. I've never thought about solving the problem using
xsi:type before. Using xsi:type makes it possible, schema and instances
follow
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
elementFormDefault="qualified" targetNamespace="urn:foo"
xmlns:foo="urn:foo">
<xs:element name="time" type="foo:abstractType" />
<xs:complexType name="abstractType" abstract="true" mixed="true">
<xs:sequence>
<xs:element name="placeholder" minOccurs="0" />
</xs:sequence>
</xs:complexType>
<xs:complexType name="simpleTime" mixed="true">
<xs:complexContent>
<xs:restriction base="foo:abstractType">
<xs:sequence>
<xs:element name="placeholder" maxOccurs="0" />
</xs:sequence>
</xs:restriction>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="removeMixed" mixed="false" abstract="true">
<xs:complexContent>
<xs:restriction base="foo:simpleTime" />
</xs:complexContent>
</xs:complexType>
<xs:complexType name="complexTime">
<xs:complexContent>
<xs:extension base="foo:removeMixed">
<xs:sequence>
<xs:element name="hour" type="xs:int" />
<xs:element name="min" type="xs:int" />
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:schema>
<time xmlns="urn:foo" xmlns:foo="urn:foo"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:type="foo:complexTime"><hour>14</hour><min>59</min></time>
<time xmlns="urn:foo" xmlns:foo="urn:foo"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:type="foo:simpleTime">14:59</time>
________________________________
From: Chiusano Joseph [mailto:chiusano_joseph@bah.com]
Sent: Tue 9/9/2003 7:14 AM
To: Dare Obasanjo
Cc: GARNIER Pierre; xml-dev@lists.xml.org
Subject: Re: [xml-dev] Re: RE : [xml-dev] Text or tags choice with XSD
<Quote>
such content models are not describable with W3C XML Schema. </Quote>
I see...the original example below cannot have a base type from which a
derived type is created, because of the how the 2 content models are
represented. Is that what you're driving at?
Kind Regards,
Joe Chiusano
Booz | Allen | Hamilton
Dare Obasanjo wrote:
>
> That would be a neat trick. Do you have an example of what the schema
> definition would be? I've always been of the impression that such
> content models are not describable with W3C XML Schema.
>
>
>
> ________________________________
>
> From: Chiusano Joseph [mailto:chiusano_joseph@bah.com]
> Sent: Tue 9/9/2003 6:44 AM
> To: GARNIER Pierre
> Cc: 'xml-dev@lists.xml.org'
> Subject: [xml-dev] Re: RE : [xml-dev] Text or tags choice with XSD
>
> Oops - I forgot about that. Then you should probably use abstract
> types (see section 4.7 Abstract Elements and Types of the Schema
> Primer) and use xsi:type in your instance document to define which
> type is being used at runtime.
>
> Kind Regards,
> Joe Chiusano
> Booz | Allen | Hamilton
>
> GARNIER Pierre wrote:
> >
> > No, union are not usable within complex types.
> >
> > > Pierre,
> > >
> > > This can be done with Union types [1].
> > >
> > > Kind Regards,
> > > Joe Chiusano
> > > Booz | Allen | Hamilton
> > >
> > > [1]
> > > http://www.w3.org/TR/2001/REC-xmlschema-0-20010502/primer.html#Uni
> > > onDt
> > >
> > > GARNIER Pierre wrote:
> > > >
> > > > Hi,
> > > >
> > > > Here are two <time> elements differing only in there content :
> > > >
> > > > 1)
> > > > <doc>
> > > > <time>14:09<time>
> > > > </doc>
> > > >
> > > > 2)
> > > > <doc>
> > > > <time><hour>14</hour><min>09</min></time>
> > > > </doc>
> > > >
> > > > In an XSD schema, how to indicate that the <time> element can
> > > > contain text and only text or <hour> tag followed by <min> tag?
> > > >
> > > > I tried with a choice group containing two <time> elements with
> > > > different types but it doesn't work : it is not possible to have
> > > > two elements with the same name.
> > > >
> > > > Thanks.
> > > > Pierre.
> > > >
> > > > ----------------------------------------------------------------
> > > > -
> > > > The xml-dev list is sponsored by XML.org <http://www.xml.org>, an
> > > > initiative of OASIS <http://www.oasis-open.org>
> > > >
> > > > The list archives are at http://lists.xml.org/archives/xml-dev/
> > > >
> > > > To subscribe or unsubscribe from this list use the subscription
> > > > manager: <http://lists.xml.org/ob/adm.pl>
> > >
|