[ http://issues.apache.org/jira/browse/XERCESC-1281?page=all ]
Boris Kolpackov updated XERCESC-1281:
-------------------------------------
Attachment: subst-group-in-restriction.patch
I've come up with a fix for the first part of this bug, i.e., having derived
elements that are valid substitutions for base's elements in inheritance by
restriction. The attached patch is against 2.7.0. With this patch I've been
able to successfully process GML 3.1.1 schemas.
> Validation by restriction doesn't take into account substitution groups
> -----------------------------------------------------------------------
>
> Key: XERCESC-1281
> URL: http://issues.apache.org/jira/browse/XERCESC-1281
> Project: Xerces-C++
> Issue Type: Bug
> Components: Validating Parser (Schema) (Xerces 1.5 or up only)
> Affects Versions: 2.5.0
> Environment: Windows XP, Visual C++ 6.0
> Reporter: Alberto Massari
> Attachments: restrictionTest.xsd, rT.xml,
> subst-group-in-restriction.patch
>
>
> 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
> {substitution group affiliation} 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
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]