mrglavas 2004/08/13 12:15:30 Modified: java/src/org/apache/xerces/xinclude XIncludeHandler.java Log: Fixing a number of bugs regarding namespace fixup:
1) When adding an attribute for the default namespace we were reporting that the prefix was 'xmlns' instead of null. 2) When adding a namespace declaration which unbinds a namespace we were reporting null as the value of this attribute instead of the empty string. 3) Start and end prefix mappings were not being reported in SAX because the prefix was not being declared in the current context. Revision Changes Path 1.33 +22 -9 xml-xerces/java/src/org/apache/xerces/xinclude/XIncludeHandler.java Index: XIncludeHandler.java =================================================================== RCS file: /home/cvs/xml-xerces/java/src/org/apache/xerces/xinclude/XIncludeHandler.java,v retrieving revision 1.32 retrieving revision 1.33 diff -u -r1.32 -r1.33 --- XIncludeHandler.java 13 Aug 2004 15:46:36 -0000 1.32 +++ XIncludeHandler.java 13 Aug 2004 19:15:30 -0000 1.33 @@ -1700,12 +1700,19 @@ } QName ns = (QName)NEW_NS_ATTR_QNAME.clone(); + ns.prefix = null; ns.localpart = XMLSymbols.PREFIX_XMLNS; ns.rawname = XMLSymbols.PREFIX_XMLNS; - attributes.addAttribute( - ns, - XMLSymbols.fCDATASymbol, - uri); + int index = + attributes.addAttribute( + ns, + XMLSymbols.fCDATASymbol, + uri != null ? uri : XMLSymbols.EMPTY_STRING); + attributes.setSpecified(index, true); + // Need to re-declare this prefix in the current context + // in order for the SAX parser to report the appropriate + // start and end prefix mapping events. -- mrglavas + fNamespaceContext.declarePrefix(prefix, uri); } } else if ( @@ -1721,10 +1728,16 @@ ns.rawname = (fSymbolTable != null) ? fSymbolTable.addSymbol(ns.rawname) : ns.rawname.intern(); - attributes.addAttribute( - ns, - XMLSymbols.fCDATASymbol, - uri); + int index = + attributes.addAttribute( + ns, + XMLSymbols.fCDATASymbol, + uri != null ? uri : XMLSymbols.EMPTY_STRING); + attributes.setSpecified(index, true); + // Need to re-declare this prefix in the current context + // in order for the SAX parser to report the appropriate + // start and end prefix mapping events. -- mrglavas + fNamespaceContext.declarePrefix(prefix, uri); } } } --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]