Ok … I have to admit I haven’t used Modifyable Souces yet. I am used to XQuery with update extensions and XML-DB api. I would check if it is possible to set the encoding for the XML-Serializer. Since it is what generates the output.

 

Chris

 

 


Von: Abbas Mousavi [mailto:[EMAIL PROTECTED]
Gesendet: Mittwoch, 24. Mai 2006 18:04
An:
[email protected]
Betreff: Re: AW: AW: encoding problem with eXist database

 

Hi

I dont know how to use
String.getBytes(encoding) or XMLResourc.setContent(xml-string) , I explain my whole word:

I have this in the sitemap

<map:match pattern="*/*.xml">
                <map:generate type="html" src="">                 <map:transform src="">                 <map:serialize type="xml"/>
            </map:match>
that reads a html file from the disk and generates an xml

and I have this function in my flowscript. I call it when I want to
write to a source.

function write(){
var home = cocoon.parameters.home;
var name = cocoon.parameters.name;
//writeDoc('webdav://[EMAIL PROTECTED]:8080/exist-webdav/db/'+home+'/'+name+'.xml',name+'.xml');
writeDoc('xmldb:exist:///db/'+home+'/'+name+'.xml',name+'.xml');
writeDoc(name+'.htm',name+'.htm');
cocoon.redirectTo("");
}

function writeDoc(doc, pipeline) {
    var resolver = null;
    var source = null;
    var output = null;
   
    try {
        resolver = cocoon.getComponent(Packages.org.apache.excalibur.source.SourceResolver.ROLE);
        source = resolver.resolveURI(doc);


        if (source instanceof Packages.org.apache.excalibur.source.ModifiableSource) {
            output = source.getOutputStream();
            cocoon.processPipelineTo(pipeline, {}, output);
            output.close();
        } else {
            cocoon.log.error("Cannot write to " + doc + ": not a modifiable source");
        }
    } catch (error) {
        cocoon.log.error("Error getting output stream: " + error);
    } finally {
        if (source != null) resolver.release(source);
        cocoon.releaseComponent(resolver);
        if (output != null) {
            try {
                output.close();
            } catch (error) {
                cocoon.log.error("Error closing output stream: " + error);
            }
        }
    }
}

as I said the first and second writeDoc() work but write wrong encoding
and the next writeDoc() works correct.


and another thing:

org.exist.cocoon.XMLDBSource has a setEncoding() method that sets the default encoding of outputstream

but the cocoon source resolver returns  
org.apache.cocoon.components.source.impl.XMLDBSource
which has not such method. Is there any way to use
org.exist.cocoon.XMLDBSource
instead of
org.apache.cocoon.components.source.impl.XMLDBSource ?
thanks.
Abbas





Christofer Dutz <[EMAIL PROTECTED]> wrote:

How exactly do you stroe your data? Do you use XMLResourc.setContent(xml-string)? You could try explicitly seting the input-Strings encoding using the String.getBytes(encoding) method.

 

If this doesn’t help. I’d try the exist mailinglist, the guys there should be able to help you solve your problems.

 

Chris

 

[ c h r i s t o f e r   d u t z ]

IT-Berater
univativ GmbH & Co. KG
Robert-Bosch-Str.
7, 64293 Darmstadt

fon:  0 61 51 / 66 717 -0
fax:  0 61 51 / 66 717 -29
email:  [EMAIL PROTECTED]
http://www.univativ.de

Darmstadt, Stuttgart, Karlsruhe, Düsseldorf

 

 


Von: Abbas Mousavi [mailto:[EMAIL PROTECTED]
Gesendet: Mittwoch, 24. Mai 2006 16:59
An: [email protected]
Betreff: Re: AW: encoding problem with eXist database

 

Hi chris

I have set container-encoding and form encoding and serializer encoding to utf-8.

also I can write the same pipeline to other sources (for example to hard disk)
truly by the same mechanism.

I think this problem has some thing related to eXist because I have tested the webdav interface to eXist and it was the same as xmldb: protocol: wrong encoding.

Christofer Dutz <[EMAIL PROTECTED]> wrote:

Hi Abbas,

 

I think you should check the settings in your web.xml (container-encoding and form-encoding) and the serializer settings in the sitemap.xmap. I think I remember having some encoding-problems with CForms. I guess cocoon will provide content encoded in the format set here. And since you are using cocoon to generate the document stored in the db, I’d give it a try.

 

Chris

 

[ c h r i s t o f e r   d u t z ]

IT-Berater
univativ GmbH & Co. KG
Robert-Bosch-Str.
7, 64293 Darmstadt

fon:  0 61 51 / 66 717 -0
fax:  0 61 51 / 66 717 -29
email:  [EMAIL PROTECTED]
http://www.univativ.de

Darmstadt, Stuttgart, Karlsruhe, D�sseldorf

 

 


Von: Abbas Mousavi [mailto:[EMAIL PROTECTED]
Gesendet: Mittwoch, 24. Mai 2006 15:11
An: [email protected]
Betreff: encoding problem with eXist database

 

Hi

I am using eXist with cocoon as my xml database. I can copy xml documents to eXist by a webdav client and exist admin client, and also can retrieve them correctly
by xmldb:exist://  protocol, but when I want to write documents to exist with flowscript it does not writes the unicode documents correctly.

I use

 resolver = cocoon.getComponent(Packages.org.apache.excalibur.source.SourceResolver.ROLE);
        source = resolver.resolveURI('xmldb:exist:///db/collection/document.xml');

 if (source instanceof Packages.org.apache.excalibur.source.ModifiableSource) {
            output = source.getOutputStream();
            cocoon.processPipelineTo(pipeline, {}, output);
            output.close();
        }

It writes the document to the database but with wrong encoding.
is there any way for fixing this problem?


Blab-away for as little as 1�/min. Make PC-to-Phone Calls using Yahoo! Messenger with Voice.

 

__________________________________________________
Do You Yahoo!?
Tired of spam? Yahoo! Mail has the best spam protection around
http://mail.yahoo.com

 


How low will we go? Check out Yahoo! Messenger’s low PC-to-Phone call rates.

Reply via email to