- From: George Cristian Bina <george@sync.ro>
- Date: Wed, 09 Nov 2005 09:56:29 +0200
- To: "Kevin Y. Kim (Lists)" <kykim_lists@mac.com>
- Cc: xmlschema-dev@w3.org
Hi Kevin, The best you can do is to make the element optional and the complex type mixed. That will give you a relaxed model that will cover both cases: <xs:complexType name="foo2" mixed="true"> <xs:sequence> <xs:element name="bar" type="xs:string" minOccurs="0"/> </xs:sequence> </xs:complexType> Additional constraints can be enforced then either at application level or embedding Schematron rules in your XML Schema. There is also the option of using xsi:type to specify the type for foo in the instance document, see Michael Kay's answer two days ago on this list. Then you will have something like: <some_xml> <foo xsi:type="foo1">some_value</foo> <foo xsi:type="foo2"> <bar>another_value</bar> </foo> <foo xsi:type="foo1">third_value</foo> </some_xml> Best Regards, George --------------------------------------------------------------------- George Cristian Bina <oXygen/> XML Editor, Schema Editor and XSLT Editor/Debugger http://www.oxygenxml.com Kevin Y. Kim (Lists) wrote: > > Hi, > > I'm trying to define a schema that will support the following: > > 1 <some_xml> > 2 <foo>some_value</foo> > 3 <foo> > 4 <bar>another_value</bar> > 5 <foo> > 6 <foo>third_value</foo> > 7 </some_xml> > > Now, I know how to defined the schema for each case: > For 2 & 6: > <xsd:complexType name="foo1"> > <xsd:simpleContent> > <xsd:extension type="xsd:string"/> > </xsd:simpleContent> > </xsd:complexType> > > For 3 - 5: > <xsd:complexType name="foo2"> > <xsd:sequence> > <xsd:element name="bar" type="xsd:string"/> > </xsd:sequence> > </xsd:complexType> > > But how would I defined a schema to encompass both? > > Thanks, > -kevin > > >
Received on Wednesday, 9 November 2005 07:55:12 UTC