santiagopg    2004/12/10 10:39:15

  Modified:    java/src/org/apache/xalan/xsltc/trax DOM2TO.java
  Log:
  Patch for Jira 2015. Namespace declarations are now reported on a first pass 
to avoid the problem described in the bug report.
  
  Revision  Changes    Path
  1.10      +18 -9     
xml-xalan/java/src/org/apache/xalan/xsltc/trax/DOM2TO.java
  
  Index: DOM2TO.java
  ===================================================================
  RCS file: 
/home/cvs/xml-xalan/java/src/org/apache/xalan/xsltc/trax/DOM2TO.java,v
  retrieving revision 1.9
  retrieving revision 1.10
  diff -u -r1.9 -r1.10
  --- DOM2TO.java       20 Feb 2004 19:30:40 -0000      1.9
  +++ DOM2TO.java       10 Dec 2004 18:39:15 -0000      1.10
  @@ -137,25 +137,34 @@
            final String qname = node.getNodeName();
            _handler.startElement(null, null, qname);
   
  +            int colon;
            String prefix;
            final NamedNodeMap map = node.getAttributes();
            final int length = map.getLength();
   
  -         // Process all other attributes
  -            NamespaceMappings nm = new NamespaceMappings();
  +         // Process all namespace attributes first
            for (int i = 0; i < length; i++) {
  -             int colon;
                final Node attr = map.item(i);
                final String qnameAttr = attr.getNodeName();
   
  +                // Is this a namespace declaration?
                if (qnameAttr.startsWith(XMLNS_PREFIX)) {
                    final String uriAttr = attr.getNodeValue();
                    colon = qnameAttr.lastIndexOf(':');
                    prefix = (colon > 0) ? qnameAttr.substring(colon + 1) 
  -                     : EMPTYSTRING;
  +                                      : EMPTYSTRING;
                    _handler.namespaceAfterStartElement(prefix, uriAttr);
                }
  -             else {
  +         }
  +            
  +         // Process all non-namespace attributes next
  +            NamespaceMappings nm = new NamespaceMappings();
  +         for (int i = 0; i < length; i++) {
  +             final Node attr = map.item(i);
  +             final String qnameAttr = attr.getNodeName();
  +
  +                // Is this a regular attribute?
  +             if (!qnameAttr.startsWith(XMLNS_PREFIX)) {
                    final String uriAttr = attr.getNamespaceURI();
                    // Uri may be implicitly declared
                    if (uriAttr != null && !uriAttr.equals(EMPTYSTRING) ) {     
  @@ -171,8 +180,8 @@
                        prefix = (colon > 0) ? qnameAttr.substring(0, colon) 
                            : newPrefix;
                        _handler.namespaceAfterStartElement(prefix, uriAttr);
  -                     _handler.addAttribute((prefix + ":" + qnameAttr)
  -                            , attr.getNodeValue());
  +                     _handler.addAttribute((prefix + ":" + qnameAttr),
  +                            attr.getNodeValue());
                    } else {
                            _handler.addAttribute(qnameAttr, 
attr.getNodeValue());
                       }
  @@ -185,7 +194,7 @@
   
            // Uri may be implicitly declared
            if (uri != null) {  
  -             final int colon = qname.lastIndexOf(':');
  +             colon = qname.lastIndexOf(':');
                prefix = (colon > 0) ? qname.substring(0, colon) : EMPTYSTRING;
                _handler.namespaceAfterStartElement(prefix, uri);
            }else {
  
  
  

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

Reply via email to