mmidy       00/02/24 12:15:11

  Modified:    src/org/apache/xalan/xslt ElemElement.java
  Log:
  Check that name is a valid attribute
  
  Revision  Changes    Path
  1.9       +18 -1     xml-xalan/src/org/apache/xalan/xslt/ElemElement.java
  
  Index: ElemElement.java
  ===================================================================
  RCS file: /home/cvs/xml-xalan/src/org/apache/xalan/xslt/ElemElement.java,v
  retrieving revision 1.8
  retrieving revision 1.9
  diff -u -r1.8 -r1.9
  --- ElemElement.java  2000/02/18 16:43:05     1.8
  +++ ElemElement.java  2000/02/24 20:15:11     1.9
  @@ -130,6 +130,14 @@
         // Catch the exception this may cause. We don't want to stop 
processing.
         try{
           ns = getNamespaceForPrefix(nsprefix);
  +        // Check if valid QName. Assuming that if the prefix is defined,
  +        // it is valid.
  +        if ( indexOfNSSep+1 == elemName.length() || 
  +           !isValidNCName(elemName.substring(indexOfNSSep + 1)))
  +        {  
  +          processor.warn(XSLTErrorResources.WG_ILLEGAL_ATTRIBUTE_NAME, new 
Object[]{elemName});
  +          elemName = null;
  +        } 
         }
         catch(Exception ex) 
         {
  @@ -137,7 +145,14 @@
           ns = null;
           processor.warn(XSLTErrorResources.WG_COULD_NOT_RESOLVE_PREFIX, new 
Object[]{nsprefix});            
         }
  +       
       }
  +    // Check if valid QName
  +    else if (elemName.length() == 0 || !isValidNCName(elemName))
  +    {  
  +      processor.warn(XSLTErrorResources.WG_ILLEGAL_ATTRIBUTE_NAME, new 
Object[]{elemName}); 
  +      elemName = null;
  +    } 
       // Only do this if name is valid
       if(null != elemName && null != ns)
       {
  @@ -160,7 +175,9 @@
                                  nsDecl, elemNameSpace);            
               }
               m_prefix = prefix;
  -          }  
  +          }
  +          if(indexOfNSSep >= 0)          
  +            elemName = elemName.substring(indexOfNSSep+1);
             elemName = (m_prefix + ":"+elemName);
           }
         }
  
  
  

Reply via email to