Joerg Heinicke wrote:
On 08.08.2005 23:10, Vadim Gritsenko wrote:

XSLT serialization (as per spec Eric quoted) provides a way for "one way 1:1 transformation" of xml into the desired view format exactly in the same way as batik transforms svg into png. XSLT has more capabilities, one even might say that it allows for arbitrary xml transformations - but another will say that's exactly the transformation he needs for his view.

From the pipeline's POV it's not 1:1 as the serializer decides to which output format the XML is serialized, so it is 1:n, so the output is also not predictable for the pipeline.

Output of the serializer is never predictable, otherwise no need for

    /**
     * Get the mime-type of the output of this <code>Component</code>.
     */
    String getMimeType();


TraxSerializer does not force you to put your final view xslt transform into the serializer. And I'd even discourage you to do it - as it, in some scenarios, reduces possibilities of reuse - but in some scenarios it'd be advantageous to add small xslt based serialization instead of writing yet another java serializer.


Yes, I'm not forced to use TraxSerializer. Maybe I should withdraw from this discussion because it leads to nearly nowhere. Let's just add this component to Cocoon's codebase.

But IMO the codebase is already to big. There are so many components based on problematic approaches (SourceWritingTransformer,

What would be the migration path? (beside flow).


DOMSessionTransformer (both with side effects))

You mean WriteDOMSessionTransformer? Should be deprecated, imho. Could be replaced with SourceWritingTransformer and dom source, or some such.

And, just to make it clear, "side effects transformers" are not problematic. They are not a best practice, so we don't generally recommend them, but it does not mean they have no place. And some of such transformers have no replacement at all.


or widely unused (why is the TraxGenerator still in trunk after more than 2 years?).

<shrug> Some of the code is 5 or 6 years old. So what? </shrug>

It's in the scratchpad. Combined with TraxSerializer, they both can be part of trax block.


Why shall we add another component that's problematic (at least in my POV, see above)?

It does not have to be in the trunk (options - own block, wiki, bugzilla, sf, external block). It does not have to be even added - but I don't see why not.

Vadim

Reply via email to