Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Fixed
-
2.5.0
-
None
-
Windows XP, Visual C++ 6.0
Description
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