  <!ELEMENT docs (application|function|agi|manager|managerEvent|info|configInfo)*>
  <!ATTLIST docs xmlns:xi CDATA #FIXED "http://www.w3.org/2001/XInclude">

  <!ELEMENT xi:include (xi:fallback?) >
  <!ATTLIST xi:include
  xmlns:xi	CDATA       #FIXED    "http://www.w3.org/2001/XInclude"
  href		CDATA       #IMPLIED
  parse		(xml|text)  "xml"
  xpointer	CDATA       #IMPLIED
  encoding	CDATA       #IMPLIED
  accept	CDATA       #IMPLIED
  accept-language CDATA  #IMPLIED >

  <!ELEMENT application (synopsis?,syntax?,description?,see-also?)>
  <!ATTLIST application name CDATA #REQUIRED>
  <!ATTLIST application language CDATA #REQUIRED>
  <!ATTLIST application module CDATA #IMPLIED>

  <!ELEMENT function (synopsis?,syntax?,description?,see-also?)>
  <!ATTLIST function name CDATA #REQUIRED>
  <!ATTLIST function language CDATA #REQUIRED>
  <!ATTLIST function module CDATA #IMPLIED>

  <!ELEMENT agi (synopsis?,syntax?,description?,see-also?)>
  <!ATTLIST agi name CDATA #REQUIRED>
  <!ATTLIST agi language CDATA #REQUIRED>
  <!ATTLIST agi module CDATA #IMPLIED>

  <!ELEMENT manager (synopsis?,syntax?,description?,see-also?,responses?)>
  <!ATTLIST manager name CDATA #REQUIRED>
  <!ATTLIST manager language CDATA #REQUIRED>
  <!ATTLIST manager module CDATA #IMPLIED>

  <!ELEMENT responses (list-elements?,(managerEvent|xi:include))>

  <!ELEMENT list-elements (managerEvent+|xi:include+)>

  <!ELEMENT managerEvent (managerEventInstance+)>
  <!ATTLIST managerEvent name CDATA #REQUIRED>
  <!ATTLIST managerEvent language CDATA #REQUIRED>
  <!ATTLIST managerEvent module CDATA #IMPLIED>

  <!ELEMENT managerEventInstance (synopsis?,syntax?,description?,see-also?)*>
  <!ATTLIST managerEventInstance class CDATA #REQUIRED>

  <!ELEMENT configInfo (synopsis?,description?,configFile+)>
  <!ATTLIST configInfo name CDATA #REQUIRED>
  <!ATTLIST configInfo language CDATA #REQUIRED>

  <!ELEMENT configFile (configObject+)>
  <!ATTLIST configFile name CDATA #REQUIRED>

  <!ELEMENT configObject (synopsis?|description?|syntax?|see-also?|configOption)*>
  <!ATTLIST configObject name CDATA #REQUIRED>

  <!ELEMENT configOption (synopsis,description?,syntax?,see-also?)*>
  <!ATTLIST configOption name CDATA #REQUIRED>
  <!ATTLIST configOption regex (yes|no|true|false) "false">
  <!ATTLIST configOption default CDATA #IMPLIED>
  <!ATTLIST configOption type CDATA #IMPLIED>

  <!ELEMENT matchInfo (category|field?)>

  <!ELEMENT category (#PCDATA)>
  <!ATTLIST category match (yes|no|true|false) #REQUIRED>

  <!ELEMENT field (#PCDATA)>
  <!ATTLIST field name CDATA #REQUIRED>

  <!ELEMENT info (para|example|note|warning|variablelist|enumlist|info|xi:include)*>
  <!ATTLIST info name CDATA #REQUIRED>
  <!ATTLIST info language CDATA #REQUIRED>
  <!ATTLIST info tech CDATA #REQUIRED>

  <!ELEMENT see-also (ref|xi:include)*>

  <!ELEMENT ref (#PCDATA)>
  <!ATTLIST ref type (application|function|astcli|link|manpage|filename|agi|manager|managerEvent|configOption) #REQUIRED>
  <!ATTLIST ref module CDATA #IMPLIED>

  <!ELEMENT synopsis (#PCDATA)>

  <!ELEMENT syntax (parameter|dataType|category|matchInfo|xi:include|channel_snapshot|bridge_snapshot)*>
  <!ATTLIST syntax argsep CDATA ",">

  <!ELEMENT channel_snapshot (#PCDATA)>
  <!ATTLIST channel_snapshot prefix CDATA "">

  <!ELEMENT bridge_snapshot (#PCDATA)>
  <!ATTLIST bridge_snapshot prefix CDATA "">

  <!ELEMENT configOptionToEnum (configOption|xi:include)*>
  <!ATTLIST configOptionToEnum prefix CDATA "">

  <!ELEMENT description (para|note|warning|variablelist|enumlist|info|example|xi:include)*>

  <!ELEMENT parameter (optionlist|enumlist|argument|para|note|warning|parameter|info|xi:include)*>
  <!ATTLIST parameter name CDATA "">
  <!ATTLIST parameter required (yes|no|true|false) "false">
  <!ATTLIST parameter multiple (yes|no|true|false) "false">
  <!ATTLIST parameter hasparams (yes|no|true|false|optional) "false">
  <!ATTLIST parameter literal (yes|no|true|false) "false">
  <!ATTLIST parameter default CDATA "">
  <!ATTLIST parameter argsep CDATA ",">

  <!ELEMENT optionlist (option+)>
  <!ELEMENT option (argument|para|note|warning|variablelist|enumlist|info|xi:include)*>
  <!ATTLIST option name CDATA #REQUIRED>
  <!ATTLIST option argsep CDATA ",">
  <!ATTLIST option implies CDATA "">
  <!ATTLIST option hasparams CDATA "">

  <!ELEMENT enumlist (configOptionToEnum|enum)+>
  <!ELEMENT enum (para|note|warning|parameter|enumlist|info|xi:include)*>
  <!ATTLIST enum name CDATA "">

  <!ELEMENT argument (para|note|warning|variablelist|argument|info|xi:include)*>
  <!ATTLIST argument name CDATA #REQUIRED>
  <!ATTLIST argument multiple (yes|no|true|false) "false">
  <!ATTLIST argument required (yes|no|true|false) "false">
  <!ATTLIST argument hasparams (yes|no|true|false|optional) "false">
  <!ATTLIST argument argsep CDATA ",">

  <!ELEMENT para (#PCDATA|astcli|literal|emphasis|filename|directory|replaceable|variable|xi:include)*>
  <!ELEMENT literal (#PCDATA)>
  <!ELEMENT emphasis (#PCDATA)>
  <!ELEMENT filename (#PCDATA)>
  <!ELEMENT replaceable (#PCDATA)>
  <!ELEMENT directory (#PCDATA)>
  <!ELEMENT astcli (#PCDATA)>

  <!ELEMENT example (#PCDATA|xi:include)*>
  <!ATTLIST example title CDATA "">
  <!ATTLIST example language CDATA "" >

  <!ELEMENT note (para+|xi:include*)>
  <!ELEMENT warning (para+|xi:include*)>

  <!ELEMENT variablelist (variable+|xi:include*)>
  <!ELEMENT variable (#PCDATA|value|para|info|xi:include)*>
  <!ATTLIST variable name CDATA "">

  <!ELEMENT value (#PCDATA)>
  <!ATTLIST value name CDATA #REQUIRED>
  <!ATTLIST value default CDATA "">
