Also note that we did have a discussion on this topic back in November 2010 [1] which touched on some of the points you've mentioned here.
[1] http://markmail.org/message/yyqtyr7pttfvjhom Michael Glavassevich XML Parser Development IBM Toronto Lab E-mail: [email protected] E-mail: [email protected] Michael Glavassevich <[email protected]> wrote on 09/08/2011 08:51:55 AM: > Hi Mukul, > > Thanks for the summary, though I'm sure you're well aware that > decisions need to be made through discussion here on the mailing > list. If you find yourself in an off-list discussion, bring it back > to the list first and summarize your thoughts so that the community > has an opportunity to weigh in. > > Thanks. > > Michael Glavassevich > XML Parser Development > IBM Toronto Lab > E-mail: [email protected] > E-mail: [email protected] > > Mukul Gandhi <[email protected]> wrote on 09/08/2011 05:29:30 AM: > > > Hi all, > > I thought that it's good that I write about this issue to > > xerces-dev list, since the code base changes that we did within Xerces > > recently (the commit trace for these changes are in this mail trail) > > affects a significant implementation design about use of XSD 1.1 CTA > > feature, when we would use the XSD validator with Xerces. > > > > There was a private discussion (and I'm writing here, some of design > > decisions we agreed in that discussion) that went between some of > > committers at Xerces, about devising a better design to select "XPath > > subset" vs "full XPath language" while using XSD 1.1 CTA with Xerces. > > We felt that there's value in supporting both of these XPath modes, > > and the selection of this must be controlled by a Xerces feature (so > > the user may explicitly decide, that which XPath mode should be active > > during a validation episode, and no implicit fall back from "XPath > > subset" to "full XPath" must occur [which occurred before this code > > base change] -- we felt, that this was an ambiguous and isn't a good > > design for XSD 1.1 CTA processing). > > > > We also felt, that other than having an improved technical design as > > mentioned above by providing this strict separation (via implementing > > a Xerces feature) of XPath mode selection, we would also get following > > benefits: > > > > 1. Supporting the subset can provide better performance, and can > > improve inter-op with other XSD 1.1 implementations that only support > > the subset. > > 2. Supporting full XPath helps us remain compatible with Saxon (which > > is another well known XSD 1.1 implementation). > > > > This particular code base change, implemented a Xerces feature > > identified by the string Constants.XERCES_FEATURE_PREFIX + > > Constants.CTA_FULL_XPATH_CHECKING_FEATURE (Class "Constants" belongs > > to package, org.apache.xerces.impl), which by default is 'false' > > (which means that XPath subset is active) and can be toggled to 'true' > > (which activates full XPath for CTA, using the PsychoPath XPath 2.0 > > engine) by setting this feature on the JAXP SchemaFactory. > > > > Please feel free to provide comments about these code base changes.
