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