<!--
       '$RCSfile: eml-entity.dtd,v $'
       Copyright: 2000 Regents of the University of California and the
                  National Center for Ecological Analysis and Synthesis
     For Details: http://knb.ecoinformatics.org/

        '$Author: higgins $'
          '$Date: 2001-10-19 21:24:30 $'
      '$Revision: 1.10 $'

    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation; either version 2 of the License, or
    (at your option) any later version.

    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
-->
<!-- EML DTD document that defines the structural
     characteristics of every entity in a dataset. -->



<!ELEMENT table-entity (identifier+, entityName, entityDescription?,
                       temporalCov*, geographicCov*, taxonomicCov*, 
                        orientation?, caseSensitive?, numberOfRecords?)>

<!-- <!ELEMENT other-entity (%EntityBase;, entityType)>  
ELEMENT commented out due to inability of DTD parser to handle multiple root nodes
-->

<!-- fields for EntityBase -->
<!ELEMENT identifier (#PCDATA)>

<!ELEMENT entityName (#PCDATA) >
<!ELEMENT entityDescription (#PCDATA) >

<!-- fields for table-entity -->
<!ELEMENT orientation EMPTY >
<!ATTLIST orientation columnorrow (columnmajor|rowmajor) #REQUIRED>
<!ELEMENT caseSensitive EMPTY >
<!ATTLIST caseSensitive yesorno (no|yes) #REQUIRED>
<!ELEMENT numberOfRecords (#PCDATA)>

<!-- fields for other-entity 
<!ELEMENT entityType (#PCDATA)>   
-->

<!ELEMENT geographicCov (descgeog, bounding, dsgpoly*)>
<!ELEMENT temporalCov (sngdate | mdattim | rngdates)>
<!ELEMENT taxonomicCov (keywtax+, taxonsys?, taxongen?, taxoncl)>
<!ELEMENT begdate (#PCDATA)>
<!ELEMENT beggeol (geolage)>
<!ELEMENT begtime (#PCDATA)>
<!ELEMENT citeinfo (#PCDATA)>
<!ELEMENT enddate (#PCDATA)>
<!ELEMENT endgeol (geolage)>
<!ELEMENT endtime (#PCDATA)>
<!ELEMENT geolage (geolscal, geolest, geolun?, geolexpl?, geolcit*)>
<!ELEMENT gring (#PCDATA)>
<!ELEMENT grngpoin (gringlat, gringlon)>
<!ELEMENT mdattim (sngdate+)>
<!ELEMENT rngdates ((begdate, begtime?, enddate, endtime?) | (beggeol, endgeol))>
<!ELEMENT sngdate ((caldate, time?) | geolage)>
<!ELEMENT taxoncl (taxonrn?, taxonrv?, common*, taxoncl*)>
<!ELEMENT descgeog (#PCDATA)>
<!ELEMENT bounding (westbc, eastbc, northbc, southbc, boundalt?)>
<!ELEMENT dsgpoly (dsgpolyo, dsgpolyx*)>
<!ELEMENT geolscal (#PCDATA)>
<!ELEMENT geolest (#PCDATA)>
<!ELEMENT geolun (#PCDATA)>
<!ELEMENT geolexpl (#PCDATA)>
<!ELEMENT geolcit (citeinfo)>
<!ELEMENT gringlat (#PCDATA)>
<!ELEMENT gringlon (#PCDATA)>
<!ELEMENT caldate (#PCDATA)>
<!ELEMENT time (#PCDATA)>
<!ELEMENT taxonrn (#PCDATA)>
<!ELEMENT taxonrv (#PCDATA)>
<!ELEMENT common (#PCDATA)>
<!ELEMENT keywtax (taxonkt, taxonkey+)>
<!ELEMENT taxonsys (classsys+, idref*, ider+, taxonpro, taxoncom?, vouchers*)>
<!ELEMENT taxongen (#PCDATA)>
<!ELEMENT westbc (#PCDATA)>
<!ELEMENT eastbc (#PCDATA)>
<!ELEMENT northbc (#PCDATA)>
<!ELEMENT southbc (#PCDATA)>
<!ELEMENT boundalt (altmin, almax, altunits)>
<!ELEMENT dsgpolyo (grngpoin+ | gring)>
<!ELEMENT dsgpolyx (grngpoin+ | gring)>
<!ELEMENT taxonkt (#PCDATA)>
<!ELEMENT taxonkey (#PCDATA)>
<!ELEMENT classsys (classcit, classmod?)>
<!ELEMENT idref (citeinfo)>
<!ELEMENT ider (cntinfo)>
<!ELEMENT taxonpro (#PCDATA)>
<!ELEMENT taxoncom (#PCDATA)>
<!ELEMENT vouchers (specimen, reposit)>
<!ELEMENT altmin (#PCDATA)>
<!ELEMENT almax (#PCDATA)>
<!ELEMENT altunits (#PCDATA)>
<!ELEMENT classcit (citeinfo)>
<!ELEMENT classmod (#PCDATA)>
<!ELEMENT cntinfo (#PCDATA)>
<!ELEMENT specimen (#PCDATA)>
<!ELEMENT reposit (cntinfo)>

<!-- End of file -->