<xml-template>
  <hosts>
    <host name="localhost">
      <basedir>/home/xml-template</basedir>
      <domain>.localdomain</domain>
    </host>
    <host name="localhost.localdomain">
      <basedir>/home/xml-template</basedir>
      <domain>localhost.localdomain</domain>
    </host>
  </hosts>

  <subroutines>
    <subroutine name="defined">
      <description>Whether a value is defined.</description>
      <module>XML::Template::Util</module>
    </subroutine>
    <subroutine name="encrypt">
      <description>Encrypt a string.</description>
      <module>XML::Template::Util</module>
    </subroutine>

    <subroutine name="push">
      <description>Push onto an array.</description>
      <module>XML::Template::Element::Var</module>
    </subroutine>
    <subroutine name="pop">
      <description>Pop off an array.</description>
      <module>XML::Template::Element::Var</module>
    </subroutine>
    <subroutine name="unshift">
      <description>Unshift onto an array.</description>
      <module>XML::Template::Element::Var</module>
    </subroutine>
    <subroutine name="shift">
      <description>Shift off an array.</description>
      <module>XML::Template::Element::Var</module>
    </subroutine>
    <subroutine name="join">
      <description>Join an array.</description>
      <module>XML::Template::Element::Var</module>
    </subroutine>
    <subroutine name="split">
      <description>Split an array.</description>
      <module>XML::Template::Element::Var</module>
    </subroutine>
    <subroutine name="length">
      <description>Return number of elements in an array.</description>
      <module>XML::Template::Element::Var</module>
    </subroutine>

    <subroutine name="upload">
      <description>Uploads a file from a CGI form.</description>
      <module>XML::Template::Element::Form</module>
    </subroutine>
  </subroutines>

  <namespaces>
    <namespace name="http://syrme.net/xml-template/core/v1">
      <prefix>core</prefix>
      <title>Core</title>
      <description>Core XML::Template elements.</description>
      <module>XML::Template::Element::Core</module>
    </namespace>
    <namespace name="http://syrme.net/xml-template/form/v1">
      <prefix>form</prefix>
      <title>Form</title>
      <description>Enhanced form elements.</description>
      <module>XML::Template::Element::Form</module>
    </namespace>
    <namespace name="http://syrme.net/xml-template/exception/v1">
      <prefix>exception</prefix>
      <title>Exception</title>
      <description>Exception handling elements.</description>
      <module>XML::Template::Element::Exception</module>
    </namespace>
    <namespace name="http://syrme.net/xml-template/condition/v1">
      <prefix>condition</prefix>
      <title>Condition</title>
      <description>Handles conditionals.</description>
      <module>XML::Template::Element::Condition</module>
      <element name="if">
        <attrib name="cond">
          <parser>XML::Template::Parser::Cond</parser>
        </attrib>
      </element>
      <element name="elseif">
        <nestedin>if</nestedin>
        <attrib name="cond">
          <parser>XML::Template::Parser::Cond</parser>
        </attrib>
      </element>
      <element name="else">
        <nestedin>if</nestedin>
      </element>
    </namespace>
    <namespace name="http://syrme.net/xml-template/foreach/v1">
      <prefix>foreach</prefix>
      <title>Foreach</title>
      <description>Handles iteration through array variables.</description>
      <module>XML::Template::Element::Foreach</module>
    </namespace>
    <namespace name="http://syrme.net/xml-template/var/v1">
      <prefix>var</prefix>
      <title>Var</title>
      <description>Handles persistent variables.</description>
      <module>XML::Template::Element::Var</module>
    </namespace>
    <namespace name="http://syrme.net/xml-template/email/v1">
      <prefix>email</prefix>
      <title>Email</title>
      <description>Handles email operations.</description>
      <module>XML::Template::Element::Email</module>
    </namespace>
    <namespace name="http://syrme.net/xml-template/file/v1">
      <prefix>file</prefix>
      <title>File</title>
      <description>Handles file operations.</description>
      <module>XML::Template::Element::File</module>
    </namespace>
    <namespace name="http://syrme.net/xml-template/block/v1">
      <prefix>block</prefix>
      <title>Blocks</title>
      <description>Handles loading and displaying of blocks.</description>
      <module>XML::Template::Element::Block</module>
    </namespace>
    <namespace name="http://syrme.net/xml-template/item/v1">
      <prefix>item</prefix>
      <title>Items</title>
      <description>Handles item operations.</description>
      <module>XML::Template::Element::DB</module>
    </namespace>
    <namespace name="http://syrme.net/xml-template/type/v1">
      <prefix>type</prefix>
      <title>Types</title>
      <description>Item type descriptions.</description>
      <module>XML::Template::Element::DB</module>
    </namespace>
    <namespace name="http://syrme.net/xml-template/group/v1">
      <prefix>group</prefix>
      <title>Groups</title>
      <description>Handle group operations.</description>
      <module>XML::Template::Element::DB</module>
    </namespace>
    <namespace name="http://syrme.net/xml-template/multimedia/v1">
      <prefix>multimedia</prefix>
      <title>Multimedia</title>
      <description>Handles multimedia operations.</description>
      <module>XML::Template::Element::DB</module>
      <uploadpath>../images</uploadpath>
    </namespace>
    <namespace name="http://syrme.net/xml-template/user/v1">
      <prefix>user</prefix>
      <title>User</title>
      <description>Handles user operations.</description>
      <module>XML::Template::Element::User</module>
    </namespace>
  </namespaces>
</xml-template>
