You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@xalan.apache.org by sb...@locus.apache.org on 2000/03/02 21:39:18 UTC

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

sboag       00/03/02 12:39:18

  Modified:    src/org/apache/xalan/xslt ElemTemplateElement.java
  Log:
  Allow non-xslt namespaces for isAttrOK.  This now does exactly the same thing as Stylesheet.isAttrOK, except for the tokenization optimization.  In response to 
   SPR #PDIK4GZRHZ.
  
  Revision  Changes    Path
  1.26      +17 -3     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.25
  retrieving revision 1.26
  diff -u -r1.25 -r1.26
  --- ElemTemplateElement.java	2000/03/02 10:23:03	1.25
  +++ ElemTemplateElement.java	2000/03/02 20:39:18	1.26
  @@ -369,11 +369,25 @@
     boolean isAttrOK(int tok, String attrName, AttributeList atts, int which)
       throws SAXException
     {
  -    boolean isXMLNS = (Constants.TATTRNAME_XMLNSDEF == tok) 
  +    boolean isAttrOK = (Constants.TATTRNAME_XMLNSDEF == tok) 
                         || attrName.startsWith(Constants.ATTRNAME_XMLNS);
       
  -    // TODO: Well, process it...
  -    return isXMLNS;
  +    if(!isAttrOK)
  +    {
  +      int indexOfNSSep = attrName.indexOf(':');
  +      if(indexOfNSSep >= 0)
  +      {
  +        String prefix = attrName.substring(0, indexOfNSSep);
  +        String ns = m_stylesheet.getNamespaceForPrefixFromStack(prefix);
  +        isAttrOK = (!ns.equals(XSLTEngineImpl.m_XSLNameSpaceURL));
  +      }
  +      else
  +      {
  +        isAttrOK = true; // default namespace, flag it as OK
  +      }
  +    }
  +    
  +    return isAttrOK;
     }
   
     /**