santiagopg    2002/10/09 12:19:20

  Modified:    java/src/org/apache/xalan/xsltc/runtime/output
                        OutputBase.java StreamXMLOutput.java
  Log:
  Fix for Bugzilla 13304.
  
  Revision  Changes    Path
  1.9       +15 -6     
xml-xalan/java/src/org/apache/xalan/xsltc/runtime/output/OutputBase.java
  
  Index: OutputBase.java
  ===================================================================
  RCS file: 
/home/cvs/xml-xalan/java/src/org/apache/xalan/xsltc/runtime/output/OutputBase.java,v
  retrieving revision 1.8
  retrieving revision 1.9
  diff -u -r1.8 -r1.9
  --- OutputBase.java   12 Aug 2002 19:33:55 -0000      1.8
  +++ OutputBase.java   9 Oct 2002 19:19:20 -0000       1.9
  @@ -181,15 +181,24 @@
        * an attribute. If at runtime, when the qname of the attribute is
        * known, another prefix is specified for the attribute, then we can get
        * a qname of the form "ns?:otherprefix:name". This function patches the
  -     * qname by simply ignoring "otherprefix".
  +     * qname by simply ignoring "otherprefix". In addition, this method 
  +     * ignores prefixes bound to the empty string "".
        */ 
  -    protected static String patchName(String qname) throws TransletException 
{
  +    protected String patchName(String qname) throws TransletException {
           final int lastColon = qname.lastIndexOf(':');
  +
           if (lastColon > 0) {
               final int firstColon = qname.indexOf(':');
  -            if (firstColon != lastColon) {
  -                return qname.substring(0, firstColon) + 
  -                 qname.substring(lastColon);
  +            final String prefix = qname.substring(0, firstColon);
  +            final String localName = qname.substring(lastColon + 1);
  +
  +         // If uri is "" then ignore prefix
  +            final String uri = lookupNamespace(prefix);
  +            if (uri != null && uri.length() == 0) {
  +                return localName;
  +            }
  +            else if (firstColon != lastColon) {
  +                return prefix + ':' + localName;
               }
           }
           return qname;
  
  
  
  1.21      +14 -5     
xml-xalan/java/src/org/apache/xalan/xsltc/runtime/output/StreamXMLOutput.java
  
  Index: StreamXMLOutput.java
  ===================================================================
  RCS file: 
/home/cvs/xml-xalan/java/src/org/apache/xalan/xsltc/runtime/output/StreamXMLOutput.java,v
  retrieving revision 1.20
  retrieving revision 1.21
  diff -u -r1.20 -r1.21
  --- StreamXMLOutput.java      10 Sep 2002 15:25:05 -0000      1.20
  +++ StreamXMLOutput.java      9 Oct 2002 19:19:20 -0000       1.21
  @@ -295,14 +295,23 @@
        throws TransletException 
       {
   // System.out.println("namespace prefix = " + prefix + " uri = " + uri);
  -     String escaped = escapeString(uri);
  +     final String escaped = escapeString(uri);
  +
        if (_startTagOpen) {
            if (pushNamespace(prefix, escaped)) {
  -             _buffer.append(' ').append(XMLNS_PREFIX);
                if (prefix != null && prefix != EMPTYSTRING) {
  -                 _buffer.append(':').append(prefix);
  +                 // Ignore if not default NS and if uri is ""
  +                 if (escaped.length() > 0) {
  +                     _buffer.append(' ').append(XMLNS_PREFIX)
  +                            .append(':').append(prefix)
  +                            .append("=\"").append(escaped).append('"');
  +                 }
                }
  -             _buffer.append("=\"").append(escaped).append('"');
  +             else {
  +                 _buffer.append(' ').append(XMLNS_PREFIX)
  +                        .append("=\"").append(escaped).append('"');
  +             }
  +
            }
        }
        else if (prefix != EMPTYSTRING || uri != EMPTYSTRING) {
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to