Cygwin may be the only way to stay sane while using Windows, but it has its own Unix-like notion for drive names, e.g., “/cygdrive/c/
” instead of “c:
“. Which is fine, except when you want to use both Java XML tools, which understand only the “c:
” form, and Cygwin tools, which tend to understand only the “/cygdrive/c/
” form.
The Cygwin xsltproc
and xmllint
complain when you use them with files containing Windows drive names in system identifiers, so the second time it happened, I wrote a simple XML catalog file to map the Windows drive names to the Cygwin paths.
Put this as the contents of /etc/xml/catalog
(not catalog.xml
!) and the Cygwin xsltproc
, etc., will handle Windows drive names:
<?xml version="1.0"?>
<catalog xmlns="urn:oasis:names:tc:entity:xmlns:xml:catalog">
<rewriteSystem
systemIdStartString="file:///C:/"
rewritePrefix="file:///cygdrive/c/"/>
</catalog>
You will have to add a suitable rewriteSystem
for each additional drive that you use.