Open Jojo-Schmitz opened 1 year ago
This might sound ironic, but I believe that the URL in a DOCTYPE definition exists only for uniquely identifying a resource. It does not have to resolve to an actual address. That's always been an odd and confusing part of XML in some ways (though in the same boat, Recordare hasn't existed as an independent organization since MakeMusic bought the MusicXML rights and then later released them to W3C) but it's been a part of the specification for some time.
I will try to make it so that 4.1's preferred DOCTYPE resolves to a URL that actually exists, pointing to the .xsd definition in all cases.
And I will try to see if MakeMusic can get musicxml.org back up or if they're willing to transfer the domain name.
"http://www.musicxml.org/dtds/partwise.dtd" is a URL that points to the DTD, and it should resolve to a remote DTD for validation.
There is no formal MusicXML namespace URI, as this note suggests:
"The MusicXML 4.0 DTD has no namespace, so for compatibility the MusicXML 4.0 XSD has no namespace either. Those who need to import the MusicXML XSD into another schema are advised to create a new version that uses "http://www.musicxml.org/xsd/MusicXML" as the namespace."
Also, this GH issue.
"http://www.musicxml.org/xsd/MusicXML" gives an error 404 too...
Yeah, that one doesn't have to resolve -- it's a namespace identifier; it uses assumptions about the uniqueness of domain names to construct a namespace that nobody else can control other than the originating org who owns the domain.
Basically, it looks like a URL but it isn't. It's just a globally unique string.
MuseScore's MusicXML files have this in their header:
<!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 4.0 Partwise//EN" "http://www.musicxml.org/dtds/partwise.dtd">
But musicxml.org gives an error 404 on that partwise.dtd (on anything else too). Initially reported in https://musescore.org/en/node/341860.