You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@cocoon.apache.org by Peter Sparkes <pe...@didm.co.uk> on 2006/05/16 12:57:46 UTC

Cforms - repeater widget - extra whitespace

Hi,

I am using CForms to amend an xml file on the server. Every time the 
file is amended it gets a lot of extra whitespace, when it is saved 
using the flowscript, wherever there is a repeater widget.

Please how can I stop this happening

Peter Sparkes

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@cocoon.apache.org
For additional commands, e-mail: users-help@cocoon.apache.org


Re: Cforms - repeater widget - extra whitespace

Posted by Patrick Refondini <pa...@pobox.com>.
Hi Peter,

I have upgraded my project from Cocoon 2.1.8 to 2.1.9. It did not bring
in any extra whitespace behaviour.

The saveDocument() function from 2.1.9 samples could be responsible
although I doubt. I use a modified version of it. Hereafter the code you 
may try to see if it makes any difference. (Please note this code is 
test code).

importPackage(Packages.java.io);
importPackage(Packages.javax.xml.transform);


/* document: DOM document to be saved
  * uri:      Path to saved file /tmp/mydoc.xml
  * encoding: For ex: "ISO-8859-1"
  */
function saveDocument(document, uri, encoding) {

   cocoon.log.info("saveDocument, uri: " + uri);
   var outFile = null;
   var bufferOS = null;

     try {
	outFile = new Packages.java.io.File(uri);
	var fileOS = new FileOutputStream(outFile);
	var bufferOS = new BufferedOutputStream(fileOS);
	var resultStream = new
Packages.javax.xml.transform.stream.StreamResult(bufferOS);
   		
         var factory = TransformerFactory.newInstance();
	var transformer = factory.newTransformer();

         transformer.setOutputProperty(OutputKeys.INDENT, "false");
         transformer.setOutputProperty(OutputKeys.METHOD, "xml");

         transformer.setOutputProperty(OutputKeys.ENCODING, encoding);
         transformer.setOutputProperty(
           OutputKeys.OMIT_XML_DECLARATION,  "no");
         transformer.transform(
           new Packages.javax.xml.transform.dom.DOMSource(document),
           resultStream
         );

	cocoon.log.info(
           "saveDocument() trans. from document to resultStream done");
	}
	catch (error) {
	  cocoon.log.error("saveDocument(): Could not save document: " +
             error);
         }
	finally {
         if (bufferOS != null) {
             try {
                 bufferOS.flush();
                 bufferOS.close();
             } catch (error) {
                 cocoon.log.error(
                   "Could not flush/close BufferedOutputStream: " +
                    error);
             }
     	}
     }
}


The third cause for extra whitespace might come from your binding...


Patrick


Peter Sparkes wrote:
> Hi Patrick,
> 
> I am using Cocoon 2.1.9. I am doing the following
> 
> 
> //All the ***URI variables are in putted via the sitemap
> //create new form
> var form = new Form(definitionURI);
> // bind form - builds the binding  using xslt via the sitemap
> form.createBinding('cocoon:/'+bindingURI);
> // parse the xml document, which is to be amended to a DOM-tree
> var document = loadDocument(documentURI);
> // bind the document data to the form
> form.load(document);
> // show the form to the user until it is validated successfully
>  form.showForm(documentURI+"lodge-display-pipeline");  // bind the 
> form's data back to the document
>    form.save(document);
> // save the DOM-tree back to an XML file using the saveDocument function 
> from the CForm samples
>  saveDocument(document, documentURI);
> Peter
> 
>> Peter Sparkes wrote:
>>
>>> Hi,
>>>
>>> I am using CForms to amend an xml file on the server. Every time the 
>>> file is amended it gets a lot of extra whitespace, when it is saved 
>>> using the flowscript, wherever there is a repeater widget.
>>>
>>> Please how can I stop this happening
>>>
>>> Peter Sparkes
>>>
>> Hi Peter,
>>
>> I think you should give more details about what you mean by "saved 
>> using the flowscript". I am not aware of a single way to saving an XML 
>> file representation in flowscript (DOM) to a file.
>>
>> I do use Cocoon Flow with DOM binding to amend XML files, using 
>> repeaters, and did not notice the behaviour you describe. (Using 
>> Cocoon 2.1.8)
>>
>> Patrick
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscribe@cocoon.apache.org
>> For additional commands, e-mail: users-help@cocoon.apache.org
>>
>>
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@cocoon.apache.org
> For additional commands, e-mail: users-help@cocoon.apache.org
> 



---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@cocoon.apache.org
For additional commands, e-mail: users-help@cocoon.apache.org


Re: Cforms - repeater widget - extra whitespace

Posted by Peter Sparkes <pe...@didm.co.uk>.
Hi Patrick,

I am using Cocoon 2.1.9. I am doing the following


//All the ***URI variables are in putted via the sitemap
//create new form
var form = new Form(definitionURI);
 // bind form - builds the binding  using xslt via the sitemap
 form.createBinding('cocoon:/'+bindingURI);
// parse the xml document, which is to be amended to a DOM-tree
var document = loadDocument(documentURI);
// bind the document data to the form
 form.load(document);
 // show the form to the user until it is validated successfully
  form.showForm(documentURI+"lodge-display-pipeline");  
 // bind the form's data back to the document
    form.save(document);
 // save the DOM-tree back to an XML file using the saveDocument 
function from the CForm samples
  saveDocument(document, documentURI); 

Peter

> Peter Sparkes wrote:
>
>> Hi,
>>
>> I am using CForms to amend an xml file on the server. Every time the 
>> file is amended it gets a lot of extra whitespace, when it is saved 
>> using the flowscript, wherever there is a repeater widget.
>>
>> Please how can I stop this happening
>>
>> Peter Sparkes
>>
> Hi Peter,
>
> I think you should give more details about what you mean by "saved 
> using the flowscript". I am not aware of a single way to saving an XML 
> file representation in flowscript (DOM) to a file.
>
> I do use Cocoon Flow with DOM binding to amend XML files, using 
> repeaters, and did not notice the behaviour you describe. (Using 
> Cocoon 2.1.8)
>
> Patrick
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@cocoon.apache.org
> For additional commands, e-mail: users-help@cocoon.apache.org
>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@cocoon.apache.org
For additional commands, e-mail: users-help@cocoon.apache.org


Re: Cforms - repeater widget - extra whitespace

Posted by Patrick Refondini <pa...@pobox.com>.
Peter Sparkes wrote:
> Hi,
> 
> I am using CForms to amend an xml file on the server. Every time the 
> file is amended it gets a lot of extra whitespace, when it is saved 
> using the flowscript, wherever there is a repeater widget.
> 
> Please how can I stop this happening
> 
> Peter Sparkes
> 
Hi Peter,

I think you should give more details about what you mean by "saved using 
the flowscript". I am not aware of a single way to saving an XML file 
representation in flowscript (DOM) to a file.

I do use Cocoon Flow with DOM binding to amend XML files, using 
repeaters, and did not notice the behaviour you describe. (Using Cocoon 
2.1.8)

Patrick


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@cocoon.apache.org
For additional commands, e-mail: users-help@cocoon.apache.org