- From: Michael Kay <mike@saxonica.com>
- Date: Sat, 15 Jul 2006 02:24:50 +0100
- To: "'Pierre Attar'" <pat@tireme.fr>, <xmlschema-dev@w3c.org>
> > Thanks for your answer but I don't really see where, in this > sample, essaiRestrict complexeType allows art1 AND s1. Sorry, I misread your schema due to incorrect indentation. Saxon actually allows this schema through, because it uses a different algorithm for detecting valid restrictions than the one described in the 1.0 spec. I suspect you've hit one of the cases where the algorithm in the spec fails to allow restrictions that in fact make perfect sense. Michael Kay http://www.saxonica.com/ > 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 Saturday, 15 July 2006 01:25:14 UTC