<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>

[{'answer_id': 64869, 'author': 'Sebastian Redl', 'author_id': 8922, 'author_profile': 'https://Stackoverflow.com/users/8922', 'pm_score': 2, 'selected': False, 'text': "<p>Strictly speaking, you need nothing. XML, even without a schema definition, works.</p>\n\n<p>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.</p>\n\n<p>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.</p>\n\n<p>To query the XML with XPath or XQuery, you need an XPath or XQuery processor.</p>\n"}, {'answer_id': 64942, 'author': 'Jorge Ferreira', 'author_id': 6508, 'author_profile': 'https://Stackoverflow.com/users/6508', 'pm_score': 2, 'selected': True, 'text': '<p>For a XML document to be queryable using XQquery you do not have to define a DTD or XSD. The purpose of DTD or XSD is to define the strict structure of a XML document and to allow validation before usage.</p>\n\n<p>Modern browsers interpret XML files very nicely and show a DOM tree. If enhanced formatting of XML for browser display is necessary you have to create a XSLT transformation file and then add a directive to the original XML document pointing to the XSLT file. The browser picks that directive and uses the built-in XSLT processor to obtain the output that is then interpreted by the browser.</p>\n\n<p><strong>info.xml</strong></p>\n\n<pre><code>&lt;?xml version="1.0" encoding="iso-8859-1"?&gt;\n&lt;?xml-stylesheet type="text/xsl" href="info.xslt"?&gt;\n&lt;info&gt;\n    &lt;appName&gt;My App&lt;/appName&gt;\n    &lt;version&gt;1.0.129&lt;/version&gt;\n    &lt;buildTime&gt;10-09-2008 12:44:03&lt;/buildTime&gt;\n&lt;/info&gt;\n</code></pre>\n\n<p><strong>info.xslt</strong></p>\n\n<pre><code>&lt;?xml version="1.0" encoding="iso-8859-1"?&gt;\n&lt;xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"&gt;\n    &lt;xsl:template match="/"&gt;\n        &lt;html&gt;\n            &lt;head&gt;\n                &lt;title&gt;Application&lt;/title&gt;\n                &lt;style type="text/css"&gt;\n                    body { font-family: Lucida Console; }\n                    #outer { text-align: left; }\n                    #name {\n                        font-weight: bold;\n                        font-size: 1.2em;\n                    }\n                    #logo {\n                        float: left;\n                        padding-right: 20px;\n                        padding-bottom: 200px;\n                    }\n                &lt;/style&gt;\n            &lt;/head&gt;\n            &lt;body&gt;\n                &lt;xsl:apply-templates select="info" /&gt;\n            &lt;/body&gt;\n        &lt;/html&gt;\n    &lt;/xsl:template&gt;\n\n    &lt;xsl:template match="info"&gt;\n        &lt;img id="logo" src="image.png" /&gt;\n        &lt;div id="outer"&gt;\n            &lt;div id="name"&gt;\n                &lt;xsl:value-of select="appName"/&gt;\n            &lt;/div&gt;\n            &lt;div id="version"&gt;\n                &lt;xsl:value-of select="version"/&gt;\n            &lt;/div&gt;\n            &lt;div id="date"&gt;\n                &lt;xsl:value-of select="buildTime"/&gt;\n            &lt;/div&gt;\n        &lt;/div&gt;\n    &lt;/xsl:template&gt;\n&lt;/xsl:stylesheet&gt;\n</code></pre>\n'}]
['https://Stackoverflow.com/questions/64841', 'https://Stackoverflow.com', 'https://Stackoverflow.com/users/572/']