Your schema is fine. It is a Xerces bug. Would you please open a bugzilla bug for it?
Khaled [EMAIL PROTECTED] wrote: > I'd like to use following schema (dummy.xsd): > > <?xml version="1.0" encoding="UTF-8"?> > > <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" > xmlns:pr="http://www.homag.de/proresult" > targetNamespace="http://www.homag.de/proresult" > elementFormDefault="qualified" > attributeFormDefault="unqualified"> > > <xs:attributeGroup name="AttrDERIVED1"> > <xs:attribute name="Derived1Name" type > ="xs:string" use="required"/> > </xs:attributeGroup> > > <xs:complexType name="DERIVED1"> > <xs:complexContent> > <xs:extension base="pr:BASE"> > <xs:attributeGroup ref="pr:AttrDERIVED1"/> > </xs:extension> > </xs:complexContent> > </xs:complexType> > > <xs:attributeGroup name="AttrDERIVED2"> > <xs:attribute name="Derived2Name" type > ="xs:string" use="required"/> > </xs:attributeGroup> > > <xs:complexType name="DERIVED2"> > <xs:complexContent> > <xs:extension base="pr:BASE"> > <xs:attributeGroup ref="pr:AttrDERIVED2"/> > </xs:extension> > </xs:complexContent> > </xs:complexType> > > <xs:attributeGroup name="AttrDERIVED3"> > <xs:attribute name="Derived3Name" type > ="xs:string" use="required"/> > </xs:attributeGroup> > > <xs:complexType name="DERIVED3"> > <xs:complexContent> > <xs:extension base="pr:BASE"> > <xs:attributeGroup ref="pr:AttrDERIVED3"/> > </xs:extension> > </xs:complexContent> > </xs:complexType> > > <xs:attributeGroup name="AttrBASE"> > <xs:attribute name="BaseName" type > ="xs:string" use="required"/> > </xs:attributeGroup> > > <xs:complexType name="BASE"> > <xs:sequence > minOccurs="0" maxOccurs="unbounded"> > <xs:element name="BASE" type="pr:BASE" > minOccurs="0" maxOccurs="1"/> > </xs:sequence> > <xs:attributeGroup ref="pr:AttrBASE"/> > </xs:complexType> > > <xs:element name="PRORESULT"> > <xs:complexType> > <xs:all> > <xs:element name="BASE" type="pr:BASE" > minOccurs="0" maxOccurs="1"/> > </xs:all> > </xs:complexType> > </xs:element> > > </xs:schema> > > There are a base type ("BASE") and 3 derived types > ("DERIVED1".."DERIVED3"). > A BASE type can contain itself recursively. > > Calling the XERCES parser (V.1.7.0, latest stable version) with the xml > file below (pparse -v=always -n -s -f dummy.xml) causes an error: > Message: Type 'pr:DERIVED3' that is used in xsi:type is not derived from > the type of element 'BASE' > > <?xml version="1.0" encoding="iso-8859-1"?> > <pr:PRORESULT xmlns:pr="http://www.homag.de/proresult" > xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" > xsi:schemaLocation="http://www.homag.de/proresult > dummy.xsd"> > > <pr:BASE xsi:type="pr:DERIVED1" BaseName="Base" Derived1Name="Derived1a"> > <pr:BASE xsi:type="pr:DERIVED2" BaseName="Base" Derived2Name > ="Derived2a"> > <pr:BASE xsi:type="pr:DERIVED3" BaseName="Base" Derived3Name > ="Derived3a"> > </pr:BASE> > </pr:BASE> > </pr:BASE> > </pr:PRORESULT> > > Using element DERIVED2 instead of DERIVED3 works. > > My questions are: > 1. Is it allowed to use recursive types containing itself? > 2. Are there limits for derivations? > 3. Or is it a Xerces bug? > > Thanks in advance. > > Regards > Thomas > > [EMAIL PROTECTED] > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
