probleme de restriction

Pierre Attar <[email protected]>
Newsgroups gmane.text.xml.french.tech
Message-ID <[email protected]>
Bonjour,
J'essaie de réaliser la restriction suivante sur des choix  :

         <xs:complexType name="essai">
                 <xs:choice>
                         <xs:choice minOccurs="0" maxOccurs="unbounded">
                                 <xs:element name="art1"/>
                                 <xs:element name="art2"/>
                         </xs:choice>
                         <xs:choice minOccurs="0">
                                 <xs:element name="s1" maxOccurs="unbounded"/>
                                 <xs:element name="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"/>

En gros, dans essai restrict, on rend obligatoire 
les un des deux choix. Bien sûr, dans cet exemple 
ca ne veurt rien dire mais j'ai essayé d'isoler le problème pour simplifier.

Tous les parsers crient mais je ne comprend pas 
pourquoi et la spec me promène de bout de validation en bout de validation.

Si vous avez des idées ?

Pierre


Xerces C 2.7 dit :
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 dit :
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 dit :
Initializing Schema Quality Checker. Please wait ...
SchemaQualityChecker has been initialized
PROCESSING T:\proj\djo\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.





Pierre Attar (mailto:[email protected])
Consultant en informatique documentaire XML
Consultant in Structured Document engineering
Tirème SARL (http://www.tireme.fr)
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.