-
Type:
Bug
-
Status: Closed
-
Priority:
Major
-
Resolution: Fixed
-
Affects Version/s: 2.5.0
-
Fix Version/s: 2.6.0
-
Component/s: Validating Parser (XML Schema)
-
Labels:None
-
Environment:Windows XP, Visual C++ 6.0
Running SaxCount -n -f -s rT.xml shows the following errors:
Error at file c:\testcase\schema-restriction/restrictionTest.xsd, line 42, char 30
Message: Recurse: There is not a complete functional mapping between the particles
Error at file c:\testcase\schema-restriction/restrictionTest.xsd, line 63, char 30
Message: Forbidden restriction of 'choice': All,Seq,Leaf
The first error is caused by a restriction of A1_Type, replacing a sequence of O1 with a sequence of O2, O2 being in the substitution group of O1.
The second error is caused by a restriction of B1_Type, replacing a sequence of O1 with a sequence of a choice of O2. Here Xerces complains that a choice should not be matched against a single element; but if Xerces had implemented this rule from the spec (ยง 3.9.6 "Constraints on Particle Schema Components", section "Schema Component Constraint: Particle Valid (Restriction)", point 2.1 "Any top-level element declaration particle (in R or B) which is the
of one or more other element declarations and whose - substitution group- contains at least one element declaration other than itself is treated as if it were a choice group whose
{min occurs} and {max occurs} are those of the particle, and whose {particles} consists of one particle with {min occurs}and
{max occurs}of 1 for each of the declarations in its - substitution group- ") the sequence of O1 would have been replaced with a sequence of a choice between O1 and O2, and this would have matched this choice with the one in the B2_Type declaration.
Alberto