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: mrgla...@ca.ibm.com E-mail: mrgla...@apache.org Mukul Gandhi <muk...@apache.org> 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.