RelaxNG – The Best Way To Write XML Schemas

In a previous article I explained why XML Schema 1.0 is incapable of implementing the XML ignore rule and why this means that validating multiple versions of the same document is impossible using XML Schema in the general case. In this article I look at RelaxNG and show why it can handle multiple version validation without a hitch. I then discuss how to use RelaxNG in the real world, including with Web Services and conclude that the time has come for the XML and especially Web Services community to transition from XML Schema 1.0 to RelaxNG.

Continue reading RelaxNG – The Best Way To Write XML Schemas

Running Linux Live on a Dell Inspiron 8200

My wife's WinXP box died, again. I've been running the box for two years and that is just too long for windows. It really needs a full reformat and reinstall. But I don't have the time to deal with it now so I decided to instead to put Linux on my wife's machine. 98% of her time is spent in FireFox so she doesn't really care what the OS is. Wanting something easy I decided to try out several 'live Linux' distributions. These are distributions that run completely off a CD, no hard disk installation required. The one I found worked best on my wife's Dell was Mepis but even that will never stay up more than two days.
Continue reading Running Linux Live on a Dell Inspiron 8200

Writing Backwards Compatible XML Schema 1.0 Schemas Using the XML Ignore Rule

Writing a XML Schema is a challenge but as the first part of this document explains, writing a V2 schema that can accept V1 documents is in most cases impossible if you use XML Schema 1.0. In other words, if you want to write a backwards compatible schema you probably won't be able to do it using XML Schema 1.0. In an ideal world we would take the lessons learned from XML Schema and use them to start over, probably with RelaxNG. But until we can move over to a new standard we need a way to enable backwards compatible schemas to be written in XML Schema 1.0. Therefore the second part of this document explains how to use the XML Ignore Rule in conjunction with XML Schema 1.0 in order to create a validator that enables one to write backwards compatible schemas. The XML Ignore Rule can be best summarized as "if you don't recognize it, ignore it."

Continue reading Writing Backwards Compatible XML Schema 1.0 Schemas Using the
XML Ignore Rule

Escaping Excel X to OOo 1.1.2

I've previously described just how deeply awful Excel X is when using Visual Basic. But things recently got even worse when I found a bizarre bug in Excel X's For Each operator that prevented me from iterating on an array. Desperate for some kind of alternative I checked out Open Office for the Mac again and found a new version, 1.1.2, which is significantly better than the previous version and fits my needs much better than Excel X.
Continue reading Escaping Excel X to OOo 1.1.2

N:1 Web Service Applications – Getting from V1 to V2

Below I walk through the issues an implementer faces in moving from V1 to V2 of a Web Service application. I am limiting my investigation to a sub-set of Web Service applications, a N:1 Service. That is, a Web Service application with many clients (N) for which there is only one instance of the Web Service application itself (1).

Continue reading N:1 Web Service Applications – Getting from V1 to V2

Rsync, RsyncX 2.1 & OS X

I really needed to backup my system. I had evaluated a bunch of backup software when a friend (who shall remain nameless to protect the guilty) pointed out Rsync and RsyncX 2.1. Rsync is a command line open source program used to do sophisticated data backup. RsyncX is a 'friendly' front end to Rsync. Rsync by itself is about as friendly as an angry viper. RsyncX is a little less unfriendly, say about the level of a club to the head. After seven or so hours I finally managed to get everything working. Below I give step-by-step instructions on how I used RsyncX to set up both my local and remote backups. My take away from this experience is that I should have just bought backup software.
Continue reading Rsync, RsyncX 2.1 & OS X

Printing, IPP, OS X & Defeat


Sometimes you just have to know when to give up. I've been trying to figure out how to get my wife's Linux box to print on the printer I've hooked up to my OS X box. I configured the printer. I set up printer sharing. I connected to the CUPS server locally without problem. Then I tried to connect remotely. No luck. I edited /etc/cups/cupsd.conf to add the IP address of the linux box. No luck. At some point you just have to know when to give up. I give up. If there is a way to get printer sharing over IPP working with an OS X box as server and a Linux box as client I can't figure it out.