Some further investigation shows that this is the default behaviour of
the SAX parser to not pass in the
namespace attribute with the rest of the element attributes in
startElement().

I set the parser namespace-prefixes feature property to 'true' in
cocoon.xconf to allow the namespace
attribute to be passed through.

I'm still not seeing the namespace attribute when I output the document
fragment from endSerializedXMLRecording().

Any ideas?

Cheers
Adam

-----Original Message-----
From: Adam Ratcliffe [mailto:[EMAIL PROTECTED] 
Sent: Tuesday, 15 June 2004 11:03 a.m.
To: [EMAIL PROTECTED]
Subject: Custom Transformer: attributes lost when serialized XML
recording


I have a custom transformer that extends AbstractSaxTransformer for
making XML-RPC calls.  It extracts a method call element from an input
document and sends this to the remote service for processing.

My problem is that when I use the startSerializedXMLRecording() method
from AbstractSaxTransformer to collect the method call fragment it
records elements only and the namespace attribute on the top-level
element is lost.

This isn't a problem with the generator that creates the input document
as I can see the attributes if I serialize the document after
generation.

Is there a configuration step that I'm missing?




public void startElement(String uri, String name, String raw, Attributes
attr)
 throws SAXException {
 if (name.equals(XMLRPC_REQUEST_ELEMENT)) {
     this.stack.push("end");
 } else if (name.equals(XMLRPC_SERVICE_ELEMENT)){
            this.startTextRecording();     
 } else if (name.equals(XMLRPC_METHOD_CALL_ELEMENT)) {
 
this.startSerializedXMLRecording(XMLUtils.defaultSerializeToXMLFormat(tr
ue));     
 } else {
            super.startElement(uri, name, raw, attr);
        }
    }



Reply via email to