<?xml version="1.0" encoding="UTF-8"?>
<!--
  sample-catalog.xml: a small, well-formed XML document.
  Free to use for testing and teaching. From 99helpers.com/file-types/xml
  1. The line above is the XML declaration. If present, it must be the
     very first thing in the file: not even a space or comment before it.
-->
<!-- 2. A processing instruction: a note for a particular application.
     Programs that don't recognise the target ("sample-app") ignore it. -->
<?sample-app mode="test"?>
<!-- 3. The root element. Every XML document has exactly one.
     xmlns sets the default namespace; xmlns:dc adds a second one
     with the prefix dc. xml:lang gives the language of the content. -->
<catalog xmlns="urn:99helpers:samples:catalog"
         xmlns:dc="http://purl.org/dc/elements/1.1/"
         version="1.0" xml:lang="en">

  <!-- 4. Elements from the Dublin Core namespace, marked by the dc: prefix -->
  <dc:title>Sample book catalogue</dc:title>
  <dc:creator>99helpers sample files</dc:creator>
  <dc:date>2026-10-27</dc:date>

  <!-- 5. Attributes hold short values. Their order has no meaning and
       each name may appear only once per element. -->
  <book id="b001" available="true">
    <title>Learning to Read Markup</title>
    <author>Ada Example</author>
    <price currency="EUR">12.50</price>
    <published>2026-03-14</published>
    <!-- 6. Repeated child elements are XML's way of writing a list -->
    <tags>
      <tag>xml</tag>
      <tag>beginners</tag>
    </tags>
  </book>

  <book id="b002" available="false">
    <!-- 7. Reserved characters as entity references: &amp; and &lt; -->
    <title>Tags &amp; Trees: Why &lt;b&gt; Isn't Bold Here</title>
    <author>Ben Example</author>
    <!-- 8. A character reference: &#x20AC; is the euro sign -->
    <price currency="EUR" display="&#x20AC;24.95">24.95</price>
    <published>2025-11-02</published>
    <!-- 9. Mixed content: text and elements side by side -->
    <summary>A guide to <em>well-formed</em> documents and <em>valid</em> ones.</summary>
    <!-- 10. CDATA: everything up to the closing marker is plain text,
         so < and & need no escaping inside it -->
    <example><![CDATA[if (a < b && b > c) { return "<ok>"; }]]></example>
    <!-- 11. An empty element, written as a self-closing tag -->
    <cover/>
  </book>

  <!-- 12. xml:lang on one element overrides the language for its content -->
  <book id="b003" available="true" xml:lang="nl">
    <title>Een boek over gegevens</title>
    <author>Cleo Voorbeeld</author>
    <price currency="EUR">9.99</price>
    <published>2024-06-30</published>
  </book>
</catalog>
