XSD schema for MeSH

The National Library of Medicine distributes the entire 25,000-node tree of MeSH descriptors (Medical Subject Headings) in XML form. Although they supply a DTD, many XML tools these days are designed to use XML schemas (aka XSDs) only.

I’ve converted the MeSH DTD into an XSD, starting with an automatic conversion using the W3C’s dtd2xsd.pl script, and then manually correcting the output. I haven’t done much XSD for a while so I’d be grateful for any feedback on it. I’ve included an explanation of the structure of MeSH because it has some subtleties that can make querying it rather confusing.
Continue reading