<?xml version='1.0' encoding='utf-8'?>
<!--                    custom node attribute list                 -->
<!--                    redefine this entity in the in-line DTD of
                        the XML file to declare the attributes     -->
<!ENTITY % trxml.attributes
                       ""                                            >

<!--                    trees                                      -->
<!--                    the root element                           -->
<!ELEMENT  trees        (info?,types,nd+)                            >

<!--                    info                                       -->
<!--                    meta-info                                  -->
<!ELEMENT  info         (meta+)                                      >
<!--                    meta                                       -->
<!ELEMENT  meta         EMPTY                                        >
<!ATTLIST  meta
             name       CDATA                              #REQUIRED
             content    CDATA                              #REQUIRED  >

<!--                    types                                      -->
<!--                    attribute types declaration                -->
<!ELEMENT  types        (t*)                                         >
<!--         full       all attributes are defined here, no parsing
                        of custom DTD is needed                    -->
<!ATTLIST  types
             full       (0|1)                              "0"       >

<!--                    t                                          -->
<!--                    attribute type                             -->
<!ELEMENT  t            EMPTY                                        >
<!--         n          name
             v          value list
             d          default-value
             m          allow multiple values                      -->
<!ATTLIST  t
             n          CDATA                              #REQUIRED
             v          CDATA                              #IMPLIED
             d          CDATA                              #IMPLIED
             m          (0|1)                              "1"       >


<!--                    nd                                         -->
<!--                    node                                       -->
<!ELEMENT  nd           (nd|e)*                                      >

<!--         id         id
             n          ordinal number
             h          node is to be hidden                       -->
<!ATTLIST  nd
             id         ID                                 #IMPLIED
             n          NMTOKEN                            #IMPLIED
             %trxml.attributes;
             h          (0|1)                              "0"       >

             
<!--                    e                                          -->
<!--                    general XML element wrapper                -->
<!ELEMENT  e            (att?,(PCDATA|e|pi|c)*)                     >
<!--         n          element tag
             ns         element namespace                          -->
<!ATTLIST  e
             n          CDATA                              #REQUIRED>

<!--                    att                                        -->
<!--                    general element attrubute list             -->
<!ELEMENT  att          (a)+                                         >
<!--                    a                                          -->
<!--                    general element attribute                  -->
<!ELEMENT  a            (PCDATA)                                    >
<!--         n          attribute name                             -->
<!ATTLIST  a
             n          CDATA                              #REQUIRED >
<!--                    pi                                         -->
<!--                    general processing instruction             -->
<!ELEMENT  pi           (PCDATA)                                    >
<!--         n          processing instruction name                -->
<!ATTLIST  pi
             n          CDATA                              #REQUIRED >
<!--                    c                                          -->
<!--                    general XML comment                        -->
<!ELEMENT  c            (PCDATA)                                    >
