<!--
This dtd was developed initally for the poems of Robert Burns.
it was designed to carry just a part of the e-text, as most
 browsers are very slow to render the whole book.
The fragment can be introduced as an entity into a fuller
DTD

-->
<!ENTITY % stdatts 
"ref   IDREF  #IMPLIED
 id    ID     #IMPLIED
 type  CDATA  #IMPLIED
 role  CDATA  #IMPLIED
 class CDATA  #IMPLIED"
>

<!ELEMENT poemsfrag (meta*,acknowledge?,toc*,(poem|simplesect|para)*,endmeta*)>

<!--The table of contents is included as a convienience for 
the fragment. Usually it is at the beginning of the entire e-text
-->

<!ELEMENT toc (item|title)*>
<!ATTLIST toc
  %stdatts;
>
<!ELEMENT item 	(#PCDATA|title)*>
<!ATTLIST item
  %stdatts;
>

<!--This is the poem element. This works for Burns poems. 
May have to add more granularity for other poets. For now 
use the 'note type="" element if additional elements are required
-->

<!ELEMENT poem (prenote*,title?,(author|prose|subtitle|tune|note|footnote|verse)*)>

<!ELEMENT prenote	(#PCDATA)>
<!ATTLIST prenote
  %stdatts;
>

<!ELEMENT title	(#PCDATA)>
<!ATTLIST title
  %stdatts;
>
<!ELEMENT subtitle (#PCDATA)>
<!ATTLIST subtitle
  %stdatts;
>
<!ELEMENT tune (#PCDATA)>
<!ATTLIST tune
  %stdatts;
>
<!ELEMENT note (#PCDATA)>
<!ATTLIST note
  %stdatts;
>
<!ELEMENT author (#PCDATA)>
<!ATTLIST author
  %stdatts;
>
<!ELEMENT prose (#PCDATA)>
<!ATTLIST prose
  %stdatts;
>


<!ELEMENT footnote (#PCDATA)>
<!ATTLIST footnote
  %stdatts;
>
<!ELEMENT verse (line)*>
<!ATTLIST verse
  %stdatts;
>

<!ELEMENT line (#PCDATA)>
<!ATTLIST line
  %stdatts;
>

<!--simplesect and para elements are not required for burns poems. 
They are added to make it easier to port this dtd to 
other poem collections. For now the can be used for 
comments etc. between poems.-->

<!--validity constraint. Only one title per section-->
<!ELEMENT simplesect (#PCDATA|title|para|item)*>
<!ATTLIST simplesect
  %stdatts;
>
<!--validity constraint. Only one title per para-->
<!ELEMENT para (#PCDATA|title)*>
<!ATTLIST para
  %stdatts;
>

<!ELEMENT acknowledge (#PCDATA)>
<!ATTLIST acknowledge
  %stdatts;
>



<!--the meta tags are here to provide a means for comment 
at either the very beginning or end of the document-->
<!ELEMENT meta EMPTY>
<!ATTLIST meta
   content  CDATA  #REQUIRED
   id       ID     #IMPLIED
>

<!ELEMENT endmeta EMPTY >
<!ATTLIST endmeta
   content  CDATA  #REQUIRED
   id       ID     #IMPLIED
>
