Category Archives: XML

DITA

For the last year or three, XML editor makers have been busy coding DITA customizations into their products. The latest editor to get DITA is Oxygen, my XML IDE of choice these days. It’s the latest fad, see, and there’s money to be made.

But I’m not convinced, and here’s why:

DITA claims to make life easier for users by splitting documents into smaller, reusable pieces, hinting that this is a fresh, new approach to documentation. It’s not, however; some of us have done this for years in our DTDs, long before XML was even thought of, simply because that’s one of the main points with structured information. It’s the sensible thing to do, a good reason to why structured information is useful in the first place.

Now, this is all good and well, but because DITA needs to appeal to a lot of users, it is a generic structure, and it’s big. Both of these things are unfortunate since bigger means more difficult to learn, both for users and developers, and generic means that to apply the structure to your specific needs, an abstraction (customization) level is needed.

Generic also means that any markup specific to one user’s needs will have to be added, which means more customization.

With DITA comes a package of stylesheets and utilities, also big and generic, hard to learn, and in need of customization, not only to add the user-specific requirements, but also to modify their look and feel. After all, you don’t really want to have your documents look like the next guy’s, do you?

See, what the DITA advocates are saying, basically, is that either you do want that, or you need to customize.

My view of document structures is just the opposite, really. I’d much rather go with writing a customer-specific DTD, if at all possible, just as I’d go for customer-specific stylesheets and other customizations and tweaks. In that way, I could make the structures, utilities, and stylesheets immediately relevant to the customer, thereby saving time spent trying to learn a generic structure and then trying to apply it to your needs.

That customer-specific DTD will practically always be smaller than any generic one; I know every single DTD I’ve ever created has been, including the package of DTDs I wrote for a large automobile manufacturer for all of their aftersales documentation. At the same time the DTD will most likely be far more relevant, far better fine-tuned, for the customer’s needs.

And yet, it would be just as easily customizable as DITA or some other “standards-based DTD“.

When I’m lecturing on XML and document structure management, I always stress that we use XML because we like to convert XML to other formats, not because we want it to remain the same. If some other company needs DITA documents from us, fine! I doubt it, but if the need arises, it’s easy, even trivial, to convert a customer-specific structure to a generic one.

See, DITA to me is just another DocBook. It’s a standard, true, but it’s just another standard among a thousand other standards. It’s open, also true, but so are a thousand others. And of course it claims to be easily customizable, but that’s obviously the case with those thousand other standards, too.

But it’s also big and generic and not very relevant as such to any specific requirement, not without an abstraction level or two.

Oxygen 9.0 Is Out

Version 9.0 of my favourite XSL IDE, Oxygen, was released yesterday. Of course, I downloaded and installed it as soon as I could, having waited for an upgrade since 8.2 came out, some six months ago. I’ve written about Oxygen before; it’s the first decent XSL IDE available for Linux, and the more I’ve used it, the more I’ve come to depend on it. See, what I especially like is the fact that I no longer need Microsoft Windows to do my XML/XSL work. Oxygen works very well in Debian/GNU Linux.

And now, it looks like I can finally re-evaluate my XML editor needs, too. So far, I’ve run XMetaL in wine, which kind of works except that right-clicking the workspace still crashes the program (but that’s fairly OK since I seldom need to right-click anything while writing). As most things in wine, it’s beta quality, no more.

Now, however, Oxygen 9.0 comes with a semi-WYSIWYG view, with CSS formatting and start- and end tag symbols, making it the first real alternative to running Windows software in wine. It is reasonably fast, too, from what I’ve seen so far, and certainly more stable than anything run in wine. You do need an official Sun Java JRE, though; it will complain if you use some of the Java replacements available for Linux, and it doesn’t work with the GNU libgcj Java Virtual Machine.

I’ll give it a more thorough test run within the next week or so, but I’m hoping that it can deliver what it promises.

XMetaL 5

I’ve spent the last few days tinkering with an XMetaL authoring environment for a client. The XMetaL version is the latest, 5.0, which is actually a lot of fun, but unfortunately it means that I’ve been forced back to Windows. What’s worse, it also means that I’m forced to develop in Microsoft’s exceedingly bloated Visual Studio .Net, surely a punishment for a previous life.

It’s beyond me to understand why JustSystems, the Japanese company that bought XMetaL from Blast Radius, insists on this dependency.

An XMetaL developer doesn’t need all the bells, whistles, and bugs that is Visual Studio, he needs a reasonably flexible scripting environment, easy access to modifying CSS stylesheets, writing (XML-based) toolbars and customizations, as well as the occasional form or dialog.

The thing is, different developers have different preferences. While I do believe that there are people that actually like Visual Studio .Net, not all of us do. Maybe we prefer other languages, or maybe we believe that forcing us to use the same tool for everything just isn’t the right way to go. After all, even if you own an 18-wheel truck, you don’t use it to drive to the supermarket to buy groceries. You use a car or a bus or a bike. Something that doesn’t get in the way.

Because that’s what Visual Studio does. It gets in the way, and more so when all you want to do is to tweak a CSS stylesheet. And I haven’t even mentioned how hard it has become to change the DTD and then recompile it and import it into your project.

And I won’t, because my blood pressure is important to me.

So while XMetaL in its latest reincarnation is very nice, I still consider version 3.1 to be superior for a number of reasons, of which one important one (to me) is that I can run it in and wine and Linux.