Oxygen vs. Serna -- Experiences?

Oxygen general issues.
oliverh
Posts: 5
Joined: Wed Nov 02, 2011 7:35 am

Oxygen vs. Serna -- Experiences?

Post by oliverh »

I'm evaluating visual XML editors. The documents to be edited on are scholarly papers and books anywhere between five and a thousand pages. The language is a subset of TEI with some extensions. The editor will be used mostly on Ubuntu but a Windows version being available is desirable.

So far I'm almost leaning in the direction of Serna, mostly because XSLT, even in a tiny subset, is more powerful than CSS. One example where this comes into play is citations which I can render in serna following a quote as some transformation of the citation element's attributes.

I'd presume that most other users in this forum also evaluated Oxygen vs. Serna and perhaps also XML Spy. Why did you decide for Oxygen?
Radu
Posts: 9059
Joined: Fri Jul 09, 2004 5:18 pm

Re: Oxygen vs. Serna -- Experiences?

Post by Radu »

Hi,

Maybe you could ask this question on the Oxygen Users Mailing List:

http://www.oxygenxml.com/mailman/listinfo/oxygen-user/

or on the TEI Users mailing list:

http://www.tei-c.org/Support/

Our forum is very active but a forum is a more static place, usually people post specific Oxygen questions and they are watching only the threads they have started.

Oxygen has great support for TEI and we have lots of TEI users (mainly from the Academic world, lots of universities use Oxygen in TEI courses).

We have extensions to the CSS specification so if you have a particular thing that you want to accomplish using the Oxygen Author page you can write us an email with more details on our technical support email address: support@oxygenxml.com

Regards,
Radu
Radu Coravu
<oXygen/> XML Editor
http://www.oxygenxml.com
oliverh
Posts: 5
Joined: Wed Nov 02, 2011 7:35 am

Re: Oxygen vs. Serna -- Experiences?

Post by oliverh »

Well, let me put one example where CSS seems to be difficult here--maybe other uses care about the question, too. Let's assume I have the following XML (syntax made up for illustration):

Code: Select all

The master warned us: <quote ref="knuth:1990" volume="3" page="10">Bubblesort is <emph>very</emph><pb page="11"/>slow! Thus we use Quicksort.</quote>
I think a good way to show this in a graphical editor would be something like this:
The master warned us: "Bubblesort is very slow!" (knuth:1990, 3:10-11) Thus we use Quicksort.
That is feasible with XSLT, but it's not obvious how I'd do functionality like that in CSS.
oliverh
Posts: 5
Joined: Wed Nov 02, 2011 7:35 am

Re: Oxygen vs. Serna -- Experiences?

Post by oliverh »

Dang! That should have been:

Well, let me put one example where CSS seems to be difficult here--maybe other uses care about the question, too. Let's assume I have the following XML (syntax made up for illustration):

Code: Select all

The master warned us: <quote ref="knuth:1990" volume="3" page="10">Bubblesort is <emph>very</emph><pb page="11"/>slow!</quote> Thus we use Quicksort.
I think a good way to show this in a graphical editor would be something like this:
The master warned us: "Bubblesort is very slow!" (knuth:1990, 3:10-11) Thus we use Quicksort.
That is feasible with XSLT, but it's not obvious how I'd do functionality like that in CSS.
sorin_ristache
Posts: 4141
Joined: Fri Mar 28, 2003 2:12 pm

Re: Oxygen vs. Serna -- Experiences?

Post by sorin_ristache »

Hello,

Yes, XSLT is more powerful but the Oxygen built-in CSS extensions can probably close the gap in most cases. For your example document you can try the following CSS (or extend the built-in TEI CSS from [Oxygen-folder]/frameworks/tei/xml/tei/css/tei_oxygen.css with an @import statement and add these CSS selectors) which uses the xpath CSS extension function:

Code: Select all

quote:before{
content: '"';
color:green;
}

emph {
font-style: italic;
}

pb {
content:" ";
/* or use display:none */
}

quote:after {
color:green;
content: '" (' attr(ref) ',' attr(volume) ':' attr(page) '-' xpath("pb/@page") ')';
}

The only downside is that the " characters and the (knuth:1990, 3:10-11) text that follows cannot be assigned different colors.

You can associate quickly a CSS stylesheet with an XML document with the action Associate XSLT/CSS Stylesheet which is available on the toolbar.


Regards,
Sorin
oliverh
Posts: 5
Joined: Wed Nov 02, 2011 7:35 am

Re: Oxygen vs. Serna -- Experiences?

Post by oliverh »

sorin wrote: The only downside is that the " characters and the (knuth:1990, 3:10-11) text that follows cannot be assigned different colors.
Thanks. Should have thought of the before/content and after/content fields--somehow I never had bothered to use CSS for content transformations, so it didn't occur to me. That should make it possible to do what I need, though in a slightly clunky way.
oliverh
Posts: 5
Joined: Wed Nov 02, 2011 7:35 am

Re: Oxygen vs. Serna -- Experiences?

Post by oliverh »

sorin wrote:For your example document you can try the following CSS (or extend the built-in TEI CSS from [Oxygen-folder]/frameworks/tei/xml/tei/css/tei_oxygen.css with an @import statement and add these CSS selectors) which uses the xpath CSS extension
Here's the next problem. Not all quotes have the volume attribute. Let's say I have another quote that only has a ref attribute and a page attribute. How do I best make it so that in that case the colon separating the volume and the page isn't shown? (That's necessary because in addition to volume and page I have ten or so other attributes that may show up, but do so only rarely.) Is there perhaps some sort of ifelse() function in your version of XPath that would allow me to do that?
sorin_ristache
Posts: 4141
Joined: Fri Mar 28, 2003 2:12 pm

Re: Oxygen vs. Serna -- Experiences?

Post by sorin_ristache »

If the volume attribute is optional you should add one more selector to the CSS in order to cover both cases (volume present or absent):

Code: Select all

quote:before{
content: '"';
color:green;
}

emph {
font-style: italic;
}

pb {
content:" ";
/* or use display:none */
}

quote[volume]:after {
color:green;
content: '" (' attr(ref) ', ' attr(volume) ':' attr(page) '-' xpath("pb/@page") ')';
}

quote:after {
color:green;
content: '" (' attr(ref) ')';
}

Regards,
Sorin
Post Reply