- From: Michael Kay <mhk@mhk.me.uk>
- Date: Fri, 18 Jun 2004 10:26:46 +0100
- To: "'Hess Yvan'" <yvan.hess@imtf.ch>, <xmlschema-dev@w3.org>
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 05:27:23 UTC