You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@xalan.apache.org by mm...@locus.apache.org on 2000/02/12 00:07:51 UTC

cvs commit: xml-xalan/src/org/apache/xalan/xslt ElemTemplateElement.java FuncDocument.java

mmidy       00/02/11 15:07:51

  Modified:    src/org/apache/xalan/xpath/xml PrefixResolver.java
                        PrefixResolverDefault.java
               src/org/apache/xalan/xslt ElemTemplateElement.java
                        FuncDocument.java
  Log:
  Save and use included stylesheets base URI
  
  Revision  Changes    Path
  1.2       +4 -0      xml-xalan/src/org/apache/xalan/xpath/xml/PrefixResolver.java
  
  Index: PrefixResolver.java
  ===================================================================
  RCS file: /home/cvs/xml-xalan/src/org/apache/xalan/xpath/xml/PrefixResolver.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- PrefixResolver.java	1999/11/08 20:55:56	1.1
  +++ PrefixResolver.java	2000/02/11 23:07:50	1.2
  @@ -69,4 +69,8 @@
      * Given a namespace, get the corrisponding prefix.
      */
     String getNamespaceForPrefix(String prefix, org.w3c.dom.Node context);
  +  
  +  /** Return the base identifier.
  +   */
  +  public String getBaseIdentifier();
   }
  
  
  
  1.2       +7 -0      xml-xalan/src/org/apache/xalan/xpath/xml/PrefixResolverDefault.java
  
  Index: PrefixResolverDefault.java
  ===================================================================
  RCS file: /home/cvs/xml-xalan/src/org/apache/xalan/xpath/xml/PrefixResolverDefault.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- PrefixResolverDefault.java	2000/01/31 08:34:26	1.1
  +++ PrefixResolverDefault.java	2000/02/11 23:07:50	1.2
  @@ -101,4 +101,11 @@
       }
       return namespace;
     }
  +  
  +  /** Return the base identifier.
  +   */
  +  public String getBaseIdentifier()
  +  {
  +    return null;
  +  }  
   }
  
  
  
  1.15      +12 -0     xml-xalan/src/org/apache/xalan/xslt/ElemTemplateElement.java
  
  Index: ElemTemplateElement.java
  ===================================================================
  RCS file: /home/cvs/xml-xalan/src/org/apache/xalan/xslt/ElemTemplateElement.java,v
  retrieving revision 1.14
  retrieving revision 1.15
  diff -u -r1.14 -r1.15
  --- ElemTemplateElement.java	2000/01/31 20:52:30	1.14
  +++ ElemTemplateElement.java	2000/02/11 23:07:50	1.15
  @@ -63,6 +63,7 @@
   import org.apache.xalan.xpath.xml.*;
   import java.util.*;
   import java.io.*;
  +import java.net.*;
   import org.apache.xalan.xslt.trace.*;
   import org.apache.xalan.xslt.res.XSLTErrorResources;
   import org.apache.xml.serialize.OutputFormat;
  @@ -153,6 +154,8 @@
      */
     protected ElemTemplateElement m_firstChild;
     
  +  public String m_baseident;
  +  
     /** Construct a template element instance.
      * 
      * @param processor The XSLT Processor.
  @@ -177,6 +180,8 @@
       {
         m_namespaces = (org.apache.xalan.xpath.xml.NameSpace)m_stylesheet.m_namespaces.peek();
       }
  +    m_baseident = ((URL)m_stylesheet.m_includeStack.peek()).toExternalForm();
  +    //System.out.println("base " + m_baseident);
       
       m_elemName = name;
     }
  @@ -1263,6 +1268,13 @@
     public String getNodeName()
     {
       return m_elemName;
  +  }
  +  
  +  /** Return the base identifier.
  +   */
  +  public String getBaseIdentifier()
  +  {
  +    return m_baseident;
     }
     
    }
  
  
  
  1.9       +7 -3      xml-xalan/src/org/apache/xalan/xslt/FuncDocument.java
  
  Index: FuncDocument.java
  ===================================================================
  RCS file: /home/cvs/xml-xalan/src/org/apache/xalan/xslt/FuncDocument.java,v
  retrieving revision 1.8
  retrieving revision 1.9
  diff -u -r1.8 -r1.9
  --- FuncDocument.java	2000/01/05 23:05:32	1.8
  +++ FuncDocument.java	2000/02/11 23:07:50	1.9
  @@ -93,7 +93,7 @@
         XObject arg2 = (XObject)args.elementAt(1);
         if(XObject.CLASS_NODESET == arg2.getType())
         {
  -        Node baseNode = arg2.nodeset().item(0);
  +       /* Node baseNode = arg2.nodeset().item(0);
           Document baseDoc = (Node.DOCUMENT_NODE == baseNode.getNodeType()) ? 
                              (Document)baseNode : baseNode.getOwnerDocument();
           
  @@ -101,21 +101,25 @@
             base = ((Stylesheet)baseDoc).getBaseIdentifier();
           else
             base = execContext.findURIFromDoc(baseDoc);
  +        */
  +         base = execContext.getNamespaceContext().getBaseIdentifier();                
         }
         else
         {
           base = arg2.str();
         }
  +     
       }
       else
       {
  -      Node stylesheetNode = (Node)execContext.getNamespaceContext(); // is this safe in this context??
  +     /* Node stylesheetNode = (Node)execContext.getNamespaceContext(); // is this safe in this context??
         Document baseDoc = (Node.DOCUMENT_NODE == stylesheetNode.getNodeType()) ? 
                            (Document)stylesheetNode : stylesheetNode.getOwnerDocument();
         if(baseDoc instanceof Stylesheet)
           base = ((Stylesheet)baseDoc).getBaseIdentifier();
         else
  -        base = execContext.findURIFromDoc(baseDoc);
  +        base = execContext.findURIFromDoc(baseDoc);*/
  +      base = execContext.getNamespaceContext().getBaseIdentifier();
       }
       XNodeSet nodes = new XNodeSet();
       MutableNodeList mnl = nodes.mutableNodeset();