/* ----------------------------------------------- Blogger Template Style Name: Minima Designer: Douglas Bowman URL: www.stopdesign.com Date: 26 Feb 2004 ----------------------------------------------- */ body { background:#fff; margin:0; padding:40px 20px; font:x-small Georgia,Serif; text-align:center; color:#333; font-size/* */:/**/small; font-size: /**/small; } a:link { color:#58a; text-decoration:none; } a:visited { color:#969; text-decoration:none; } a:hover { color:#c60; text-decoration:underline; } a img { border-width:0; } /* Header ----------------------------------------------- */ #header { width:660px; margin:0 auto 10px; border:1px solid #ccc; } #blog-title { margin:5px 5px 0; padding:20px 20px .25em; border:1px solid #eee; border-width:1px 1px 0; font-size:200%; line-height:1.2em; font-weight:normal; color:#666; text-transform:uppercase; letter-spacing:.2em; } #blog-title a { color:#666; text-decoration:none; } #blog-title a:hover { color:#c60; } #description { margin:0 5px 5px; padding:0 20px 20px; border:1px solid #eee; border-width:0 1px 1px; max-width:700px; font:78%/1.4em "Trebuchet MS",Trebuchet,Arial,Verdana,Sans-serif; text-transform:uppercase; letter-spacing:.2em; color:#999; } /* Content ----------------------------------------------- */ #content { width:660px; margin:0 auto; padding:0; text-align:left; } #main { width:410px; float:left; } #sidebar { width:220px; float:right; } /* Headings ----------------------------------------------- */ h2 { margin:1.5em 0 .75em; font:78%/1.4em "Trebuchet MS",Trebuchet,Arial,Verdana,Sans-serif; text-transform:uppercase; letter-spacing:.2em; color:#999; } /* Posts ----------------------------------------------- */ .date-header { margin:1.5em 0 .5em; } .post { margin:.5em 0 1.5em; border-bottom:1px dotted #ccc; padding-bottom:1.5em; } .post-title { margin:.25em 0 0; padding:0 0 4px; font-size:140%; font-weight:normal; line-height:1.4em; color:#c60; } .post-title a, .post-title a:visited, .post-title strong { display:block; text-decoration:none; color:#c60; font-weight:normal; } .post-title strong, .post-title a:hover { color:#333; } .post div { margin:0 0 .75em; line-height:1.6em; } p.post-footer { margin:-.25em 0 0; color:#ccc; } .post-footer em, .comment-link { font:78%/1.4em "Trebuchet MS",Trebuchet,Arial,Verdana,Sans-serif; text-transform:uppercase; letter-spacing:.1em; } .post-footer em { font-style:normal; color:#999; margin-right:.6em; } .comment-link { margin-left:.6em; } .post img { padding:4px; border:1px solid #ddd; } .post blockquote { margin:1em 20px; } .post blockquote p { margin:.75em 0; } /* Comments ----------------------------------------------- */ #comments h4 { margin:1em 0; font:bold 78%/1.6em "Trebuchet MS",Trebuchet,Arial,Verdana,Sans-serif; text-transform:uppercase; letter-spacing:.2em; color:#999; } #comments h4 strong { font-size:130%; } #comments-block { margin:1em 0 1.5em; line-height:1.6em; } #comments-block dt { margin:.5em 0; } #comments-block dd { margin:.25em 0 0; } #comments-block dd.comment-timestamp { margin:-.25em 0 2em; font:78%/1.4em "Trebuchet MS",Trebuchet,Arial,Verdana,Sans-serif; text-transform:uppercase; letter-spacing:.1em; } #comments-block dd p { margin:0 0 .75em; } .deleted-comment { font-style:italic; color:gray; } /* Sidebar Content ----------------------------------------------- */ #sidebar ul { margin:0 0 1.5em; padding:0 0 1.5em; border-bottom:1px dotted #ccc; list-style:none; } #sidebar li { margin:0; padding:0 0 .25em 15px; text-indent:-15px; line-height:1.5em; } #sidebar p { color:#666; line-height:1.5em; } /* Profile ----------------------------------------------- */ #profile-container { margin:0 0 1.5em; border-bottom:1px dotted #ccc; padding-bottom:1.5em; } .profile-datablock { margin:.5em 0 .5em; } .profile-img { display:inline; } .profile-img img { float:left; padding:4px; border:1px solid #ddd; margin:0 8px 3px 0; } .profile-data { margin:0; font:bold 78%/1.6em "Trebuchet MS",Trebuchet,Arial,Verdana,Sans-serif; text-transform:uppercase; letter-spacing:.1em; } .profile-data strong { display:none; } .profile-textblock { margin:0 0 .5em; } .profile-link { margin:0; font:78%/1.4em "Trebuchet MS",Trebuchet,Arial,Verdana,Sans-serif; text-transform:uppercase; letter-spacing:.1em; } /* Footer ----------------------------------------------- */ #footer { width:660px; clear:both; margin:0 auto; } #footer hr { display:none; } #footer p { margin:0; padding-top:15px; font:78%/1.6em "Trebuchet MS",Trebuchet,Verdana,Sans-serif; text-transform:uppercase; letter-spacing:.1em; }

Sunday, March 04, 2007

Oxygen

Yesterday, I finally gave in and bought Oxygen, a Java-based XML/XSL editor available for Linux. While it's not an editor I'd choose for authoring XML documents (I still prefer something like XMetaL for anything beyond a page or two), I've fallen in love with it while writing XSL stylesheets for Arabic/Persian/Hebrew output for a client.

Until now, I've used ActiveState's Komodo for the purpose but I have to admit that Oxygen is better. Obviously, there's content completion for XSLT, but also for XSL-FO, which is very nice. You can also set a DTD or XML Schema of your own choice as the target output, which makes it a lot easier and faster to write stylesheets.

But the best feature is one that I don't really expect to use commercially: Oxygen's got Relax NG support, both for writing Relax NG schemas and for writing instances. It's really cool, but unfortunately, nobody seems to use Relax NG. It's just me and a few mates.

And no, I'm not affiliated with the company behind Oxygen in any way. I just like the product. A lot.

2 Comments:

Anonymous Anonymous said...

I wouldn't expect to compete against any language specific editor, but Komodo does have the features you're mentioning. Completion in Komodo is based on DTD or RelaxNG Schema's, and you can add your own (eg. XSL-FO). We include XSLT completion which supports output completion as defined in the output element or namespaces. Naturally, we also support RelaxNG.

Regards,
Shane Caraveo
ActiveState

6:57 PM  
Blogger Ari N said...

I'll have to check the new Komodo version. I have version 3, and it could not handle FO target completion. That it also handles Relax NG is certainly news to me.

Thanks for the info!

11:49 PM  

Post a Comment

<< Home