Next in thread → Next in month →

Re: [xml-dev] Xopus Explained (was: Re: [xml-dev] xml editors)

From
Jim Rankin <>
To
Laurens van den Oever <>
Date
2004-04-16T14:35:52Z
ID
<>
Thread
Re: [xml-dev] Xopus Explained (was: Re: [xml-dev] xml editors)
Wow.  I'm impressed.

  -jimbo

On Apr 16, 2004, at 2:36 AM, Laurens van den Oever wrote:

> Though Bob already did a good job giving our answer, I can give a more
> in-depth explanation why Xopus can do what it does.
>
> First of all Xopus doesn't roundtrip XML. I agree with Robert, this
> isn't possible. Though some editors (eWebEditPro+XML for instance) are
> featuring this method.
>
> Xopus takes the original XSL and transforms it to an XSL' that keeps
> track of each source node. This XSL' is functionally equivalent to the
> original XSL except that each output node can be traced back to an 
> input
> node. Xopus can use this method to keep track of nodes through any
> number of consecutive XSLs. It supports multiple input documents using
> XInclude. And Xopus can follow elements, attributes, text nodes,
> processing-instructions and comments and all conversions between these
> node types.
>
> So you can have an attribute in your source document, convert that to a
> processing-instruction using the first XSL and finally render it in the
> output as a text node and Xopus is still able to trace it back to the
> original attribute.
>
> Node values that are modified using string functions will become
> uneditable. The modified string result will still be traced back to the
> original node though.
>
> Like Bob mentioned, is it possible to confuse the tracing algorithm, 
> but
> worst case you just can't select certain nodes to modify them. We have
> yet to encounter an XSL where that problem can't be fixed with some
> simple modifications (which don't affect the functionality of the XSL).
> And I haven't seen any real world XSL confusing the Xopus tracing
> algorithm.
>
> If the cursor is in a <H1/> element in the output that can be traced to
> a <title/> element in the input and the XML Schema allows deletion of
> <title/> in that context, the delete button will be active and the user
> will be able to delete the <title/> element.
>
> After the user has modified the XML, the complete pipeline is executed
> to update the WYSIWYG view. This allows you to use complex logic in the
> XSL like sorting and conditionals.
>
> There are a few limitations to this method, most of them not caused by
> the technique, but by our XSL to XSL' transformation. Xopus doesn't
> support apply-imports, disable-output-escaping (the XSL output must be
> XML) and whitespace is always preserved. And if you use select on
> value-of or copy-of, you must either refer to a node set or use
> string(), number() or boolean() to type your expression. We may be able
> to remove these limitations is future versions of Xopus.
>
> Robert, I hope this anwers your questions. I also like to add that 
> Xopus
> is written completely in Javascript.
>
> For more information you can visit our website ( http://www.xopus.com )
> or attend my presentation at XML Europe 2004 ( http://www.xmleurope.com
> ) next Wednesday in Amsterdam.
>
> Best regards,
>
> Laurens van den Oever
> Q42

Excelsior! XML Marshaller for Cocoa
http://www.homepage.mac.com/jimbokun/Excelsior.html
Next in thread → Next in month →