W3C home > Mailing lists > Public > xmlschema-dev@w3.org > June 2004

RE: XML schema problem for two definitions of the same element.

From: Michael Kay <mhk@mhk.me.uk>
Date: Fri, 18 Jun 2004 18:07:29 +0100
To: "'Hess Yvan'" <yvan.hess@imtf.ch>
Cc: <xmlschema-dev@w3.org>
Message-Id: <20040618171139.9CB56A1A27@frink.w3.org>

Sorry: to be more precise, you need

sequence
  document-type
  choice
    sequence
      from
      to
    /sequence
    sequence
      filename
      filesize
    /sequence
  /choice
/sequence

Michael Kay 

> -----Original Message-----
> From: Hess Yvan [mailto:yvan.hess@imtf.ch] 
> Sent: 18 June 2004 17:30
> To: 'Michael Kay'
> Cc: 'xmlschema-dev@w3.org'
> Subject: RE: XML schema problem for two definitions of the 
> same element.
> 
> Michael,
> 
> I did like as you recommended (choice with two sequence) but 
> XML validators
> return an error saying "ambiguity would be created for those 
> two particles
> xml schema". I also tried to have a fixed value for the <documenttype>
> element, but it's the same problem. Any idea?
> 
> Regards. Yvan
> 
> -----Original Message-----
> From: Michael Kay [mailto:mhk@mhk.me.uk]
> Sent: vendredi, 18. juin 2004 11:27
> To: 'Hess Yvan'; xmlschema-dev@w3.org
> Subject: RE: XML schema problem for two definitions of the 
> same element.
> 
> 
> XML Schema doesn't allow types to be context-sensitive in 
> this kind of way.
> The closest you can get is to define the type of "metadata" 
> as a choice
> giving the two possible structures.
> 
> Michael Kay  
> 
> > -----Original Message-----
> > From: xmlschema-dev-request@w3.org 
> > [mailto:xmlschema-dev-request@w3.org] On Behalf Of Hess Yvan
> > Sent: 18 June 2004 08:49
> > To: 'xmlschema-dev@w3.org'
> > Subject: XML schema problem for two definitions of the same element.
> > 
> > 
> > I have a XML situation that have many time the same element 
> but with a
> > different defininiton as illustrated bellow and I would like 
> > to create the
> > XML schema that can validate this document. As you can see only the
> > <metadata> element differs from the first and second 
> > <document> element. The
> > first <document> element must occur only once and the second 
> > <document>
> > element can appears 0..unbounded. How can solve my problem?
> > 
> > Thanks for your answer.
> > 
> > Regards. Yvan
> > 
> > -------------
> > XML document:
> > -------------
> > 
> > <edoc>
> >    <document>
> >       <metadata>
> >          <documenttype>BODY</documenttype>
> >          <from>yhe</from>
> >          <to>yvan</to>
> >       </metadata>
> >       <content>this is the content of the first document</content>
> >    </document>
> >    <document>
> >       <metadata>
> >          <documenttype>ATTACHMENT</documenttype>
> >          <filename>test.doc</filename>
> >          <filesize>100</filesize>
> >       </metadata>
> >       <content>this is the content of the second document</content>
> >    </document>
> > </edoc>
> > 
> > -------------
> > XML schema:
> > -------------
> > 
> > <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
> > elementFormDefault="qualified">
> >    <xs:element name="edoc">
> >       <xs:complexType>
> >          <xs:sequence>
> >             <xs:element name="document">
> >                <xs:complexType>
> >                   <xs:sequence>
> >                      <xs:element name="metadata">
> >                         <xs:complexType>
> >                            <xs:sequence>
> >                               <xs:element name="documenttype"
> > type="xs:string"/>
> >                               <xs:element name="from" 
> > type="xs:string"/>
> >                               <xs:element name="to" 
> type="xs:string"/>
> >                            </xs:sequence>
> >                         </xs:complexType>
> >                      </xs:element>
> >                      <xs:element name="content" type="xs:string"/>
> >                   </xs:sequence>
> >                </xs:complexType>
> >             </xs:element>
> >             <xs:element name="document" minOccurs="0" 
> > maxOccurs="unbounded">
> >                <xs:complexType>
> >                   <xs:sequence>
> >                      <xs:element name="metadata">
> >                         <xs:complexType>
> >                            <xs:sequence>
> >                               <xs:element name="documenttype"
> > type="xs:string"/>
> >                               <xs:element name="filename" 
> > type="xs:string"/>
> >                               <xs:element name="filesize" 
> > type="xs:string"/>
> >                            </xs:sequence>
> >                         </xs:complexType>
> >                      </xs:element>
> >                      <xs:element name="content" type="xs:string"/>
> >                   </xs:sequence>
> >                </xs:complexType>
> >             </xs:element>
> >          </xs:sequence>
> >       </xs:complexType>
> >    </xs:element>
> > </xs:schema>
> > 
> > 
> > Yvan Hess
> > Chief Software Architect
> > 
> > e-mail: yvan.hess@imtf.ch
> > phone : +41 (0)26 460 66 66 
> > fax   : +41 (0)26 460 66 60 
> > 
> > Informatique-MTF SA
> > Route du Bleuet 1 
> > CH-1762 Givisiez 
> >         
> > Systemintegrators for eDocuments 
> > http://www.imtf.com
> > 
> > DISCLAIMER 
> > This message is intended only for use by the person to whom 
> > it is addressed.
> > It may contain information that is privileged and 
> > confidential. Its content
> > does not constitute a formal commitment by IMTF. If you are 
> > not the intended
> > recipient of this message, kindly notify the sender 
> > immediately and destroy
> > this message. Thank You.
> > 
> > 
> > 
> > 
> 
> 
Received on Friday, 18 June 2004 13:11:39 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Tuesday, 11 January 2011 00:14:44 GMT