<?xml version="1.0" encoding="utf-8"?>
<!-- ============================================================= -->
<!-- MODULE:    Mulberry Technologies Tag Library Model Dump DTD   -->
<!-- VERSION:   1.4                                                -->
<!-- DATE:      May 30, 2007                                       -->
<!-- ============================================================= -->

<!-- =============================================================
     Formal Public Identifier:
"-//Mulberry//DTD Mulberry Technologies Tag Library Model Dump XML DTD v1.4 20070530//EN"
     ============================================================= -->

<!-- ============================================================= -->
<!-- SYSTEM:    Mulberry Tag Library 2                             -->
<!--                                                               -->
<!-- PURPOSE:   XXXX                                               -->
<!--                                                               -->
<!-- CONTAINS:  1) Internal parameter entities for                 -->
<!--               simplification and maintenance                  -->
<!--            2) Calls to external special characters entities   -->
<!--               and the table model                             -->
<!--            3) Notation, element, and attribute declarations   -->
<!--               for elements except those contained in the      -->
<!--               table model                                     -->
<!--                                                               -->
<!-- MODULES REQUIRED:                                             -->
<!--            1) W3C "DTD for XML Schemas: Part 1: Structures"   -->
<!--                                                               -->
<!-- CREATED FOR:                                                  -->
<!--            Mulberry Technologies, Inc.                        -->
<!--                                                               -->
<!-- ORIGINAL CREATION DATE:                                       -->
<!--            December 2000                                      -->
<!--                                                               -->
<!-- CREATED BY:                                                   -->
<!--            Mulberry Technologies, Inc. (TKG)                  -->
<!--            17 West Jefferson Street, Suite 207                -->
<!--            Rockville, MD  20850  USA                          -->
<!--            Phone:  +1 301-315-9631                            -->
<!--            Fax:    +1 301-315-8285                            -->
<!--            e-mail: info@mulberrytech.com                      -->
<!--            WWW:    http://www.mulberrytech.com                -->
<!-- ============================================================= -->



<!-- ============================================================= -->
<!--                   DESIGN CONSIDERATIONS                       -->
<!-- ============================================================= -->

<!-- ============================================================= -->
<!--                   CHANGE HISTORY                              -->
<!-- ============================================================= -->

<!-- Change
       4        Added @sortAs or @mtl:sortAs attributes, as
                appropriate, so sort order doesn't depend on how
                a processor feels about sorting '.', '-', and ':',
                etc.
                (TKG)                                 20070530

       3        Added attribute "fixed" to parameter entity
                %attributeAttrs; to accommodate fixed attributes 
                in tag libraries for Mulberry's clients
                (TRG)                                 20050110

       2        Added attribute value "default" to "xml:space"
                attribute to keep RXP happy

       1        Added element mtl:attributeAllValues to store the
                set of declared values of an attribute for a given
                element.  It will be used only within an
                xsd:documentation element (which has a content model
                that permits ANY).

                Needed by mkskel.xsl to allow the generation of
                tables of attribute values valid for a given element
                or set of elements.  The content of the element is
                used as part of a key used to create a node-set of
                elements sharing attribute name/use/default value
                tuples.
                (PMR)                                 20020305     -->

<!-- ============================================================= -->
<!--                    GENERAL ENTITIES                           -->
<!-- ============================================================= -->

<!ENTITY amp            "&#38;#38;"                                  >
<!ENTITY percnt         "&#37;"                                      >
<!ENTITY lt             "&#38;#60;"                                  >
<!ENTITY gt             ">"                                          >
<!ENTITY rdquo          "&#x201D;"                                   >
<!ENTITY ldquo          "&#x201C;"                                   >


<!-- ============================================================= -->
<!--                    INTERNAL PARAMETER ENTITIES                -->
<!-- ============================================================= -->

<!--                    W3C XML SCHEMA NAMESPACE PREFIX            -->
<!ENTITY % p           "xsd:"                                        >


<!--                    W3C XML SCHEMA NAMESPACE PREFIX DECLARATION
                                                                   -->
<!ENTITY % s           ":xsd"                                        >


<!--                    ADDITIONAL ATTRIBUTES FOR SCHEMA ELEMENT   -->
<!ENTITY % schemaAttrs  "xmlns:mtl  CDATA #FIXED
                        'http://www.mulberrytech.com/taglib'"        >


<!--                    ADDITIONAL ATTRIBUTES FOR ELEMENT ELEMENT  -->
<!ENTITY % elementAttrs "mtl:sortAs CDATA                  #IMPLIED" >


<!--                    ADDITIONAL ATTRIBUTES FOR ATTRIBUTE ELEMENT
                                                                   -->
<!ENTITY % attributeAttrs
                       "mtl:sgmlType
                                 (NAME | NAMES | NUMBER | NUMBERS |
                                  NUTOKEN | NUTOKENS)      #IMPLIED
                        fixed    CDATA                     #IMPLIED
                        mtl:sortAs 
                                 CDATA                     #IMPLIED" >


<!-- ============================================================= -->
<!--                    EXTERNAL PARAMETER ENTITIES                -->
<!-- ============================================================= -->


<!--                    W3C XML SCHEMA DTD                         -->
<!ENTITY % XMLSchema.dtd PUBLIC
"-//W3C//DTD XMLSCHEMA 200010//EN"
"XMLSchema.dtd"                                                      >
%XMLSchema.dtd;


<!-- ============================================================= -->
<!--                    XML SCHEMA APPINFO AND DOCUMENTATION       -->
<!-- ============================================================= -->
<!--                    The declarations that would be used if it
                        were possible to replace or override the
                        declarations in XMLSchema.dtd.  Since these
                        declarations can't be used, they are enclosed
                        in an 'IGNORE' conditional marked section. -->

<![IGNORE[

<!--                    APPINFO                                    -->
<!ELEMENT  %appinfo;    (mtl:id?, 
                          (mtl:attribute* | mtl:parameterEntity* |
                           mtl:complexType))                         >
<!ATTLIST  %appinfo;
             source     %URIref;                           #IMPLIED
             id         ID                                 #IMPLIED
             %appinfoAttrs;                                          >


<!--                    DOCUMENTATION                              -->
<!ELEMENT  %documentation;
                        (mtl:name?, mtl:description?)                >
<!ATTLIST  %documentation;
             source     %URIref;                           #IMPLIED
             id         ID                                 #IMPLIED
             xml:lang   CDATA                              #IMPLIED
             %documentationAttrs;                                    >

]]>

<!-- ============================================================= -->
<!--                    MODEL DUMP ELEMENTS                        -->
<!-- ============================================================= -->

<!--                    ID                                         -->
<!--                    The mtl:id element is to be used instead 
                        of an id attribute on appinfo.             -->
<!ELEMENT mtl:id        EMPTY                                        >
<!ATTLIST mtl:id
            value       CDATA                              #IMPLIED  >
            
            
<!--                    NAME                                       -->
<!ELEMENT  mtl:name     (#PCDATA)                                    >


<!--                    DEFINITION                                 -->
<!ELEMENT  mtl:definition
                        (#PCDATA)                                    >


<!--                    TAG LIBRARY COMPLEX TYPE                   -->
<!--                    Similar to W3C XML Schema complexType
                        element, but allows references to
                        parameter entity elements                  -->
<!ELEMENT  mtl:complexType
                        ((%annotation;)?,
                         (mtl:complexType | mtl:and | mtl:any |
                          mtl:parameterEntity | mtl:sequence |
                          mtl:choice | mtl:exception | mtl:pcdata |
                          mtl:inclusion | mtl:exclusion |
                          xsd:element)*)                             >
<!ATTLIST  mtl:complexType
             name       %NCName;                           #IMPLIED
             id         ID                                 #IMPLIED
             abstract   %boolean;                          'false'
             final      %complexDerivationSet;             #IMPLIED
             block      %complexDerivationSet;             ''
             mixed      (true|false)                       'false'
             sgmlType   (cdata | rcdata)                   #IMPLIED  >


<!--                    TAG LIBRARY SEQUENCE                       -->
<!ELEMENT  mtl:sequence (mtl:sequence | mtl:choice | mtl:and |
                         xsd:element | mtl:parameterEntity |
                         mtl:pcdata)*                                >
<!ATTLIST  mtl:sequence
             minOccurs  %nonNegativeInteger;               '1'
             maxOccurs  CDATA                              '1'
             id         ID                                 #IMPLIED
             %sequenceAttrs;                                         >


<!--                    TAG LIBRARY CHOICE                         -->
<!ELEMENT  mtl:choice   (mtl:sequence | mtl:choice | mtl:and |
                         xsd:element | mtl:parameterEntity |
                         mtl:pcdata)*                                >
<!ATTLIST  mtl:choice
             minOccurs  %nonNegativeInteger;               '1'
             maxOccurs  CDATA                              '1'
             id         ID                                 #IMPLIED
             %choiceAttrs;                                           >


<!--                    CONTENT MODEL GROUP WITH AND CONNECTOR     -->
<!ELEMENT  mtl:and      (mtl:sequence | mtl:choice | xsd:element |
                         mtl:parameterEntity | mtl:pcdata)*          >
<!ATTLIST  mtl:and
             minOccurs  %nonNegativeInteger;               '1'
             maxOccurs  CDATA                              '1'
             id         ID                                 #IMPLIED
             %choiceAttrs;                                           >


<!--                    "ANY" DECLARED CONTENT                     -->
<!ELEMENT  mtl:any      EMPTY                                        >


<!--                    PCDATA                                     -->
<!ELEMENT  mtl:pcdata   EMPTY                                        >


<!--                    ATTRIBUTE MODEL DUMP                       -->
<!ELEMENT  mtl:attribute
                        (mtl:name?, mtl:definition?)                 >
<!ATTLIST  mtl:attribute
             name       %NCName;                           #IMPLIED
             ref        %QName;                            #IMPLIED
             fixed      CDATA                              #IMPLIED  >


<!--                    ATTRIBUTE ALL VALUES                       -->
<!ELEMENT  mtl:attributeAllValues
                        (#PCDATA)                                    >


<!--                    PARAMETER ENTITY MODEL DUMP                -->
<!ELEMENT  mtl:parameterEntity
                        (mtl:name?, mtl:definition?,
                         mtl:contentModel?, mtl:contentModelNoParm?,
                         mtl:verbatimDeclaration?,
                         mtl:moduleDefined?)                         >
<!ATTLIST  mtl:parameterEntity
             minOccurs  %nonNegativeInteger;               '1'
             maxOccurs  CDATA                              '1'
             name       %NCName;                           #IMPLIED
             sortAs     CDATA                              #IMPLIED
             ref        %QName;                            #IMPLIED
             fixed      CDATA                              #IMPLIED  >


<!--                    EXCEPTION                                  -->
<!ELEMENT  mtl:exception
                        (mtl:parameterEntity | xsd:element)+         >


<!--                    INCLUSION                                  -->
<!ELEMENT  mtl:inclusion
                        (xsd:element+)                               >


<!--                    EXCLUSION                                  -->
<!ELEMENT  mtl:exclusion
                        (xsd:element+)                               >


<!--                    VERBATIM DECLARATION                       -->
<!ELEMENT  mtl:verbatimDeclaration
                        (#PCDATA)                                    >
<!ATTLIST  mtl:verbatimDeclaration
             xml:space  (preserve | default)              "preserve" >

<!--                    CONTENT MODEL                              -->
<!ELEMENT  mtl:contentModel
                        (#PCDATA)                                    >


<!--                    CONTENT MODEL WITH PARAMETER ENTITIES
                        RESOLVED                                   -->
<!ELEMENT  mtl:contentModelNoParm
                        (#PCDATA)                                    >


<!--                    MODULE DEFINED                             -->
<!ELEMENT  mtl:moduleDefined
                        (#PCDATA)                                    >


<!-- ================== END OF TAG LIBRARY MODEL DUMP DTD ======== -->
