cocoon-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From hepabolu <hepab...@gmail.com>
Subject Re: CForms binding with namespaces error - advice wanted
Date Thu, 24 May 2007 09:25:20 GMT
Carsten Ziegeler said the following on 23/5/07 21:43:
> If I see this correctly, the difference between the two solutions is 
> that in the not working case, the DOMBuilder is used to build the DOM 
> whereas in the working case, the serializer is used and the result is 
> then parsed again.

As Marc said, you're right.

As you suggested offline I've tried serializing the output of the 
pipelineUtil.toDOM to a file and do a diff. The result is: the files are 
identical except that elements with multiple attributes have a different 
order of the attributes.

Just to be sure that I didn't disguise any errors by the way I saved the 
  files, here's what I did [1].

Notes:
- pipeline is simple xml-generator + xsl-transformer + xml-serializer, 
all default stuff. The only thing different is the parameter of 
namespace prefix=true in cocoon.xconf for the xml-parser.

- BTW this leads to NAMESPACE PREFIX!!!!!!!!!!!!!!!!!!!!!!!!!! lines in 
the console. Is that what you were referring to in your other post?

So unless I have done the process of saving wrong, I don't see a 
difference between the two files.

Bye, Helma

-----
[1]
FILE1 = display above pipeline in firefox -> view page source -> copy & 
paste to texteditor -> save

FILE2 =
var document = pipelineUtil.processToDOM("AddIDsPipeline/" + 
formFileName, {});
_saveDocument(document, _makeTargetURI(documentURI));


_saveDocument(document, uri) {
...
  resolver = 
cocoon.getComponent(Packages.org.apache.cocoon.environment.SourceResolver.ROLE);
         source = resolver.resolveURI(uri);

         var tf = 
Packages.javax.xml.transform.TransformerFactory.newInstance();

         if (source instanceof 
Packages.org.apache.excalibur.source.ModifiableSource
             && 
tf.getFeature(Packages.javax.xml.transform.sax.SAXTransformerFactory.FEATURE)) 
{

             outputStream = source.getOutputStream();
             var transformerHandler = tf.newTransformerHandler();
             var transformer = transformerHandler.getTransformer();
 
transformer.setOutputProperty(Packages.javax.xml.transform.OutputKeys.INDENT, 
"true");
 
transformer.setOutputProperty(Packages.javax.xml.transform.OutputKeys.METHOD, 
"xml");
             transformerHandler.setResult(new 
Packages.javax.xml.transform.stream.StreamResult(outputStream));

             var streamer = new 
Packages.org.apache.cocoon.xml.dom.DOMStreamer(transformerHandler);
             streamer.stream(document);
...
}

Mime
View raw message