Hi Sascha;
This is my class overview; for u to get a rough idea. Initially I have a
char array which I have converted into InputSource. Then within the Driver
class in render method I want that InputSource to be converted back into a
char array.
My class
----------------------------------------------------------------------------
--------------------------
private char[] fo;
CharArrayWriter fos = new CharArrayWriter();
fo =fos.toCharArray();
--------------------------
public void myMethod_1 (){
InputSource foSource = new InputSource(new CharArrayReader(fo));
Driver driver = new Driver();
driver.render(xmlReader, foSource);
........
........
}
FOP
----------------------------------------------------------------------------
---------------------------
Driver Class
public synchronized void render(XMLReader parser, InputSource source)
throws FOPException {
if (source.getCharacterStream() != null) {
BufferedReader reader = new
BufferedReader(source.getCharacterStream());
CharArrayWriter writer=new CharArrayWriter();
int i=-1;
while ((i=reader.read())!=-1)
{
writer.write(i);
}
reader.close();
writer.close();
}
----------------------------------------------------------------------------
------------
Thanx
Harshini.
-----Original Message-----
From: Sascha Schmidt [mailto:[EMAIL PROTECTED]
Sent: Friday, April 06, 2007 4:11 PM
To: [email protected]
Subject: RE: Convert InputSource into a Character array
Hi Harshini,
I though you were using a large XML String (/Character-Array) with a
CharArrayReader to setup your InputSource. Maybe I was wrong? How do you
create your input source? It seems that "someone" uses and closes the
InputSource (i.e. the stream) before FOP is invoked? Things are still a bit
unclear for me. ;-) Could you please tell me, what you are doing before FOP
is invoked and what is done afterwards?
Cheers,
Sascha
> -----Original Message-----
> From: Harshini Madurapperuma [mailto:[EMAIL PROTECTED]
> Sent: Thursday, April 05, 2007 12:55 PM
> To: [email protected]
> Subject: RE: Convert InputSource into a Character array
>
> Hi all, and Sascha
>
> Sascha thanx a lot for ur ideas; but I'm not clear what u have meant
> by String xml in the MyInputSource constructor. And from where should
> I call this constructor?
>
> Harshini
>
> -----Original Message-----
> From: Sascha Schmidt [mailto:[EMAIL PROTECTED]
> Sent: Thursday, April 05, 2007 9:55 AM
> To: [email protected]
> Subject: RE: Convert InputSource into a Character array
>
> Hi all,
>
> I assume Harshini needs to get the original XML-String from a
> CharArrayReader (after rendering), which he used to equip the InputSource.
> IMHO there is no chance to get the XML-String back, because
> CharArrayReader.close() sets the internal Char-Buffer, which holds the
> XML-String, to null. Thus one would either need to introduce a new
> attribute somewhere in Harshinis class/code or extending class
> InputSource. I would prefer the second method. This should give you a
> start point:
>
> class MyInputSource extends InputSource{
>
> private String xml;
>
> public MyInputSource(String xml){
> super(new CharArrayReader(xml));
> }
>
> public String getXML(){
> return this.xml;
> }
> }
>
>
> Somewhere later...
>
> ((MyInputSource) source).getXML()
>
> returns the xml.
>
> Note that the code above is not tested, just typed in Outlook. ;-)
>
> Cheers,
> Sascha
>
> PS: Of course it is correct that FOP closes the stream after
> processing it.
>
>
> NORTHBIT
> RTF to XSL-FO, Reporting
> Dipl. Inf. Sascha Schmidt
> [EMAIL PROTECTED]
> www.northbit.de
>
>
> > -----Original Message-----
> > From: Harshini Madurapperuma [mailto:[EMAIL PROTECTED]
> > Sent: Thursday, April 05, 2007 5:18 AM
> > To: [email protected]
> > Subject: RE: Convert InputSource into a Character array
> >
> > Hi;
> >
> > I have this character array, I converted that character array into
> > to a InputSource and passed it as a parameter to a
> > "render(XMLReader parser, InputSource source)" method in the DRIVER
class in fop.
> >
> > Within that "render" class I need to convert that "InputSource (source)"
> > back into a character array (after doing some modifications inside
> > that method). I tried to convert that as follows:
> >
> > > if (source.getCharacterStream() != null) {
> > > BufferedReader reader = new
> > BufferedReader(source.getCharacterStream());
> > > CharArrayWriter writer=new CharArrayWriter();
> > > int i=-1;
> > > while ((i=reader.read())!=-1)
> > > {
> > > writer.write(i);
> > > }
> > > reader.close();
> > > writer.close();
> > > }
> >
> > While doing that it raise this Exception:
> > > EXCEPTION---------------------------------------------------------
> > > --
> > > --
> > > ------
> > > ----
> > >
> > > java.io.IOException: Stream closed at
> > > java.io.CharArrayReader.ensureOpen(CharArrayReader.java:65) at
> > > java.io.CharArrayReader.read(CharArrayReader.java:95) at
> > > java.io.BufferedReader.fill(BufferedReader.java:136) at
> > > java.io.BufferedReader.read(BufferedReader.java:157) at
> > > org.apache.fop.apps.Driver.render(Driver.java:557)
> > > ------------------------------------------------------------------
> > > --
> > > --
> >
> > I need to know the reason or is there any other method to convert
> > this and access the content of this inputSource?
> >
> > Thanx
> > Harshini
> >
> >
> >
> > -----Original Message-----
> > From: Jeremias Maerki [mailto:[EMAIL PROTECTED]
> > Sent: Thursday, April 05, 2007 12:11 AM
> > To: [email protected]
> > Subject: Re: Convert InputSource into a Character array
> >
> > I don't understand what you're trying to do. Maybe you should
> > explain that before going into technical details.
> >
> > On 04.04.2007 06:08:53 Harshini Madurapperuma wrote:
> > > Hi All;
> > >
> > > In fop Driver class there is a method called
> > >
> > > public synchronized void render(XMLReader parser, InputSource source)
> > > throws FOPException {
> > >
> > > }
> > >
> > > Is there a way to convert that InputSource "source" back into a
> > > character array within that render class? I tried to do it by this
> > > way but it throws a "Stream Closed" Exception.
> > > ------------------------------------------------------------------
> > > --
> > > --
> > > ------
> > > --
> > > if (source.getCharacterStream() != null) {
> > > BufferedReader reader = new
> > > BufferedReader(source.getCharacterStream());
> > > CharArrayWriter writer=new CharArrayWriter();
> > > int i=-1;
> > > while ((i=reader.read())!=-1)
> > > {
> > > writer.write(i);
> > > }
> > > reader.close();
> > > writer.close();
> > > }
> > > ------------------------------------------------------------------
> > > --
> > > --
> > > ------
> > > ----
> > > EXCEPTION---------------------------------------------------------
> > > --
> > > --
> > > ------
> > > ----
> > >
> > > java.io.IOException: Stream closed at
> > > java.io.CharArrayReader.ensureOpen(CharArrayReader.java:65) at
> > > java.io.CharArrayReader.read(CharArrayReader.java:95) at
> > > java.io.BufferedReader.fill(BufferedReader.java:136) at
> > > java.io.BufferedReader.read(BufferedReader.java:157) at
> > > org.apache.fop.apps.Driver.render(Driver.java:557)
> > > ------------------------------------------------------------------
> > > --
> > > --
> > > ------
> > > -----
> > >
> > > I'm using java as the language. Pls ur help will be greatly
> > > appreciated Thanx Harshini.
> >
> >
> > Jeremias Maerki
> >
> >
> > --------------------------------------------------------------------
> > - To unsubscribe, e-mail:
> > [EMAIL PROTECTED]
> > For additional commands, e-mail:
> > [EMAIL PROTECTED]
> >
> > --------------------------------------------------------------------
> > - To unsubscribe, e-mail:
> > [EMAIL PROTECTED]
> > For additional commands, e-mail:
> > [EMAIL PROTECTED]
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]