Joerg Heinicke said the following on 23/5/07 20:03:
On 23.05.2007 13:07, hepabolu wrote:
+ I would comment (or even close-wontfix?) that bug with a reference
to the above conclusion from carsten. Just in case somebody would
want to apply the patch without giving it more thought...
I just added a comment.
Using the param is an appropriate solution and the patch is no longer
valid. Since the issue (COCOON-1686) was especially created as patch to
COCOON-1671 I closed it, but added a comment and link from COCOON-1671
to it.
Thanks. Sadly enough it still doesn't solve my problem.
I hope some of you can shed some light on this:
In flowscript I create the various cform files through pipelines (see [1]).
When I read the source from a file by using the line marked with
[****X****] instead of the one below, the binding starts to work (I get
an error on expected BigDecimal vs received String, but that's a
different problem). This source file is created by displaying the output
of the pipeline of the line below in a browser and saving the source of
that output in a file.
When I use the code as is below (i.e. the source is read from a
pipeline) the binding silently fails with a debug message in the log files:
PoolThread-4/ContextJXPathBinding: non-existent path: skipping
ContextJXPathBinding [xpath=/oe:version]
(oe:version is the root element).
Both binding and source file have the namespace set:
<fb:context xmlns:fb="http://apache.org/cocoon/forms/1.0#binding"
xmlns:oe="openEHR/v1/Version" path="/oe:version">
and
<oe:version xmlns:oe="openEHR/v1/Version">
Anyone?
Thanks.
Bye, Helma
[1]
showmyform() {
var formFileName = cocoon.parameters["filename"];
/* Generate the template from a pipeline */
var formDisplay = "FormTemplatePipeline/" + formFileName;
/* Generate the model from a pipeline */
var pipelineUtil =
cocoon.createObject("org.apache.cocoon.components.flow.util.PipelineUtil");
var modelDoc = pipelineUtil.processToDOM("FormModelPipeline/"+
formFileName, {}).getDocumentElement();
/* Generate the binding from a pipeline */
var bindingDoc = pipelineUtil.processToDOM("FormBindingPipeline/" +
formFileName, {}).getDocumentElement();
//var bindingDoc = FORMDIR + "test-bloodfilmBinding.xml";
var form = new Form(modelDoc);
form.createBinding(bindingDoc);
/* Generate the result file */
var formResult = formFileName + "Result.jx";
// get the documentURI parameter from the sitemap which contains the
// location of the file to be edited
var documentURI = cocoon.parameters["documentURI"];
// parse the document to a DOM-tree
//[****X****]var document = _loadDocument(documentURI);
var document = pipelineUtil.processToDOM("AddIDsPipeline/" +
formFileName, {});
// bind the document data to the form
form.load(document.getDocumentElement());
// show the form to the user until it is validated successfully
form.showForm(formDisplay);
// bind the form's data back to the document
form.save(document);
cocoon.sendPage(formResult);
}
_loaddocument(uri){
.....
parser =
cocoon.getComponent(Packages.org.apache.excalibur.xml.dom.DOMParser.ROLE);
resolver =
cocoon.getComponent(Packages.org.apache.cocoon.environment.SourceResolver.ROLE);
source = resolver.resolveURI(uri);
print ("sourceURI=" + source.getURI());
var is = new
Packages.org.xml.sax.InputSource(source.getInputStream());
is.setSystemId(source.getURI());
return parser.parseDocument(is);
......
}