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]