Author: mukulg Date: Thu Dec 1 03:57:40 2011 New Revision: 1208946 URL: http://svn.apache.org/viewvc?rev=1208946&view=rev Log: committing an implementation of a feature to control, if comment and PI nodes should be visible in schema 1.1 <assert> XDM trees. the default value of this feature is 'false'; therefore by default, comments and PIs won't be visible within <assert> XDM trees and an opposite behavior for this could be enabled by setting this feature to 'true'.
the decision to provide an user option for this, was recently made by the XML Schema WG. Modified: xerces/java/branches/xml-schema-1.1-dev/src/org/apache/xerces/impl/Constants.java xerces/java/branches/xml-schema-1.1-dev/src/org/apache/xerces/impl/xs/XMLSchemaLoader.java xerces/java/branches/xml-schema-1.1-dev/src/org/apache/xerces/impl/xs/XMLSchemaValidator.java xerces/java/branches/xml-schema-1.1-dev/src/org/apache/xerces/impl/xs/traversers/XSDHandler.java xerces/java/branches/xml-schema-1.1-dev/src/org/apache/xerces/jaxp/validation/XMLSchemaValidatorComponentManager.java xerces/java/branches/xml-schema-1.1-dev/src/org/apache/xerces/parsers/StandardParserConfiguration.java xerces/java/branches/xml-schema-1.1-dev/src/org/apache/xerces/parsers/XML11Configuration.java Modified: xerces/java/branches/xml-schema-1.1-dev/src/org/apache/xerces/impl/Constants.java URL: http://svn.apache.org/viewvc/xerces/java/branches/xml-schema-1.1-dev/src/org/apache/xerces/impl/Constants.java?rev=1208946&r1=1208945&r2=1208946&view=diff ============================================================================== --- xerces/java/branches/xml-schema-1.1-dev/src/org/apache/xerces/impl/Constants.java (original) +++ xerces/java/branches/xml-schema-1.1-dev/src/org/apache/xerces/impl/Constants.java Thu Dec 1 03:57:40 2011 @@ -337,6 +337,9 @@ public final class Constants { /** Feature to control full XPath 2.0 checking for CTA processing */ public static final String CTA_FULL_XPATH_CHECKING_FEATURE = "validation/cta-full-xpath-checking"; + /** Feature to control, if comments and PIs should be available in <assert> XDM trees */ + public static final String ASSERT_COMMENT_PI_CHECKING_FEATURE = "validation/assert-comments-and-pi-checking"; + /** Feature to ignore errors caused by unparsed entities ("validation/unparsed-entity-checking") */ public static final String UNPARSED_ENTITY_CHECKING_FEATURE = "validation/unparsed-entity-checking"; @@ -559,6 +562,7 @@ public final class Constants { STRINGS_INTERNED_FEATURE, TYPE_ALTERNATIVES_CHEKING_FEATURE, CTA_FULL_XPATH_CHECKING_FEATURE, + ASSERT_COMMENT_PI_CHECKING_FEATURE, }; /** Xerces properties. */ Modified: xerces/java/branches/xml-schema-1.1-dev/src/org/apache/xerces/impl/xs/XMLSchemaLoader.java URL: http://svn.apache.org/viewvc/xerces/java/branches/xml-schema-1.1-dev/src/org/apache/xerces/impl/xs/XMLSchemaLoader.java?rev=1208946&r1=1208945&r2=1208946&view=diff ============================================================================== --- xerces/java/branches/xml-schema-1.1-dev/src/org/apache/xerces/impl/xs/XMLSchemaLoader.java (original) +++ xerces/java/branches/xml-schema-1.1-dev/src/org/apache/xerces/impl/xs/XMLSchemaLoader.java Thu Dec 1 03:57:40 2011 @@ -146,10 +146,14 @@ XSLoader, DOMConfiguration { protected static final String TOLERATE_DUPLICATES = Constants.XERCES_FEATURE_PREFIX + Constants.TOLERATE_DUPLICATES_FEATURE; - /** Feature identifier: tolerate duplicates */ + /** Feature identifier: full XPath 2.0 support for CTA */ protected static final String CTA_FULL_XPATH = Constants.XERCES_FEATURE_PREFIX + Constants.CTA_FULL_XPATH_CHECKING_FEATURE; + /** Feature identifier: comment and PI nodes for <assert> */ + protected static final String ASSERT_COMMENT_PI = + Constants.XERCES_FEATURE_PREFIX + Constants.ASSERT_COMMENT_PI_CHECKING_FEATURE; + /** Property identifier: Schema DV Factory */ protected static final String SCHEMA_DV_FACTORY = Constants.XERCES_PROPERTY_PREFIX + Constants.SCHEMA_DV_FACTORY_PROPERTY; @@ -168,6 +172,7 @@ XSLoader, DOMConfiguration { NAMESPACE_GROWTH, TOLERATE_DUPLICATES, CTA_FULL_XPATH, + ASSERT_COMMENT_PI, }; // property identifiers Modified: xerces/java/branches/xml-schema-1.1-dev/src/org/apache/xerces/impl/xs/XMLSchemaValidator.java URL: http://svn.apache.org/viewvc/xerces/java/branches/xml-schema-1.1-dev/src/org/apache/xerces/impl/xs/XMLSchemaValidator.java?rev=1208946&r1=1208945&r2=1208946&view=diff ============================================================================== --- xerces/java/branches/xml-schema-1.1-dev/src/org/apache/xerces/impl/xs/XMLSchemaValidator.java (original) +++ xerces/java/branches/xml-schema-1.1-dev/src/org/apache/xerces/impl/xs/XMLSchemaValidator.java Thu Dec 1 03:57:40 2011 @@ -215,6 +215,10 @@ public class XMLSchemaValidator /** Feature identifier: whether to ignore type alternatives */ protected static final String TYPE_ALTERNATIVES_CHECKING = Constants.XERCES_FEATURE_PREFIX + Constants.TYPE_ALTERNATIVES_CHEKING_FEATURE; + + /** Feature identifier: whether to allow comment and PI nodes to be visible during <assert> processing */ + protected static final String ASSERT_COMMENT_PI_CHECKING = + Constants.XERCES_FEATURE_PREFIX + Constants.ASSERT_COMMENT_PI_CHECKING_FEATURE; // property identifiers @@ -298,7 +302,8 @@ public class XMLSchemaValidator UNPARSED_ENTITY_CHECKING, NAMESPACE_GROWTH, TOLERATE_DUPLICATES, - TYPE_ALTERNATIVES_CHECKING + TYPE_ALTERNATIVES_CHECKING, + ASSERT_COMMENT_PI_CHECKING }; @@ -330,6 +335,7 @@ public class XMLSchemaValidator null, null, null, + null, null }; @@ -1145,7 +1151,7 @@ public class XMLSchemaValidator */ public void comment(XMLString text, Augmentations augs) throws XNIException { - if (fSchemaVersion == Constants.SCHEMA_VERSION_1_1) { + if (fSchemaVersion == Constants.SCHEMA_VERSION_1_1 && fCommentsAndPIsForAssert) { fAssertionValidator.comment(text); } @@ -1176,7 +1182,7 @@ public class XMLSchemaValidator public void processingInstruction(String target, XMLString data, Augmentations augs) throws XNIException { - if (fSchemaVersion == Constants.SCHEMA_VERSION_1_1) { + if (fSchemaVersion == Constants.SCHEMA_VERSION_1_1 && fCommentsAndPIsForAssert) { fAssertionValidator.processingInstruction(target, data); } @@ -1362,6 +1368,8 @@ public class XMLSchemaValidator private boolean fIDCChecking; private boolean fTypeAlternativesChecking; + + private boolean fCommentsAndPIsForAssert; /** temporary validated info */ private ValidatedInfo fValidatedInfo = new ValidatedInfo(); @@ -1664,6 +1672,13 @@ public class XMLSchemaValidator fTypeAlternativesChecking = true; } + try { + fCommentsAndPIsForAssert = componentManager.getFeature(ASSERT_COMMENT_PI_CHECKING); + } + catch (XMLConfigurationException e) { + fCommentsAndPIsForAssert = true; + } + // get schema location properties try { fExternalSchemas = (String) componentManager.getProperty(SCHEMA_LOCATION); Modified: xerces/java/branches/xml-schema-1.1-dev/src/org/apache/xerces/impl/xs/traversers/XSDHandler.java URL: http://svn.apache.org/viewvc/xerces/java/branches/xml-schema-1.1-dev/src/org/apache/xerces/impl/xs/traversers/XSDHandler.java?rev=1208946&r1=1208945&r2=1208946&view=diff ============================================================================== --- xerces/java/branches/xml-schema-1.1-dev/src/org/apache/xerces/impl/xs/traversers/XSDHandler.java (original) +++ xerces/java/branches/xml-schema-1.1-dev/src/org/apache/xerces/impl/xs/traversers/XSDHandler.java Thu Dec 1 03:57:40 2011 @@ -182,6 +182,10 @@ public class XSDHandler { protected static final String CTA_FULL_XPATH = Constants.XERCES_FEATURE_PREFIX + Constants.CTA_FULL_XPATH_CHECKING_FEATURE; + /** Feature identifier: comment and PI nodes for <assert> */ + protected static final String ASSERT_COMMENT_PI = + Constants.XERCES_FEATURE_PREFIX + Constants.ASSERT_COMMENT_PI_CHECKING_FEATURE; + /** Feature identifier: namespace prefixes. */ private static final String NAMESPACE_PREFIXES = Constants.SAX_FEATURE_PREFIX + Constants.NAMESPACE_PREFIXES_FEATURE; @@ -416,6 +420,9 @@ public class XSDHandler { // handle full XPath 2.0 feature boolean fFullXPathForCTA = false; + + // handle comments and PIs with <assert> + boolean fCommentsAndPIsForAssert = false; // the XMLErrorReporter private XMLErrorReporter fErrorReporter; @@ -3850,6 +3857,12 @@ public class XSDHandler { } catch (XMLConfigurationException e) { fFullXPathForCTA = false; } + + try { + fCommentsAndPIsForAssert = componentManager.getFeature(ASSERT_COMMENT_PI); + } catch (XMLConfigurationException e) { + fCommentsAndPIsForAssert = false; + } try { fSchemaParser.setFeature( Modified: xerces/java/branches/xml-schema-1.1-dev/src/org/apache/xerces/jaxp/validation/XMLSchemaValidatorComponentManager.java URL: http://svn.apache.org/viewvc/xerces/java/branches/xml-schema-1.1-dev/src/org/apache/xerces/jaxp/validation/XMLSchemaValidatorComponentManager.java?rev=1208946&r1=1208945&r2=1208946&view=diff ============================================================================== --- xerces/java/branches/xml-schema-1.1-dev/src/org/apache/xerces/jaxp/validation/XMLSchemaValidatorComponentManager.java (original) +++ xerces/java/branches/xml-schema-1.1-dev/src/org/apache/xerces/jaxp/validation/XMLSchemaValidatorComponentManager.java Thu Dec 1 03:57:40 2011 @@ -91,6 +91,10 @@ final class XMLSchemaValidatorComponentM private static final String CTA_FULL_XPATH_CHECKING = Constants.XERCES_FEATURE_PREFIX + Constants.CTA_FULL_XPATH_CHECKING_FEATURE; + /** Feature identifier: whether to allow comment and PI nodes to be visible during <assert> processing */ + private static final String ASSERT_COMMENT_PI_CHECKING = + Constants.XERCES_FEATURE_PREFIX + Constants.ASSERT_COMMENT_PI_CHECKING_FEATURE; + /** Feature identifier: disallow DOCTYPE declaration */ private static final String DISALLOW_DOCTYPE_DECL_FEATURE = Constants.XERCES_FEATURE_PREFIX + Constants.DISALLOW_DOCTYPE_DECL_FEATURE; @@ -296,6 +300,7 @@ final class XMLSchemaValidatorComponentM fFeatures.put(UNPARSED_ENTITY_CHECKING, Boolean.TRUE); fFeatures.put(TYPE_ALTERNATIVES_CHECKING, Boolean.TRUE); fFeatures.put(CTA_FULL_XPATH_CHECKING, Boolean.FALSE); + fFeatures.put(ASSERT_COMMENT_PI_CHECKING, Boolean.FALSE); } /** Modified: xerces/java/branches/xml-schema-1.1-dev/src/org/apache/xerces/parsers/StandardParserConfiguration.java URL: http://svn.apache.org/viewvc/xerces/java/branches/xml-schema-1.1-dev/src/org/apache/xerces/parsers/StandardParserConfiguration.java?rev=1208946&r1=1208945&r2=1208946&view=diff ============================================================================== --- xerces/java/branches/xml-schema-1.1-dev/src/org/apache/xerces/parsers/StandardParserConfiguration.java (original) +++ xerces/java/branches/xml-schema-1.1-dev/src/org/apache/xerces/parsers/StandardParserConfiguration.java Thu Dec 1 03:57:40 2011 @@ -135,6 +135,10 @@ public class StandardParserConfiguration /** Feature identifier: whether to use full XPath 2.0 support for CTA processing */ protected static final String CTA_FULL_XPATH_CHECKING = Constants.XERCES_FEATURE_PREFIX + Constants.CTA_FULL_XPATH_CHECKING_FEATURE; + + /** Feature identifier: whether to allow comment and PI nodes to be visible during <assert> processing */ + protected static final String ASSERT_COMMENT_PI_CHECKING = + Constants.XERCES_FEATURE_PREFIX + Constants.ASSERT_COMMENT_PI_CHECKING_FEATURE; // property identifiers @@ -244,6 +248,7 @@ public class StandardParserConfiguration UNPARSED_ENTITY_CHECKING, TYPE_ALTERNATIVES_CHECKING, CTA_FULL_XPATH_CHECKING, + ASSERT_COMMENT_PI_CHECKING, }; addRecognizedFeatures(recognizedFeatures); @@ -263,6 +268,7 @@ public class StandardParserConfiguration setFeature(UNPARSED_ENTITY_CHECKING, true); setFeature(TYPE_ALTERNATIVES_CHECKING, true); setFeature(CTA_FULL_XPATH_CHECKING, false); + setFeature(ASSERT_COMMENT_PI_CHECKING, false); // add default recognized properties Modified: xerces/java/branches/xml-schema-1.1-dev/src/org/apache/xerces/parsers/XML11Configuration.java URL: http://svn.apache.org/viewvc/xerces/java/branches/xml-schema-1.1-dev/src/org/apache/xerces/parsers/XML11Configuration.java?rev=1208946&r1=1208945&r2=1208946&view=diff ============================================================================== --- xerces/java/branches/xml-schema-1.1-dev/src/org/apache/xerces/parsers/XML11Configuration.java (original) +++ xerces/java/branches/xml-schema-1.1-dev/src/org/apache/xerces/parsers/XML11Configuration.java Thu Dec 1 03:57:40 2011 @@ -200,6 +200,10 @@ public class XML11Configuration extends protected static final String CTA_FULL_XPATH_CHECKING = Constants.XERCES_FEATURE_PREFIX + Constants.CTA_FULL_XPATH_CHECKING_FEATURE; + /** Feature identifier: whether to allow comment and PI nodes to be visible during <assert> processing */ + protected static final String ASSERT_COMMENT_PI_CHECKING = + Constants.XERCES_FEATURE_PREFIX + Constants.ASSERT_COMMENT_PI_CHECKING_FEATURE; + // property identifiers @@ -504,6 +508,7 @@ public class XML11Configuration extends UNPARSED_ENTITY_CHECKING, USE_GRAMMAR_POOL_ONLY, TYPE_ALTERNATIVES_CHECKING, CTA_FULL_XPATH_CHECKING, + ASSERT_COMMENT_PI_CHECKING, // NOTE: These shouldn't really be here but since the XML Schema // validator is constructed dynamically, its recognized // features might not have been set and it would cause a --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@xerces.apache.org For additional commands, e-mail: commits-h...@xerces.apache.org