Use an URN for DTD ID
XML tools interpret “fonts.dtd” as a relative path.
Unfortunately, that can not work now that the configuration is spread over multiple system-dependant directories, without a common relative path to this file. And, an absolute path can not be defined in a system-independant way. System independance is a requirement to share config files between systems.
Therefore, replace the broken relative path by a formal URN, that will work the same way on all systems, without network access.
This makes the DTD registerable with commands like:
$ xmlcatalog --noout --add system
"urn:fontconfig:fonts.dtd"
"file:///usr/share/xml/fontconfig/fonts.dtd"
/etc/xml/catalog
That enables easy config file checking: $ xmllint --loaddtd ${config_file} >/dev/null