[XML-DEV Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message]

Re: Xopus Explained (was: Re: xml editors)


xopus
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


PURCHASE STYLUS STUDIO ONLINE TODAY!

Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!

Buy Stylus Studio Now

Download The World's Best XML IDE!

Accelerate XML development with our award-winning XML IDE - Download a free trial today!

Don't miss another message! Subscribe to this list today.
Email
First Name
Last Name
Company
Subscribe in XML format
RSS 2.0
Atom 0.3
 

Stylus Studio has published XML-DEV in RSS and ATOM formats, enabling users to easily subcribe to the list from their preferred news reader application.


Stylus Studio Sponsored Links are added links designed to provide related and additional information to the visitors of this website. they were not included by the author in the initial post. To view the content without the Sponsor Links please click here.

Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member
Stylus Studio® and DataDirect XQuery ™are products from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2013 All Rights Reserved.