You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@xerces.apache.org by mu...@apache.org on 2009/11/14 13:17:05 UTC
svn commit: r836159 - in
/xerces/java/branches/xml-schema-1.1-dev/src/org/apache/xerces/impl: ./ xs/
xs/assertion/ xs/traversers/
Author: mukulg
Date: Sat Nov 14 12:17:03 2009
New Revision: 836159
URL: http://svn.apache.org/viewvc?rev=836159&view=rev
Log:
this improvement enables, the XSD <schema> element to declare the XPath 2.0 functions namespace binding, and having that passed to the psychopath XPath 2 engine.
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/AbstractPsychoPathImpl.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/assertion/XSAssertImpl.java
xerces/java/branches/xml-schema-1.1-dev/src/org/apache/xerces/impl/xs/traversers/XSDAbstractTraverser.java
xerces/java/branches/xml-schema-1.1-dev/src/org/apache/xerces/impl/xs/traversers/XSDComplexTypeTraverser.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=836159&r1=836158&r2=836159&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 Sat Nov 14 12:17:03 2009
@@ -471,7 +471,10 @@
public final static boolean SCHEMA_1_1_SUPPORT = false;
public final static short SCHEMA_VERSION_1_0 = 1;
public final static short SCHEMA_VERSION_1_0_EXTENDED = 2;
- public final static short SCHEMA_VERSION_1_1 = 4;
+ public final static short SCHEMA_VERSION_1_1 = 4;
+
+ // XPath 2.0 constants
+ public final static String XPATH20_FN_NAMESPACE = "http://www.w3.org/2005/xpath-functions";
// private
Modified: xerces/java/branches/xml-schema-1.1-dev/src/org/apache/xerces/impl/xs/AbstractPsychoPathImpl.java
URL: http://svn.apache.org/viewvc/xerces/java/branches/xml-schema-1.1-dev/src/org/apache/xerces/impl/xs/AbstractPsychoPathImpl.java?rev=836159&r1=836158&r2=836159&view=diff
==============================================================================
--- xerces/java/branches/xml-schema-1.1-dev/src/org/apache/xerces/impl/xs/AbstractPsychoPathImpl.java (original)
+++ xerces/java/branches/xml-schema-1.1-dev/src/org/apache/xerces/impl/xs/AbstractPsychoPathImpl.java Sat Nov 14 12:17:03 2009
@@ -19,6 +19,7 @@
import java.util.Map;
+import org.apache.xerces.impl.Constants;
import org.apache.xerces.xs.XSModel;
import org.eclipse.wst.xml.xpath2.processor.DefaultDynamicContext;
import org.eclipse.wst.xml.xpath2.processor.DefaultEvaluator;
@@ -55,8 +56,14 @@
Document document,
Map psychoPathParams) {
fDynamicContext = new DefaultDynamicContext(schema, document);
- String xsdPrefix = (String) psychoPathParams.get("XSD_PREFIX");
+ String xsdPrefix = (String) psychoPathParams.get("XSD_PREFIX");
+ String xpath2FnPrefix = (String) psychoPathParams.get("XPATH2_FN_PREFIX");
fDynamicContext.add_namespace(xsdPrefix, "http://www.w3.org/2001/XMLSchema");
+ // set the XPath 2.0 functions namespace binding to the XPath 2.0 static
+ // context, if present on <schema> element.
+ if (xpath2FnPrefix != null) {
+ fDynamicContext.add_namespace(xpath2FnPrefix, Constants.XPATH20_FN_NAMESPACE);
+ }
fDynamicContext.add_function_library(new FnFunctionLibrary());
fDynamicContext.add_function_library(new XSCtrLibrary());
domDoc = document;
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=836159&r1=836158&r2=836159&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 Sat Nov 14 12:17:03 2009
@@ -2460,8 +2460,14 @@
if (fAssertionProcessor == null) {
// construct parameter values for the assertion processor
String xsdPrefix = ((XSAssertImpl)assertions.get(0)).getXsdNamespacePrefix();
+ String xpath2FnPrefix = ((XSAssertImpl)assertions.get(0)).getXpath2FnPrefix();
Map assertProcessorParams = new HashMap();
assertProcessorParams.put("XSD_PREFIX", xsdPrefix);
+ // set the XPath 2.0 functions namespace prefix, if present on
+ // <schema> element.
+ if (xpath2FnPrefix != null) {
+ assertProcessorParams.put("XPATH2_FN_PREFIX", xpath2FnPrefix);
+ }
// initialize the assert processor
initializeAssertProcessor(assertProcessorParams);
}
@@ -2476,10 +2482,16 @@
assertObject = facet.getAsserts();
// instantiate the assertions processor
if (fAssertionProcessor == null) {
- // construct parameter values for the assertion processor
+ // construct parameter values for the assertion processor
String xsdPrefix = ((XSAssertImpl)facet.getAsserts().get(0)).getXsdNamespacePrefix();
+ String xpath2FnPrefix = ((XSAssertImpl)facet.getAsserts().get(0)).getXpath2FnPrefix();
Map assertProcessorParams = new HashMap();
assertProcessorParams.put("XSD_PREFIX", xsdPrefix);
+ // set the XPath 2.0 functions namespace prefix, if present on
+ // <schema> element.
+ if (xpath2FnPrefix != null) {
+ assertProcessorParams.put("XPATH2_FN_PREFIX", xpath2FnPrefix);
+ }
// initialize the assert processor
initializeAssertProcessor(assertProcessorParams);
}
Modified: xerces/java/branches/xml-schema-1.1-dev/src/org/apache/xerces/impl/xs/assertion/XSAssertImpl.java
URL: http://svn.apache.org/viewvc/xerces/java/branches/xml-schema-1.1-dev/src/org/apache/xerces/impl/xs/assertion/XSAssertImpl.java?rev=836159&r1=836158&r2=836159&view=diff
==============================================================================
--- xerces/java/branches/xml-schema-1.1-dev/src/org/apache/xerces/impl/xs/assertion/XSAssertImpl.java (original)
+++ xerces/java/branches/xml-schema-1.1-dev/src/org/apache/xerces/impl/xs/assertion/XSAssertImpl.java Sat Nov 14 12:17:03 2009
@@ -44,7 +44,10 @@
protected String fXPathDefaultNamespace = null;
/** XSD namespace prefix, present on <schema> element */
- protected String xsdNamespacePrefix = null;
+ protected String fXsdNamespacePrefix = null;
+
+ /** XPath 2.0 functions namespace prefix, present on <schema> element */
+ protected String fXpath2FnPrefix = null;
/** Constructor */
public XSAssertImpl(XSTypeDefinition type,
@@ -71,7 +74,12 @@
/** Sets the XSD namespace, prefix */
public void setXsdNamespacePrefix(String nsPrefix) {
- xsdNamespacePrefix = nsPrefix;
+ fXsdNamespacePrefix = nsPrefix;
+ }
+
+ /** Sets the XPath 2.0 functions namespace, prefix */
+ public void setXpath2FnPrefix(String nsPrefix) {
+ fXpath2FnPrefix = nsPrefix;
}
public XSObjectList getAnnotations() {
@@ -127,7 +135,15 @@
* Get the XSD namespace prefix
*/
public String getXsdNamespacePrefix() {
- return xsdNamespacePrefix;
+ return fXsdNamespacePrefix;
+ }
+
+ /**
+ *
+ * Get the XPath 2.0 functions prefix
+ */
+ public String getXpath2FnPrefix() {
+ return fXpath2FnPrefix;
}
/*
Modified: xerces/java/branches/xml-schema-1.1-dev/src/org/apache/xerces/impl/xs/traversers/XSDAbstractTraverser.java
URL: http://svn.apache.org/viewvc/xerces/java/branches/xml-schema-1.1-dev/src/org/apache/xerces/impl/xs/traversers/XSDAbstractTraverser.java?rev=836159&r1=836158&r2=836159&view=diff
==============================================================================
--- xerces/java/branches/xml-schema-1.1-dev/src/org/apache/xerces/impl/xs/traversers/XSDAbstractTraverser.java (original)
+++ xerces/java/branches/xml-schema-1.1-dev/src/org/apache/xerces/impl/xs/traversers/XSDAbstractTraverser.java Sat Nov 14 12:17:03 2009
@@ -498,8 +498,13 @@
assertImpl.setTest(testExpr);
assertImpl.setXPathDefauleNamespace(xpathDefaultNamespace);
assertImpl.setXsdNamespacePrefix(schemaDoc.fSchemaElement.getPrefix());
+ String xpath2FnPrefix = schemaDoc.fNamespaceSupport.getPrefix(Constants.XPATH20_FN_NAMESPACE);
+ if (xpath2FnPrefix != null) {
+ assertImpl.setXpath2FnPrefix(xpath2FnPrefix);
+ }
+
if (assertData == null) {
- assertData = new Vector();
+ assertData = new Vector();
}
assertData.addElement(assertImpl);
} else {
Modified: xerces/java/branches/xml-schema-1.1-dev/src/org/apache/xerces/impl/xs/traversers/XSDComplexTypeTraverser.java
URL: http://svn.apache.org/viewvc/xerces/java/branches/xml-schema-1.1-dev/src/org/apache/xerces/impl/xs/traversers/XSDComplexTypeTraverser.java?rev=836159&r1=836158&r2=836159&view=diff
==============================================================================
--- xerces/java/branches/xml-schema-1.1-dev/src/org/apache/xerces/impl/xs/traversers/XSDComplexTypeTraverser.java (original)
+++ xerces/java/branches/xml-schema-1.1-dev/src/org/apache/xerces/impl/xs/traversers/XSDComplexTypeTraverser.java Sat Nov 14 12:17:03 2009
@@ -1596,7 +1596,10 @@
assertImpl.setTest(testExpr);
assertImpl.setXPathDefauleNamespace(xpathDefaultNamespace);
assertImpl.setXsdNamespacePrefix(schemaDoc.fSchemaElement.getPrefix());
-
+ String xpath2FnPrefix = schemaDoc.fNamespaceSupport.getPrefix(Constants.XPATH20_FN_NAMESPACE);
+ if (xpath2FnPrefix != null) {
+ assertImpl.setXpath2FnPrefix(xpath2FnPrefix);
+ }
// add assertion object to an array buffer
addAssertion(assertImpl);
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@xerces.apache.org
For additional commands, e-mail: commits-help@xerces.apache.org