<p>I believe I need a DTD to define the schema and an XSLT if I want to display it in a browser and have it look "pretty". But I'm not sure what else I would need to have a well-defined XML document that can be queried using XQuery and displayed in a web browser.</p>

Strictly speaking, you need nothing. XML, even without a schema definition, works.
A schema definition (in XSD, RelaxNG or DTD) helps various tools that work with the XML, because they can verify that the structure of the XML conforms to what you want.
An XSLT translation to HTML is nice if the XML contains information you'll want to look at with a browser. It's far from necessary, though.
To query the XML with XPath or XQuery, you need an XPath or XQuery processor.