6. Manual catalog management
Do I hafta?
If catalog based resolvers have an obvious flaw, it’s that you have to write the catalogs.
<catalog xmlns="urn:oasis:names:tc:entity:xmlns:xml:catalog" prefer="public"><delegatePublic publicIdStartString="-//W3C//ENTITIES XHTML" catalog="cat-xhtml.xml"/><delegatePublic publicIdStartString="-//W3C//ELEMENTS XHTML" catalog="cat-xhtml.xml"/><delegatePublic publicIdStartString="-//W3C//DTD XHTML" catalog="cat-xhtml.xml"/><delegateSystem systemIdStartString="https://www.w3.org/MarkUp/DTD/xhtml"catalog="cat-xhtml.xml"/><delegateSystem systemIdStartString="https://www.w3.org/TR/xhtml"catalog="cat-xhtml.xml"/><delegatePublic publicIdStartString="-//W3C//ENTITIES SVG" catalog="cat-svg.xml"/><delegatePublic publicIdStartString="-//W3C//ELEMENTS SVG" catalog="cat-svg.xml"/><delegatePublic publicIdStartString="-//W3C//DTD SVG" catalog="cat-svg.xml"/><delegateSystem systemIdStartString="https://www.w3.org/Graphics/SVG/1.1/"catalog="cat-svg.xml"/><delegatePublic publicIdStartString="-//W3C//ENTITIES " catalog="cat-entities.xml"/><delegatePublic publicIdStartString="ISO 8879:1986//ENTITIES "catalog="cat-entities.xml"/><delegateSystem systemIdStartString="https://www.w3.org/2003/entities/"catalog="cat-entities.xml"/><delegateSystem systemIdStartString="https://www.w3.org/Math/DTD/mathml1/"catalog="cat-entities.xml"/><delegateSystem systemIdStartString="https://www.w3.org/Math/DTD/mathml2/"catalog="cat-mathml2.xml"/><delegateSystem systemIdStartString="https://www.w3.org/Math/DTD/mathml3/"catalog="cat-mathml3.xml"/><!-- At present, only the RDDL public identifiers begin with -//XML-DEV// --><delegatePublic publicIdStartString="-//XML-DEV//" catalog="cat-rddl.xml"/><delegateSystem systemIdStartString="http://www.rddl.org/" catalog="cat-rddl.xml"/><uri name="https://www.w3.org/1999/xlink.xsd"uri="www.w3.org/1999/xlink.xsd"/><uri name="https://www.w3.org/XML/2008/06/xlink.xsd"uri="www.w3.org/XML/2008/06/xlink.xsd"/><public publicId="-//W3C//DTD XMLSCHEMA 200102//EN"uri="www.w3.org/2001/XMLSchema.dtd"/><system systemId="https://www.w3.org/2001/XMLSchema.dtd"uri="www.w3.org/2001/XMLSchema.dtd"/><uri name="https://www.w3.org/2001/XMLSchema.xsd"uri="www.w3.org/2001/XMLSchema.xsd"/><public publicId="-//W3C//DTD XSD 1.0 Datatypes//EN"uri="www.w3.org/2001/datatypes.xsd"/><public publicId="datatypes" uri="www.w3.org/2001/datatypes.xsd"/><system systemId="https://www.w3.org/2001/datatypes.xsd"uri="www.w3.org/2001/datatypes.xsd"/><uri name="https://www.w3.org/2001/xml.xsd" uri="www.w3.org/2001/xml.xsd"/><public publicId="-//W3C//DTD Specification V2.10//EN"uri="www.w3.org/2002/xmlspec/dtd/2.10/xmlspec.dtd"/><system systemId="https://www.w3.org/2002/xmlspec/dtd/2.10/xmlspec.dtd"uri="www.w3.org/2002/xmlspec/dtd/2.10/xmlspec.dtd"/><public publicId="-//W3C//DTD XSD 1.1//EN"uri="www.w3.org/2009/XMLSchema/XMLSchema.dtd"/><system systemId="https://www.w3.org/2009/XMLSchema/XMLSchema.dtd"uri="www.w3.org/2009/XMLSchema/XMLSchema.dtd"/><public publicId="-//W3C//DTD XSD 1.1 Datatypes//EN"uri="www.w3.org/2009/XMLSchema/datatypes.xsd"/><system systemId="https://www.w3.org/2009/XMLSchema/datatypes.xsd"uri="www.w3.org/2009/XMLSchema/datatypes.xsd"/><public publicId="-//W3C//NOTATIONS XHTML Notations 1.0//EN"uri="www.w3.org/MarkUp/DTD/xhtml-notations-1.mod"/><public publicId="-//W3C//DTD MathML 2.0//EN"uri="www.w3.org/Math/DTD/mathml2/mathml2.dtd"/><system systemId="https://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd"uri="www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd"/><system systemId="https://www.w3.org/TR/ruby/xhtml-ruby-1.mod"uri="www.w3.org/TR/ruby/xhtml-ruby-1.mod"/><uri name="https://www.w3.org/TR/xmlschema-1/XMLSchema.xsd"uri="www.w3.org/TR/xmlschema-1/XMLSchema.xsd"/><uri name="https://www.w3.org/TR/xmlschema-2/datatypes.xsd"uri="www.w3.org/TR/xmlschema-2/datatypes.xsd"/><uri name="https://www.w3.org/TR/xmlschema11-1/XMLSchema.xsd"uri="www.w3.org/TR/xmlschema11-1/XMLSchema.xsd"/><uri name="https://www.w3.org/TR/xmlschema11-2/datatypes.xsd"uri="www.w3.org/TR/xmlschema11-2/datatypes.xsd"/><uri name="https://www.w3.org/TR/xslt-30/schema-for-json.xsd"uri="www.w3.org/TR/xslt-30/schema-for-json.xsd"/><uri name="https://www.w3.org/TR/xslt-30/schema-for-xslt30.rnc"uri="www.w3.org/TR/xslt-30/schema-for-xslt30.rnc"/><uri name="https://www.w3.org/TR/xslt-30/schema-for-xslt30.rng"uri="www.w3.org/TR/xslt-30/schema-for-xslt30.rng"/><uri name="https://www.w3.org/TR/xslt-30/schema-for-xslt30.xsd"uri="www.w3.org/TR/xslt-30/schema-for-xslt30.xsd"/><uri name="https://www.w3.org/TR/xslt-30/xml-to-json.xsl"uri="www.w3.org/TR/xslt-30/xml-to-json.xsl"/><!-- The MathML public identifiers below aren’t in one of the --><!-- delegated catalogs because the form of the identifier --><!-- doesn’t lend itself to delegation. Simplest to just leave --><!-- them here. --><public publicId="-//W3C//ENTITIES Box and Line Drawing for MathML 2.0//EN"uri="www.w3.org/Math/DTD/mathml2/iso8879/isobox.ent"/><public publicId="-//W3C//ENTITIES Russian Cyrillic for MathML 2.0//EN"uri="www.w3.org/Math/DTD/mathml2/iso8879/isocyr1.ent"/><public publicId="-//W3C//ENTITIES Non-Russian Cyrillic for MathML 2.0//EN"uri="www.w3.org/Math/DTD/mathml2/iso8879/isocyr2.ent"/><public publicId="-//W3C//ENTITIES Diacritical Marks for MathML 2.0//EN"uri="www.w3.org/Math/DTD/mathml2/iso8879/isodia.ent"/><public publicId="-//W3C//ENTITIES Added Latin 1 for MathML 2.0//EN"uri="www.w3.org/Math/DTD/mathml2/iso8879/isolat1.ent"/><public publicId="-//W3C//ENTITIES Added Latin 2 for MathML 2.0//EN"uri="www.w3.org/Math/DTD/mathml2/iso8879/isolat2.ent"/><public publicId="-//W3C//ENTITIES Numeric and Special Graphic for MathML 2.0//EN"uri="www.w3.org/Math/DTD/mathml2/iso8879/isonum.ent"/><public publicId="-//W3C//ENTITIES Publishing for MathML 2.0//EN"uri="www.w3.org/Math/DTD/mathml2/iso8879/isopub.ent"/><public publicId="-//W3C//ENTITIES Added Math Symbols: Arrow Relations for MathML 2.0//EN"uri="www.w3.org/Math/DTD/mathml2/iso9573-13/isoamsa.ent"/><public publicId="-//W3C//ENTITIES Added Math Symbols: Binary Operators for MathML 2.0//EN"uri="www.w3.org/Math/DTD/mathml2/iso9573-13/isoamsb.ent"/><public publicId="-//W3C//ENTITIES Added Math Symbols: Delimiters for MathML 2.0//EN"uri="www.w3.org/Math/DTD/mathml2/iso9573-13/isoamsc.ent"/><public publicId="-//W3C//ENTITIES Added Math Symbols: Negated Relations for MathML 2.0//EN"uri="www.w3.org/Math/DTD/mathml2/iso9573-13/isoamsn.ent"/><public publicId="-//W3C//ENTITIES Added Math Symbols: Ordinary for MathML 2.0//EN"uri="www.w3.org/Math/DTD/mathml2/iso9573-13/isoamso.ent"/><public publicId="-//W3C//ENTITIES Added Math Symbols: Relations for MathML 2.0//EN"uri="www.w3.org/Math/DTD/mathml2/iso9573-13/isoamsr.ent"/><public publicId="-//W3C//ENTITIES Greek Symbols for MathML 2.0//EN"uri="www.w3.org/Math/DTD/mathml2/iso9573-13/isogrk3.ent"/><public publicId="-//W3C//ENTITIES Math Alphabets: Fraktur for MathML 2.0//EN"uri="www.w3.org/Math/DTD/mathml2/iso9573-13/isomfrk.ent"/><public publicId="-//W3C//ENTITIES Math Alphabets: Open Face for MathML 2.0//EN"uri="www.w3.org/Math/DTD/mathml2/iso9573-13/isomopf.ent"/><public publicId="-//W3C//ENTITIES Math Alphabets: Script for MathML 2.0//EN"uri="www.w3.org/Math/DTD/mathml2/iso9573-13/isomscr.ent"/><public publicId="-//W3C//ENTITIES General Technical for MathML 2.0//EN"uri="www.w3.org/Math/DTD/mathml2/iso9573-13/isotech.ent"/><public publicId="-//W3C//ENTITIES Aliases for MathML 2.0//EN"uri="www.w3.org/Math/DTD/mathml2/mathml/mmlalias.ent"/><public publicId="-//W3C//ENTITIES Extra for MathML 2.0//EN"uri="www.w3.org/Math/DTD/mathml2/mathml/mmlextra.ent"/><public publicId="-//W3C//ENTITIES MathML 2.0 Qualified Names 1.0//EN"uri="www.w3.org/Math/DTD/mathml2/mathml2-qname-1.mod"/></catalog>