Hi Daniel,
> I am exploring the possibilities to write an XSLT-based WYSIWYG XML
> Editor. This means, I want to edit the HTML-Output of an XSLT-
> Transformation and change the originating XML Document.
whenever the HTML-output is changed, not only the source document might change but also the transformation itself. Let say that your stylesheet generates a <p> element, then in your editor when the author changes a paragraph (P) into a header (HX) then the stylesheet itself needs to be changed.
Anyway I've done some works on this topic in the context of editing generic multmedia documents. Here some references:
"An Incremental XSLT Transformation Processor for XML Document Manipulation", http://www2002.org/CDROM/refereed/321/
"Authoring transformations by direct manipulation for adaptable multimedia presentations", http://portal.acm.org/citation.cfm?id=502206
Enjoy!
Lionel
Daniel Migowski <[EMAIL PROTECTED]> wrote on 04/28/2005 09:24:16 AM:
> Hello xalan developers,
>
> I am exploring the possibilities to write an XSLT-based WYSIWYG XML
> Editor. This means, I want to edit the HTML-Output of an XSLT-
> Transformation and change the originating XML Document. I know that
> have to rewrite some (or many) parts of Xalan, but I am willing to do so :)
>
> First, the concept:
>
> The base concept is to annotate every generated output with the
> location and templates in the xslt-file, that were responsible for
> generating each output fragment. In addition, I annotate the output
> with every matching XPath-Query that was done, to link back to the
> original document. I will even add the not-matched querys (like
> unsatisfied xsl:if statements, to find the output positions, that
> have to be reevaluated, after a part of the original xml document
> changes. All matched or unmatched annotated XPathQuerys in the
> output document will have a context supplied, if they are relative.
> Now when i add some text to the result document, i can find out the
> source location in the xml document, change that, a by scanning the
> xpath querys in the result document, i can find out which parts of
> the transformation i have to redo.
> If someone is interested, I would like to provide a larger
> description document to discuss it.
>
> Second, my estimation of my chances:
>
> After three days of digging through the Xalan Sources (I found a few
> bugs while doing so, I send the patches later), I found out, that I
> could provide an enhanced SerializationHandler, that has a back
> reference to the transformer, or just is a trace listener, to have
> the input ready for annoting my output document, to refer back to
> the originating xml document.
>
> Third, my questions:
>
> (I will code to achive those goals, but just need to know, if the
> current architecture of xalan would support it, before start hacking)
>
> Q1: Is it possible to start transforming just for a small range of
> the originating document, like just applying a template to a given
> node in the xml tree, and capturing just this small part of output?
> I need this when I have to rebuild parts of the document.
> Q2: How do i do only a partial transformation? I think of selection
> a node from my originating document, and the transform only this
> part of the xml document.
> Q3: In the sources i found, that the DTM that was build from the
> XML-Document, is not assumed to change during the transformation. Is
> it possible to reuse a changed DTM with the same tranformer to redo
> some part of the transformation, like stated in Q2?
> Q4: Can I reuse compliled XPathExpressions, if the underlying DTM
> changes? (For Speed)
> Q5: Dis someone do this before?
> Q6: Do you think I am completly mad trying this? :)
>
> Ciao,
> Daniel Migowski
- Re: XSLT-based WYSIWYG XML Editor Lionel Villard
- Re[2]: XSLT-based WYSIWYG XML Editor Daniel Migowski
- Re: XSLT-based WYSIWYG XML Editor Daniel Migowski
