<?xml version="1.0" encoding="UTF-8"?>
<!--
     This dtd describes the basic data structures used by admst transforms
     You can try using xmllint: xmllint myadmstscript.xml -noout -postvalid -noblanks
--> 
<!--
  $Id: admst.dtd 505 2007-01-23 11:17:43Z r29173 $
-->
<!--
  $Log$
  Revision 1.4  2005/09/14 15:41:31  r29173
  renamed admst:templates to admst:template (same for apply-template)

  Revision 1.3  2005/08/18 10:45:23  r29173
  renamed admst:choice to admst:choose (admst:choice tolerated)

  Revision 1.2  2005/03/31 18:12:00  r29173
  migration to adms-2.x.x: converted to adms2 syntax

  Revision 1.6  2005/03/22 11:30:18  r29173
  migration to adms-2.x.x: clean-up xml constructs

  Revision 1.5  2005/03/17 08:26:28  r29173
  migration to adms-2.x.x: move all href from absolute to relative values

  Revision 1.4  2005/02/25 12:49:35  r29173
  migration to adms-2.x.x: renamed admst transforms

-->

<!ENTITY % anyadmst '#PCDATA|admst:warning|admst:count|admst:choose|admst:copy|admst:getenv|admst:setenv|admst:open|admst:templates|admst:template|admst:if-inside|admst:differentiate|admst:push|admst:reverse|admst:value-of|admst:new|admst:for-each|admst:reset|admst:if|admst:assert|admst:text|admst:apply-template|admst:apply-templates|admst:join|admst:message|admst:error|admst:value-to'>

<!ELEMENT admst (%anyadmst;)*>
<!ATTLIST admst version CDATA #REQUIRED>
<!ATTLIST admst xmlns:admst CDATA #REQUIRED>
<!ATTLIST admst xmlns:m CDATA #IMPLIED>

<!ELEMENT admst:count EMPTY>
<!ATTLIST admst:count select CDATA #REQUIRED>

<!ELEMENT admst:choose (admst:when+,admst:otherwise?)>
<!ELEMENT admst:when (%anyadmst;)*>
<!ATTLIST admst:when test CDATA #REQUIRED>
<!ELEMENT admst:otherwise (%anyadmst;)*>

<!ELEMENT admst:open (%anyadmst;)*>
<!ATTLIST admst:open file CDATA #REQUIRED>

<!ELEMENT admst:copy EMPTY>
<!ATTLIST admst:copy from CDATA #REQUIRED>
<!ATTLIST admst:copy to CDATA #REQUIRED>

<!ELEMENT admst:getenv EMPTY>
<!ATTLIST admst:getenv name CDATA #REQUIRED>

<!ELEMENT admst:setenv EMPTY>
<!ATTLIST admst:setenv name CDATA #REQUIRED>
<!ATTLIST admst:setenv value CDATA #REQUIRED>

<!ELEMENT admst:error EMPTY>
<!ATTLIST admst:error format CDATA #IMPLIED>
<!ELEMENT admst:warning EMPTY>
<!ATTLIST admst:warning format CDATA #IMPLIED>
<!ELEMENT admst:message EMPTY>
<!ATTLIST admst:message format CDATA #IMPLIED>

<!ELEMENT admst:reset EMPTY>
<!ATTLIST admst:reset select CDATA #REQUIRED>

<!ELEMENT admst:for-each (%anyadmst;)*>
<!ATTLIST admst:for-each select CDATA #REQUIRED>

<!ELEMENT admst:templates (%anyadmst;)*>
<!ATTLIST admst:templates mode CDATA #IMPLIED>
<!ATTLIST admst:templates match CDATA #IMPLIED>
<!ELEMENT admst:template (%anyadmst;)*>
<!ATTLIST admst:template mode CDATA #IMPLIED>
<!ATTLIST admst:template match CDATA #IMPLIED>

<!ELEMENT admst:new (%anyadmst;)*>
<!ATTLIST admst:new datatype CDATA #IMPLIED>
<!ATTLIST admst:new arguments CDATA #IMPLIED>

<!ELEMENT admst:if (%anyadmst;)*>
<!ATTLIST admst:if test CDATA #IMPLIED>

<!ELEMENT admst:push EMPTY>
<!ATTLIST admst:push onduplicate CDATA #IMPLIED>
<!ATTLIST admst:push into CDATA #IMPLIED>
<!ATTLIST admst:push select CDATA #REQUIRED>

<!ELEMENT admst:value-to EMPTY>
<!ATTLIST admst:value-to select CDATA #REQUIRED>
<!ATTLIST admst:value-to value CDATA #IMPLIED>

<!ELEMENT admst:differentiate EMPTY>
<!ATTLIST admst:differentiate select CDATA #REQUIRED>
<!ATTLIST admst:differentiate probe CDATA #IMPLIED>

<!ELEMENT admst:apply-template EMPTY>
<!ATTLIST admst:apply-template select CDATA #REQUIRED>
<!ATTLIST admst:apply-template required (yes|no) "yes">
<!ATTLIST admst:apply-template match CDATA #IMPLIED>
<!ELEMENT admst:apply-templates EMPTY>
<!ATTLIST admst:apply-templates select CDATA #REQUIRED>
<!ATTLIST admst:apply-templates required (yes|no) "yes">
<!ATTLIST admst:apply-templates match CDATA #IMPLIED>

<!ELEMENT admst:text EMPTY>
<!ATTLIST admst:text format CDATA #IMPLIED>

<!ELEMENT admst:value-of EMPTY>
<!ATTLIST admst:value-of select CDATA #REQUIRED>

<!ELEMENT admst:reverse EMPTY>
<!ATTLIST admst:reverse select CDATA #REQUIRED>

<!ELEMENT admst:if-inside (%anyadmst;)*>
<!ATTLIST admst:if-inside test CDATA #IMPLIED>
<!ATTLIST admst:if-inside list CDATA #IMPLIED>

<!ELEMENT admst:assert EMPTY>
<!ATTLIST admst:assert test CDATA #IMPLIED>
<!ATTLIST admst:assert format CDATA #IMPLIED>

<!ELEMENT admst:join (%anyadmst;)*>
<!ATTLIST admst:join select CDATA #REQUIRED>
<!ATTLIST admst:join separator CDATA #IMPLIED>

