I'm currently writing metainfo for GUI and non-GUI applications.
For that, I'm extensively studying the official metainfo documentation, but its unspecific to ambiguous in many places, to put it mildly (optionality, multiplicity of tags, ordering, …; in fact, the doc is using <tag/> to define tags that actually have content <tag>foobar</tag> and those that' don't, <tag prop="foobar"/>, alike).
Since I'm planning adhere to a format that will probably be rejected by a parser if validation fails, I'd like to have the DTD that parser uses. This is XML, after all, and I'm pretty certain the developers chose XML exactly because it comes with a schema specification language.
I can't find that schema, however. I tried finding my way through the source code of appstream-generator and appstream-cli, but I had no success.
With IMSoP's hint I started looking into the appstream source code. Turns out:
Appstream used to have an XSD. They deleted it, because they didn't maintain it for four years and it fell out of sync with the documentation.
I cannot applaud that decision, though I find it understandable, given that maintaining a schema takes time, and duplicating the effort of a parseable schema in a separate validating CLI tool simply eats time.