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

 


Help: OASIS Mailing Lists Help | MarkMail Help

 


 

   RE : [xml-dev] Re: RE : [xml-dev] Text or tags choice with XSD

[ 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>
> > > 




 

News | XML in Industry | Calendar | XML Registry
Marketplace | Resources | MyXML.org | Sponsors | Privacy Statement

Copyright 2001 XML.org. This site is hosted by OASIS