[XML-DEV Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] Re: Xopus Explained (was: Re: xml editors)
Thanks for this. Seems a bold conception of the problem and a non-trivial implementation. I shall have to try Xopus. I assume, but you didn't say, that a CSS stylesheet applied to the output XML isn't a problem for Xopus, and, separately, that XHTML output is ok, too? Bob Foster http://xmlbuddy.com/ 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
|
PURCHASE STYLUS STUDIO ONLINE TODAY!Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced! Download The World's Best XML IDE!Accelerate XML development with our award-winning XML IDE - Download a free trial today! Subscribe in XML format
|