<!ELEMENT schema  (#PCDATA )>
<!ATTLIST schema  e-dtype NMTOKEN  #FIXED 'string' >

<!ELEMENT schemaversion  (#PCDATA )>
<!ATTLIST schemaversion  e-dtype NMTOKEN  #FIXED 'string' >

<!ELEMENT manifestref EMPTY>
<!ATTLIST manifestref  identifierref IDREF  #REQUIRED >

<!ELEMENT file  EMPTY>
<!ATTLIST file  href CDATA  #REQUIRED >

<!ELEMENT resource  (metadata? | file+ )*>
<!ATTLIST resource  identifier ID     #REQUIRED
                    type       CDATA  #REQUIRED
                    href       CDATA  #IMPLIED >
<!ELEMENT resources  (resource* | manifestref* )*>

<!ELEMENT item  (item* )*>
<!ATTLIST item  identifier    ID        #REQUIRED
                identifierref IDREF     #IMPLIED
                title         CDATA     #IMPLIED
                isvisible     CDATA     #IMPLIED
                parameters    CDATA     #IMPLIED
                a-dtype       NMTOKENS  'isvisible boolean' >
<!ELEMENT tableofcontents  (item* )>
<!ATTLIST tableofcontents  identifier ID     #REQUIRED
                           title      CDATA  #IMPLIED >

<!ELEMENT organizations  (tableofcontents* )>
<!ATTLIST organizations default IDREF  #IMPLIED >

<!ELEMENT metadata  (schema? , schemaversion?)>

<!ELEMENT manifest  (metadata? , organizations , resources , manifest* )>
<!ATTLIST manifest  identifier ID     #REQUIRED
                    version    CDATA  #IMPLIED>
