XML catalogs allow local caching of long-lived material like schemas, DTDs, and the like. They thus make it feasible to work with XML software that uses URIs to locate such material even when you are currently not network accessible. They also make it easier to work around discrepancies in software. Some programs I use support normal URIs as system identifiers, others (mostly older stuff, admittedly, but programs I still want to use) really only directly supports access to the file system. But when programs support catalogs, then I can generally make them both work fine and avoid having to munge the system identifiers in a document each time I open it in a different program or my network status changes. Richard Tobin‘s rxp became much more useful (and went from being something I used every few months to something I use essentially all the time) when he added catalog support; other software that I would otherwise use routinely doesn’t support catalogs, because the developer doesn’t see the point (I won’t name names, but you know who you are), with the result that I don’t use it at all when I can avoid it.
Tim Berners-Lee once told me that really, catalogs seemed just a special case of local caching, and that one should use the local cache instead of a special-purpose mechanism. In some ways, he’s right, and I’m willing to stop using catalogs when I learn about a local cache mechanism that is as well documented, as simple to use, and as application independent as catalogs have proven to be. (Who is willing to hold their breath til that happens?)
Good work, Tony!
If only all XML software supported XML catalogs.