<!-- HTML elements allowed in <desc> sections -->

<!ENTITY % xhtml-spec SYSTEM "/usr/share/sgml/W3C/dtd/XHTML_1.0_Strict">
%xhtml-spec;
<!ENTITY % html-els "a">

<!-- LFDB ELEMENTS -->

<!ELEMENT database    ((themes|persons|issues|articles)*)>
  <!ELEMENT themes      (theme+)>
    <!ELEMENT theme       (title+, desc?, img?)>
    <!-- both title and img are inherited from XHTML -->
  <!ELEMENT persons     (person+)>
    <!ELEMENT person      ((name|email)*,(homepage|nickname|desc|team)*)>
      <!ELEMENT email       (#PCDATA)>
      <!ELEMENT name        (#PCDATA)>
      <!ELEMENT homepage    (#PCDATA)>
      <!ELEMENT nickname    (#PCDATA)>
      <!ELEMENT desc        (#PCDATA|%html-els;)*>
      <!ELEMENT team        EMPTY>
  <!ELEMENT issues      (issue+)>
    <!ELEMENT issue       (title+, current?, published?, file*)>
      <!ELEMENT current     EMPTY>
      <!ELEMENT published   EMPTY>
      <!ELEMENT file        (#PCDATA)>
  <!ELEMENT articles    (article+)>
    <!ELEMENT article     (title+, (file|personref|abstract|issueref|themeref|nometa|nohtml|translation|proofread)*)>
      <!ELEMENT abstract    (#PCDATA)>
      <!ELEMENT nohtml      EMPTY>
      <!ELEMENT nometa      EMPTY>
      <!ELEMENT translation (personref*, (reserved|finished|proofread)*)>
        <!ELEMENT reserved    (#PCDATA)>
        <!ELEMENT finished    (#PCDATA)>
        <!ELEMENT proofread   (personref*, (reserved|finished)*)>

<!-- references to elements -->
<!ELEMENT themeref    EMPTY>  
<!ATTLIST themeref    href          IDREF         #REQUIRED>
<!ELEMENT issueref    EMPTY>
<!ATTLIST issueref    href          IDREF         #REQUIRED>
<!ELEMENT personref   EMPTY>
<!ATTLIST personref   href          IDREF         #REQUIRED>

<!ATTLIST database    xml:lang      NMTOKEN       #REQUIRED>
<!ATTLIST theme       id            ID            #REQUIRED>
<!ATTLIST title       xml:lang      NMTOKEN       #REQUIRED>
<!ATTLIST abstract    xml:lang      NMTOKEN       #REQUIRED>
<!ATTLIST img         src           CDATA         #REQUIRED>
<!ATTLIST person      id            ID            #REQUIRED
                      status        (non-active|active|idle)   
                                                  "non-active">
<!ATTLIST nometa      xml:lang      NMTOKEN       #REQUIRED>
<!ATTLIST nohtml      xml:lang      NMTOKEN       #REQUIRED>
<!ATTLIST desc        xml:lang      NMTOKEN       #REQUIRED>
<!ATTLIST team        xml:lang      NMTOKEN       #REQUIRED>
<!ATTLIST issue       id            ID            #REQUIRED
                      code          CDATA         #IMPLIED>
<!ATTLIST article     id            ID            #REQUIRED
                      xml:lang      NMTOKEN       #IMPLIED
                      type          (article|coverpage)
                                                  "article"
                      next          IDREF         #IMPLIED
                      prev          IDREF         #IMPLIED>
<!ATTLIST file        xml:lang      NMTOKEN       #REQUIRED
                      type          (target|meta) "target">
<!ATTLIST translation from          NMTOKEN       #REQUIRED
                      to            NMTOKEN       #REQUIRED>

