- From: Xia Li <xli@galdosinc.com>
- Date: Fri, 14 Jul 2006 13:02:55 -0700
- To: "Pierre Attar" <pat@tireme.fr>, <xmlschema-dev@w3c.org>
Hi, I used to encounter such a problem and fix it by moving the occurrence constraint from the particles of a model group to the model group itself such as, <xs:complexType name="essai"> <xs:choice> <xs:choice minOccurs="0" maxOccurs="unbounded"> <xs:element ref="art1"/> <xs:element ref="art2"/> </xs:choice> <xs:choice minOccurs="0" maxOccurs="unbounded"> <xs:element ref="s1"/> <xs:element ref="s2"/> </xs:choice> </xs:choice> </xs:complexType> <xs:complexType name="essaiRestrict"> <xs:complexContent> <xs:restriction base="essai"> <xs:choice> <xs:choice maxOccurs="unbounded"> <xs:element ref="art1"/> <xs:element ref="art2"/> </xs:choice> <xs:choice maxOccurs="unbounded"> <xs:element ref="s1" /> <xs:element ref="s2"/> </xs:choice> </xs:choice> </xs:restriction> </xs:complexContent> </xs:complexType> I am not sure it is suitable for your case, just a possible work around. Lisa -----Original Message----- From: xmlschema-dev-request@w3.org [mailto:xmlschema-dev-request@w3.org] On Behalf Of Pierre Attar Sent: Thursday, July 13, 2006 7:33 AM To: xmlschema-dev@w3c.org Subject: Fwd: RE: Resctriction problem on complexType Michael, Thanks for your answer but I don't really see where, in this sample, essaiRestrict complexeType allows art1 AND s1. The basis still remains a choice. The only restriction made is to make mandatory the two choices contained in the first one. FYI, here are the different logs of tools : Xerces C 2.7 : Error at file T:\proj\tmp\pbRestriction.xsd, line 20, char 39 Message: Recurse: There is not a complete functional mapping between the particles XSDValid : file:/T:/proj/tmp/pbRestriction.xsd:E:20:2: complexType is an invalid restriction of its base type: "choice" particle is not a valid restriction of corresponding "choice" particle in base type [rcase-Recurse.2.1] [derivation-ok-restriction.5.3] SQC : Initializing Schema Quality Checker. Please wait ... SchemaQualityChecker has been initialized PROCESSING T:\proj\tmp\pbRestriction.xsd time : 2006-07-13T15:29:53 ... T:\proj\tmp\pbRestriction.xsd (file 1 of 1) now being read ... ERROR file = file:T:/proj/tmp/pbRestriction.xsd line 35 column 19 SEVERITY: 1 ERROR TYPE: 2 MESSAGE TYPE REFINEMENT ERROR (content type incompatible with the content type of the basetype): In the definition of complexType essaiRestrict, elementOnly content model (<xs:c hoice maxOccurs="1" minOccurs="1"> <xs:choice maxOccurs="unbounded" minOccurs="1"> <xs:element maxOccurs="1" minOccurs="1" name="art1" nillable="false"/> <xs:element maxOccurs="1" minOccurs="1" name="art2" nillable="false"/> </xs:choice> <xs:choice maxOccurs="1" minOccurs="1"> <xs:element maxOccurs="unbounded" minOccurs="1" name="s1" nillable="false"/> <xs:element maxOccurs="unbounded" minOccurs="1" name="s2" nillable="false"/> </xs:choice> </xs:choice> ) is not a restriction of elementOnly content model (<xs:choice maxOccurs="1" mi nOccurs="1"> <xs:choice maxOccurs="unbounded" minOccurs="0"> <xs:element maxOccurs="1" minOccurs="1" name="art1"/> <xs:element maxOccurs="1" minOccurs="1" name="art2"/> </xs:choice> <xs:choice maxOccurs="1" minOccurs="0"> <xs:element maxOccurs="unbounded" minOccurs="1" name="s1"/> <xs:element maxOccurs="unbounded" minOccurs="1" name="s2"/> </xs:choice> </xs:choice> ), the content type defined by the basetype. Regards, Pierre >at 16:13 13/07/2006, you wrote: >>Your restricted type allows an art1 element followed by an s1 element. The >>base type doesn't allow this. It's invalid to define a restricted type that >>allows content that the base type doesn't permit. >> >>Michael Kay >>http://www.saxonica.com/ >> >> >> > >> > The aim is ti defne a restricted type by setting minOccurs to >> > 1 to included choices. >> > >> > <?xml version="1.0" encoding="UTF-8"?> >> > <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" >> > elementFormDefault="qualified" attributeFormDefault="unqualified"> >> > <xs:complexType name="essai"> >> > <xs:choice> >> > <xs:choice minOccurs="0" maxOccurs="unbounded"> >> > <xs:element ref="art1"/> >> > <xs:element ref="art2"/> >> > </xs:choice> >> > <xs:choice minOccurs="0"> >> > <xs:element ref="s1" maxOccurs="unbounded"/> >> > <xs:element ref="s2" maxOccurs="unbounded"/> >> > </xs:choice> >> > </xs:choice> >> > </xs:complexType> >> > >> > <xs:complexType name="essaiRestrict"> >> > <xs:complexContent> >> > <xs:restriction base="essai"> >> > <xs:choice> >> > <xs:choice maxOccurs="unbounded"> >> > <xs:element ref="art1"/> >> > <xs:element ref="art2"/> >> > </xs:choice> >> > <xs:choice> >> > <xs:element ref="s1" maxOccurs="unbounded"/> >> > <xs:element ref="s2" maxOccurs="unbounded"/> >> > </xs:choice> >> > </xs:choice> >> > </xs:restriction> >> > </xs:complexContent> >> > </xs:complexType> >> > >> > <xs:element name="art1"/> >> > <xs:element name="art2"/> >> > <xs:element name="s1"/> >> > <xs:element name="s2"/> >> > >> > </xs:schema> >> > >> > Can anybody explain the problem ? >> > >> > Thanks in advance >> > >> > -- >> > Bruno Chatel >> > Tel : (+33) (0)4 96 11 14 57 >> > bcha@chadocs.com >> > http://www.chadocs.com >> > -------------------------------------- >> > >> > > >Pierre Attar (mailto:attar@tireme.fr) >Consultant in Structured Document engineering >Consultant en informatique documentaire >Tirème SARL (http://www.tireme.fr) ># : +33 1 43 41 12 13 Pierre Attar (mailto:pat@tireme.fr) Consultant en informatique documentaire XML Consultant in Structured Document engineering Tirème SARL (http://www.tireme.fr)
Received on Friday, 14 July 2006 20:03:17 UTC