Re: Poor performance of document() in XSL [Was: Re: simpel cocoon question]

2002-11-08 Thread Jeremy Quinn

On Thursday, Nov 7, 2002, at 16:19 Europe/London, Joerg Heinicke wrote:


normally this won't work. You create a Result Tree Fragment in 
$colours and have to convert it to a node set using node-set() 
extension function. This is not possible when using XSLTC.


Sorry for the red-herring!

I did not actually test it, I should have .

regards Jeremy


-
Please check that your question  has not already been answered in the
FAQ before posting. 

To unsubscribe, e-mail: <[EMAIL PROTECTED]>
For additional commands, e-mail:   <[EMAIL PROTECTED]>




Re: Poor performance of document() in XSL [Was: Re: simpel cocoon question]

2002-11-07 Thread Jeremy Quinn

On Wednesday, Nov 6, 2002, at 21:26 Europe/London, Stephen Ng wrote:


I say,
document() is good for rapid prototyping, but is a poor choice for
final deployment for performance reasons. Use aggregation instead.


The Cocoon developers recommend to use aggregation or
xinclude because of SoC (XSLT is for transforming, not for
aggregating content).


Sure, but I have a big lookup table in an xml file--it seems much more
natural to reference the lookup table from xslt using document rather
than to jam it into my content stream


You may find, if you re-encode your lookup table as XSLT variables, 
that you can 'include' your data as XSLT into your stylesheet.

eg.

constants.xslt:

	
		#fff
		#000
		#888
	

main.xslt:

	

	..

	
		
		
			


			
		
	

Hope this helps

regards Jeremy


-
Please check that your question  has not already been answered in the
FAQ before posting. 

To unsubscribe, e-mail: <[EMAIL PROTECTED]>
For additional commands, e-mail:   <[EMAIL PROTECTED]>



Re: simpel cocoon question

2002-11-07 Thread SAXESS - Hussayn Dabbous
Hello, Joerg;

thank you very much for the info.
The other solution is indeed much nicer, and much easier to
understand than mine ;-)

regards, hussayn

Joerg Heinicke wrote:

Hello Hussayn,

the question was also on the XSL list yesterday and there is a simpler 
solution:

http://www.biglist.com/lists/xsl-list/archives/200211/msg00188.html


--
Dr. Hussayn Dabbous
SAXESS Software Design GmbH
Neuenhöfer Allee 125
50935 Köln
Telefon: +49-221-56011-0
Fax: +49-221-56011-20
E-Mail:  [EMAIL PROTECTED]


-
Please check that your question  has not already been answered in the
FAQ before posting. 

To unsubscribe, e-mail: <[EMAIL PROTECTED]>
For additional commands, e-mail:   <[EMAIL PROTECTED]>




Re: simpel cocoon question

2002-11-07 Thread Joerg Heinicke
Hello Hussayn,

the question was also on the XSL list yesterday and there is a simpler solution:

http://www.biglist.com/lists/xsl-list/archives/200211/msg00188.html

Furthermore version="1.1" is only supported in pre-implementations of Saxon. 
XSL 1.1 died in Working Draft status.

Regards,

Joerg


SAXESS - Hussayn Dabbous wrote:
Hy;

The stylesheet below will do it. The trick is recursively
calling the template "project-measure".
I would be interested, if there is a more elegant/efficient
way, doing this in xslt or inside of cocoon ...

regards, hussayn



http://www.w3.org/1999/XSL/Transform"; 
version='1.1'>






  

  



  

  



  1
  
  
  

  

  



 






Kasper Nielsen wrote:

Thanks for the hints, aggregation is the way to go for sure, but im still
facing a problem

Basicly what im looking for is how to (fastest possible way) do to a 
project
(relational algebra) operation on a long list of relations in xsl.
Im not sure this should be done in xsl perhaps I need a custom 
transformer
anyway

Let's say I have this document













 kav 
991233
881123
123
823


 pjc 
77123123
44123123
723
923

. 100's of other projects



how do I transform this document into something like this:
The order between measures is as defined in the view part, ie (estimate
before actual) before responsible


  
881123
991233
 kav 
  
  
44123123
77123123
 pjc 
  



regards
  Kasper


- Original Message -
From: "Kasper Nielsen" <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Tuesday, November 05, 2002 2:27 PM
Subject: simpel cocoon question



Just started using Cocoon and I have a rather simple question:

Lets say i have a document with all my data (projects.xml)

   
RailwayTrack DF
kni 
   123
   456
   789
   
   
Digital Transmission 
pjc 
   987
   654
   321
   
   


And i also have a definition of some views of the data (views.xml)


   
   
   
   
   
   
   
   
   
   
   
   


Now I want to given the name of the view, lets say "estimate" to combine



it


into another xml document, that is extract only the data mentioned in 
the
view, in this case it would be the "schedule_estimate" column and the
"economy_estimate" column
The resulting document should look something like this

   
   
   schedule_estimate
   
   
   economy_estimate
   
   
   
   
   456
   789
   
   
   654
   321
   
   


Can I "merge" 2 documents in that way with xslt?
Or do I need a custom transformer?

regards
 Kasper Nielsen


--

System Development
VIRBUS AG
Fon  +49(0)341-979-7419
Fax  +49(0)341-979-7409
[EMAIL PROTECTED]
www.virbus.de


-
Please check that your question  has not already been answered in the
FAQ before posting. 

To unsubscribe, e-mail: <[EMAIL PROTECTED]>
For additional commands, e-mail:   <[EMAIL PROTECTED]>




Re: simpel cocoon question

2002-11-07 Thread SAXESS - Hussayn Dabbous
Hy;

The stylesheet below will do it. The trick is recursively
calling the template "project-measure".
I would be interested, if there is a more elegant/efficient
way, doing this in xslt or inside of cocoon ...

regards, hussayn



http://www.w3.org/1999/XSL/Transform"; 
version='1.1'>






  

  



  

  



  1
  
  
  

  

  



 






Kasper Nielsen wrote:
Thanks for the hints, aggregation is the way to go for sure, but im still
facing a problem

Basicly what im looking for is how to (fastest possible way) do to a project
(relational algebra) operation on a long list of relations in xsl.
Im not sure this should be done in xsl perhaps I need a custom transformer
anyway

Let's say I have this document













 kav 
991233
881123
123
823


 pjc 
77123123
44123123
723
923

. 100's of other projects



how do I transform this document into something like this:
The order between measures is as defined in the view part, ie (estimate
before actual) before responsible


  
881123
991233
 kav 
  
  
44123123
77123123
 pjc 
  



regards
  Kasper


- Original Message -
From: "Kasper Nielsen" <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Tuesday, November 05, 2002 2:27 PM
Subject: simpel cocoon question




Just started using Cocoon and I have a rather simple question:

Lets say i have a document with all my data (projects.xml)

   
RailwayTrack DF
kni 
   123
   456
   789
   
   
Digital Transmission 
pjc 
   987
   654
   321
   
   


And i also have a definition of some views of the data (views.xml)


   
   
   
   
   
   
   
   
   
   
   
   


Now I want to given the name of the view, lets say "estimate" to combine


it


into another xml document, that is extract only the data mentioned in the
view, in this case it would be the "schedule_estimate" column and the
"economy_estimate" column
The resulting document should look something like this

   
   
   schedule_estimate
   
   
   economy_estimate
   
   
   
   
   456
   789
   
   
   654
   321
   
   


Can I "merge" 2 documents in that way with xslt?
Or do I need a custom transformer?

regards
 Kasper Nielsen


-
Please check that your question  has not already been answered in the
FAQ before posting. 

To unsubscribe, e-mail: <[EMAIL PROTECTED]>
For additional commands, e-mail:   <[EMAIL PROTECTED]>




-
Please check that your question  has not already been answered in the
FAQ before posting. 

To unsubscribe, e-mail: <[EMAIL PROTECTED]>
For additional commands, e-mail:   <[EMAIL PROTECTED]>



--
Dr. Hussayn Dabbous
SAXESS Software Design GmbH
Neuenhöfer Allee 125
50935 Köln
Telefon: +49-221-56011-0
Fax: +49-221-56011-20
E-Mail:  [EMAIL PROTECTED]


-
Please check that your question  has not already been answered in the
FAQ before posting. 

To unsubscribe, e-mail: <[EMAIL PROTECTED]>
For additional commands, e-mail:   <[EMAIL PROTECTED]>




Re: simpel cocoon question

2002-11-06 Thread Kasper Nielsen
Thanks for the hints, aggregation is the way to go for sure, but im still
facing a problem

Basicly what im looking for is how to (fastest possible way) do to a project
(relational algebra) operation on a long list of relations in xsl.
Im not sure this should be done in xsl perhaps I need a custom transformer
anyway

Let's say I have this document













 kav 
991233
881123
123
823


 pjc 
77123123
44123123
723
923

. 100's of other projects



how do I transform this document into something like this:
The order between measures is as defined in the view part, ie (estimate
before actual) before responsible


  
881123
991233
 kav 
  
  
44123123
77123123
 pjc 
  



regards
  Kasper


- Original Message -
From: "Kasper Nielsen" <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Tuesday, November 05, 2002 2:27 PM
Subject: simpel cocoon question


> Just started using Cocoon and I have a rather simple question:
>
> Lets say i have a document with all my data (projects.xml)
> 
> 
>  RailwayTrack DF
>  kni 
> 123
> 456
> 789
> 
> 
>  Digital Transmission 
>  pjc 
> 987
> 654
> 321
> 
> 
> 
>
> And i also have a definition of some views of the data (views.xml)
>
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
>
> Now I want to given the name of the view, lets say "estimate" to combine
it
> into another xml document, that is extract only the data mentioned in the
> view, in this case it would be the "schedule_estimate" column and the
> "economy_estimate" column
> The resulting document should look something like this
> 
> 
> 
> schedule_estimate
> 
> 
> economy_estimate
> 
> 
> 
> 
> 456
> 789
> 
> 
> 654
> 321
> 
> 
> 
>
> Can I "merge" 2 documents in that way with xslt?
> Or do I need a custom transformer?
>
> regards
>   Kasper Nielsen
>
>
> -
> Please check that your question  has not already been answered in the
> FAQ before posting. 
>
> To unsubscribe, e-mail: <[EMAIL PROTECTED]>
> For additional commands, e-mail:   <[EMAIL PROTECTED]>
>


-
Please check that your question  has not already been answered in the
FAQ before posting. 

To unsubscribe, e-mail: <[EMAIL PROTECTED]>
For additional commands, e-mail:   <[EMAIL PROTECTED]>




RE: Poor performance of document() in XSL [Was: Re: simpel cocoon question]

2002-11-06 Thread Stephen Ng
> > I say,
> > document() is good for rapid prototyping, but is a poor choice for 
> > final deployment for performance reasons. Use aggregation instead.
> 
> The Cocoon developers recommend to use aggregation or 
> xinclude because of SoC (XSLT is for transforming, not for 
> aggregating content).

Sure, but I have a big lookup table in an xml file--it seems much more
natural to reference the lookup table from xslt using document rather
than to jam it into my content stream

--Steve

-
Please check that your question  has not already been answered in the
FAQ before posting. 

To unsubscribe, e-mail: <[EMAIL PROTECTED]>
For additional commands, e-mail:   <[EMAIL PROTECTED]>




RE: Poor performance of document() in XSL [Was: Re: simpel cocoon question]

2002-11-05 Thread Leigh Dodds
A naive implementation of the document() function is likely
to do this. However happily, by implementing the
javax.xml.transform.URIResolver interface [1], and setting
this on the Tranformer using setURIResolver [2] you can easily
plug in a simple cache (e.g. hash of URL versus retrieved content)
that avoid multiple network overheads.

I have a sample implementation and simple test harness
if anyone wants it.

Cheers,

L.


[1]. http://java.sun.com/j2se/1.4/docs/api/javax/xml/transform/URIResolver.html
[2].
http://java.sun.com/j2se/1.4/docs/api/javax/xml/transform/Transformer.html#setURIResolver(javax.xml.
transform.URIResolver)

> -Original Message-
> From: Ilya A. Kriveshko [mailto:ilya@;kaon.com]
> Sent: 05 November 2002 14:33
> To: [EMAIL PROTECTED]
> Subject: Poor performance of document() in XSL [Was: Re: simpel cocoon
> question]
>
>
> SAXESS - Hussayn Dabbous wrote:
>
> > 
> > But you also could do it directly within the xslt context:
> > You can use the document() function in your XSLT-file.
> > This function allows you to refer to data contained within
> > another XML-file. This is completely decoupled from cocoon
> > though. It's more about how to work with XSLT:
> > 
>
>
> In the past I have encountered a nasty performance problem with document().
> For example, when you declare an xsl variable that gets its value from a
> document(),
> and then use its value several times throughout the stylesheet, the URI
> of the document
> gets hist as many times as there are references to that variable. I.e.
> the xsl variable
> does not store the XML fragment it was given at the variable definition
> time, but
> merely stores the XPath string and then resolves it every time it's
> referenced.
> This may or may not be true for XPath expressions that do not contain
> document()
> as well. Does anyone know for sure?
>
> Example:
>
>  select="document('cocoon:/gimme-sumthn')/sumthn/in/@there"/>
>
> 
>   
> 
> 
> 
>   
> 
>
> When using Xalan, this example will cause the Cocoon pipeline that
> is responsible for "gimme-sumthn" to be hit three times. I say,
> document() is good for rapid prototyping, but is a poor choice for final
> deployment for performance reasons. Use aggregation instead.
>
> +2c
> --
> Ilya
>
>
>
>
>
> -
> Please check that your question  has not already been answered in the
> FAQ before posting. <http://xml.apache.org/cocoon/faq/index.html>
>
> To unsubscribe, e-mail: <[EMAIL PROTECTED]>
> For additional commands, e-mail:   <[EMAIL PROTECTED]>
>


-
Please check that your question  has not already been answered in the
FAQ before posting. <http://xml.apache.org/cocoon/faq/index.html>

To unsubscribe, e-mail: <[EMAIL PROTECTED]>
For additional commands, e-mail:   <[EMAIL PROTECTED]>




Poor performance of document() in XSL [Was: Re: simpel cocoon question]

2002-11-05 Thread Ilya A. Kriveshko
SAXESS - Hussayn Dabbous wrote:



But you also could do it directly within the xslt context:
You can use the document() function in your XSLT-file.
This function allows you to refer to data contained within
another XML-file. This is completely decoupled from cocoon
though. It's more about how to work with XSLT:




In the past I have encountered a nasty performance problem with document().
For example, when you declare an xsl variable that gets its value from a 
document(),
and then use its value several times throughout the stylesheet, the URI 
of the document
gets hist as many times as there are references to that variable. I.e. 
the xsl variable
does not store the XML fragment it was given at the variable definition 
time, but
merely stores the XPath string and then resolves it every time it's 
referenced.
This may or may not be true for XPath expressions that do not contain 
document()
as well. Does anyone know for sure?

Example:




 
   
   
   
 


When using Xalan, this example will cause the Cocoon pipeline that
is responsible for "gimme-sumthn" to be hit three times. I say,
document() is good for rapid prototyping, but is a poor choice for final
deployment for performance reasons. Use aggregation instead.

+2c
--
Ilya





-
Please check that your question  has not already been answered in the
FAQ before posting. 

To unsubscribe, e-mail: <[EMAIL PROTECTED]>
For additional commands, e-mail:   <[EMAIL PROTECTED]>



Re: simpel cocoon question (typo-correction)

2002-11-05 Thread SAXESS - Hussayn Dabbous
Hy again;
Sorry, there was a typo in my example. Of course
it must be:

1.) From within the cocoon sitemap you would
create something like this within a pipeline:


  
  

  
  


regards, hussayn

SAXESS - Hussayn Dabbous wrote:

Hy;

I'm also new to cocoon, but i think, your
problem can be solved directly using the
sitemap capabilities by merging the two xml files with
aggregation then applying a stylesheet on the merged
data...

But you also could do it directly within the xslt context:
You can use the document() function in your XSLT-file.
This function allows you to refer to data contained within
another XML-file. This is completely decoupled from cocoon
though. It's more about how to work with XSLT:

1.) From within the cocoon sitemap you would
create something like this within a pipeline:


  
  

  
  



2.) In the stylesheet you would then include a global parameter
outside of any template:

standardviews.xml

Note: the value "standardviews.xml" is taken, if you don't
apply the parameter as stated in 1.)


3.) Then finally you would refer to an element in the viewfile
via select attribute. e.g. if you would want to iterate through
your view elements:


. . .


you can use this wherever you can apply a select attribute...


Hope, that helps getting further. Maybe there are better
solutions. Maybe the aggregation within a pipeline makes it
even simpler for you.

regards, hussayn

--
Dr. Hussayn Dabbous
SAXESS Software Design GmbH
Neuenhöfer Allee 125
50935 Köln
Telefon: +49-221-56011-0
Fax: +49-221-56011-20
E-Mail:  [EMAIL PROTECTED]


-
Please check that your question  has not already been answered in the
FAQ before posting. 

To unsubscribe, e-mail: <[EMAIL PROTECTED]>
For additional commands, e-mail:   <[EMAIL PROTECTED]>




Re: simpel cocoon question

2002-11-05 Thread SAXESS - Hussayn Dabbous
Hy;

I'm also new to cocoon, but i think, your
problem can be solved directly using the
sitemap capabilities by merging the two xml files with
aggregation then applying a stylesheet on the merged
data...

But you also could do it directly within the xslt context:
You can use the document() function in your XSLT-file.
This function allows you to refer to data contained within
another XML-file. This is completely decoupled from cocoon
though. It's more about how to work with XSLT:

1.) From within the cocoon sitemap you would
create something like this within a pipeline:


  
  

  
  



2.) In the stylesheet you would then include a global parameter
outside of any template:

standardviews.xml

Note: the value "standardviews.xml" is taken, if you don't
apply the parameter as stated in 1.)


3.) Then finally you would refer to an element in the viewfile
via select attribute. e.g. if you would want to iterate through
your view elements:


. . .


you can use this wherever you can apply a select attribute...


Hope, that helps getting further. Maybe there are better
solutions. Maybe the aggregation within a pipeline makes it
even simpler for you.

regards, hussayn

Kasper Nielsen wrote:

Just started using Cocoon and I have a rather simple question:

Lets say i have a document with all my data (projects.xml)


 RailwayTrack DF
 kni 
123
456
789


 Digital Transmission 
 pjc 
987
654
321




And i also have a definition of some views of the data (views.xml)
















Now I want to given the name of the view, lets say "estimate" to combine it
into another xml document, that is extract only the data mentioned in the
view, in this case it would be the "schedule_estimate" column and the
"economy_estimate" column
The resulting document should look something like this



schedule_estimate


economy_estimate




456
789


654
321




Can I "merge" 2 documents in that way with xslt?
Or do I need a custom transformer?

regards
  Kasper Nielsen


-
Please check that your question  has not already been answered in the
FAQ before posting. 

To unsubscribe, e-mail: <[EMAIL PROTECTED]>
For additional commands, e-mail:   <[EMAIL PROTECTED]>



--
Dr. Hussayn Dabbous
SAXESS Software Design GmbH
Neuenhöfer Allee 125
50935 Köln
Telefon: +49-221-56011-0
Fax: +49-221-56011-20
E-Mail:  [EMAIL PROTECTED]


-
Please check that your question  has not already been answered in the
FAQ before posting. 

To unsubscribe, e-mail: <[EMAIL PROTECTED]>
For additional commands, e-mail:   <[EMAIL PROTECTED]>




Re: simpel cocoon question

2002-11-05 Thread Marcus Crafter
Hi Kasper,

You wouldn't need to write a custom transformer for this. One
solution would be to use aggregation to aggregate both files
together. Then using xsl you can extract the necessary data
for output.

Hope that helps.

Cheers,

Marcus

On Tue, Nov 05, 2002 at 02:27:17PM +0100, Kasper Nielsen wrote:
> Just started using Cocoon and I have a rather simple question:
> 
> Lets say i have a document with all my data (projects.xml)
> 
> 
>  RailwayTrack DF
>  kni 
> 123
> 456
> 789
> 
> 
>  Digital Transmission 
>  pjc 
> 987
> 654
> 321
> 
> 
> 
> 
> And i also have a definition of some views of the data (views.xml)
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> Now I want to given the name of the view, lets say "estimate" to combine it
> into another xml document, that is extract only the data mentioned in the
> view, in this case it would be the "schedule_estimate" column and the
> "economy_estimate" column
> The resulting document should look something like this
> 
> 
> 
> schedule_estimate
> 
> 
> economy_estimate
> 
> 
> 
> 
> 456
> 789
> 
> 
> 654
> 321
> 
> 
> 
> 
> Can I "merge" 2 documents in that way with xslt?
> Or do I need a custom transformer?
> 
> regards
>   Kasper Nielsen
> 
> 
> -
> Please check that your question  has not already been answered in the
> FAQ before posting. 
> 
> To unsubscribe, e-mail: <[EMAIL PROTECTED]>
> For additional commands, e-mail:   <[EMAIL PROTECTED]>
> 

-- 
.
 ,,$,  Marcus Crafter
;$'  ':Computer Systems Engineer
$: :   ManageSoft GmbH
 $   o_)$$$:   82-84 Mainzer Landstrasse
 ;$,_/\ &&:'   60327 Frankfurt Germany
   ' /( &&&
   \_'
  .
&&&:

-
Please check that your question  has not already been answered in the
FAQ before posting. 

To unsubscribe, e-mail: <[EMAIL PROTECTED]>
For additional commands, e-mail:   <[EMAIL PROTECTED]>




RE: simpel cocoon question

2002-11-05 Thread robert_hitchins
Kasper,

I'm kinda new at this too, but I believe you can do that easily with 
xslt...just define two components and stylesheets in your 
pipeline...one to include the first xml file and one to include the 
second one.  

There may be a faster/easier way to do this ;-)

Bob Hitchins

-Original Message-
From: [EMAIL PROTECTED] [mailto:news@;kav.dk]
Sent: Tuesday, November 05, 2002 8:27 AM
To: [EMAIL PROTECTED]
Subject: simpel cocoon question


Just started using Cocoon and I have a rather simple question:

Lets say i have a document with all my data (projects.xml)


 RailwayTrack DF
 kni 
123
456
789


 Digital Transmission 
 pjc 
987
654
321




And i also have a definition of some views of the data (views.xml)
















Now I want to given the name of the view, lets say "estimate" to 
combine it
into another xml document, that is extract only the data mentioned in 
the
view, in this case it would be the "schedule_estimate" column and the
"economy_estimate" column
The resulting document should look something like this



schedule_estimate


economy_estimate




456
789


654
321




Can I "merge" 2 documents in that way with xslt?
Or do I need a custom transformer?

regards
  Kasper Nielsen


-
Please check that your question  has not already been answered in the
FAQ before posting. 

To unsubscribe, e-mail: <[EMAIL PROTECTED]>
For additional commands, e-mail:   <[EMAIL PROTECTED]>



-
Please check that your question  has not already been answered in the
FAQ before posting. 

To unsubscribe, e-mail: <[EMAIL PROTECTED]>
For additional commands, e-mail:   <[EMAIL PROTECTED]>