Hello Thomas,

as you can see in the Javadoc above the method this is a check method for namespace handling. I have not written that class and don't know whether this bit of code is part of the test, but I don't think so. It really looks like a bug.

If no one complains, I can apply the patch. If it should be already in 2.1.2 I guess Carsten must apply it. Waiting for a reaction, applying and building the dist afterwards takes too much time, doesn't it?

Joerg

Thomas Bierhance wrote:
Hi,

I tried Cocoon 2.1 with the latest Resin Servlet Container.

Problem:

    com.caucho.xml.QDOMException:
      `null:' is an invalid XML name because the local name is empty.
      XML names must be `prefix:name' or simply `name'.
        at com.caucho.xml.QName.init(QName.java:102)
        [...]
        at com.caucho.xml.DOMBuilder.startElement(DOMBuilder.java:287)
        at 
org.apache.cocoon.serialization.AbstractTextSerializer.needsNamespacesAsAttributes(AbstractTextSerializer.java:341)

  The current implementation does use an empty string as qualified
  name and is missing a call to endElement():

// Output a single element
handler.startDocument();
handler.startPrefixMapping(prefix, uri);
handler.startElement(uri, "element", "", new AttributesImpl());
handler.endPrefixMapping(prefix);
handler.endDocument();
AbstractTextSerializer.needsNamespace could be changed as follows:


String uri = "namespaceuri";
String prefix = "nsp";
String check = "xmlns:" + prefix + "='" + uri + "'";
String localName="element";
String qName= prefix+":"+localName;
[...]
// Output a single element
handler.startDocument();
handler.startPrefixMapping(prefix, uri);
handler.startElement(uri, localName, qName, new org.xml.sax.helpers.AttributesImpl());
handler.endElement(uri, localName, qName);
handler.endPrefixMapping(prefix);
handler.endDocument();


I tried this code with the Resin Transformer and Xalan. It correctly
detects the two cases without errors.
What do you think?


Regards,
  Thomas

-- System Development VIRBUS AG Fon +49(0)341-979-7419 Fax +49(0)341-979-7409 [EMAIL PROTECTED] www.virbus.de



Reply via email to