<?xml version="1.0" encoding="UTF-8"?>

<!ENTITY % DistUnit "feetdecimal|feetinches|meters|yards">
<!ENTITY % HUnit "feetdecimal|feetinches|meters">
<!ENTITY % VUnit "feetdecimal|feetinches|meters">
<!ENTITY % AzUnit "degrees|grads">
<!ENTITY % IncUnit "degrees|grads|percent">

<!ENTITY % LocationAtts "
  station IDREF #IMPLIED
  easting CDATA #IMPLIED
  northing CDATA #IMPLIED
  elevation CDATA #IMPLIED
  hunit (%HUnit;) #IMPLIED
  vunit (%VUnit;) #IMPLIED"
>

<!ELEMENT Default ANY>
<!ATTLIST Default
  element CDATA #REQUIRED
  subtype CDATA #IMPLIED
>

<!-- This list contains all the attributes of all the other Elements -->
<!ATTLIST Default
  source CDATA #IMPLIED
  description CDATA #IMPLIED
  reliablity (ok|suspect|error) #IMPLIED
  date CDATA #IMPLIED
  sourcedata CDATA #IMPLIED
  converter CDATA #IMPLIED
  version CDATA #IMPLIED
  programversion CDATA #IMPLIED
  format CDATA #IMPLIED
  type (CDATA|comment) #IMPLIED
  name CDATA #IMPLIED
  nameset IDREF #IMPLIED
  prefix CDATA #IMPLIED
  generatedname (true|false) #IMPLIED
  %LocationAtts;
  from IDREF #IMPLIED
  to IDREF #IMPLIED
  value CDATA #IMPLIED
  reversed (true|false) #IMPLIED
  inverted (true|false) #IMPLIED
  unit (%AzUnit;|%IncUnit;|%DistUnit;) #IMPLIED
  orientation (CDATA | N | NNE |NE|ENE|E|ESE|SE|SSE|S|SSW|SW|WSW|W|WNW|NW|NNW) #IMPLIED
  shot IDREFS #IMPLIED
  station IDREF #IMPLIED
  position (from|to) #IMPLIED
  left CDATA #IMPLIED
  right CDATA #IMPLIED
  up CDATA #IMPLIED
  down CDATA #IMPLIED
  text CDATA #IMPLIED
  program CDATA #IMPLIED
  process ( raw | unclosed | closed ) #IMPLIED
  treesignificant (true|false) #IMPLIED
  processdetail CDATA #IMPLIED
>


<!ELEMENT ProvenanceSource ANY>
<!ATTLIST ProvenanceSource
  source CDATA #IMPLIED
  recipient CDATA #IMPLIED
  signature CDATA #IMPLIED
  description CDATA #IMPLIED
  date CDATA #IMPLIED
  reliablity (ok|suspect|error) 'ok'
  ID ID #IMPLIED
  reference IDREF #IMPLIED
>

<!ELEMENT ProvenanceImport ANY>
<!ATTLIST ProvenanceImport
  sourcedata CDATA #IMPLIED
  converter CDATA #IMPLIED
  version CDATA #IMPLIED
  programversion CDATA #IMPLIED
  program CDATA #IMPLIED
  processdetail CDATA #IMPLIED
  format CDATA #IMPLIED
  date CDATA #IMPLIED
  ID ID #IMPLIED
  reference IDREF #IMPLIED
>

<!ELEMENT Processed ANY>
<!ATTLIST Processed
  program CDATA #IMPLIED
  version CDATA #IMPLIED
  process ( raw | unclosed | closed ) 'raw'
  processdetail CDATA #IMPLIED
  date CDATA #IMPLIED
  treesignificant (true|false) "false"
  ID ID #IMPLIED
  reference IDREF #IMPLIED
>

<!--  original xlink:href #IMPLIED -->

<!ELEMENT Foreign ANY>
<!ATTLIST Foreign
  format CDATA #IMPLIED
  import IDREF #IMPLIED
  sequence CDATA #IMPLIED
>

<!ELEMENT Text ANY>
<!ATTLIST Text
  type (CDATA|comment) "comment"
  text CDATA #IMPLIED
>

<!ELEMENT Station ANY>
<!ATTLIST Station
  name CDATA "noname"
  prefix CDATA "STA"
  ID ID #IMPLIED
  generatedname (true|false) "false"
  nameset IDREF #IMPLIED
  reference IDREF #IMPLIED
>
<!-- should only allow prefixes that are valid prefixes of IDs -->

<!ELEMENT NameSet ANY>
<!ATTLIST NameSet
  program CDATA #IMPLIED
  name CDATA #IMPLIED
  ID ID #IMPLIED
>

<!ELEMENT Equivalent ANY>
<!ATTLIST Equivalent
  station IDREF #IMPLIED
>

<!ELEMENT Location ANY>
<!ATTLIST Location
  %LocationAtts;
>

<!ELEMENT Shot ANY>
<!ATTLIST Shot
  ID ID #IMPLIED
  from IDREF #IMPLIED
  to IDREF #IMPLIED
>

<!ELEMENT Azimuth ANY>
<!ATTLIST Azimuth
  subtype (for|back|combined|unspecified) #IMPLIED
  value CDATA #REQUIRED
  reversed (true|false) #IMPLIED
  inverted (true|false) #IMPLIED
  unit (%AzUnit;) "degrees"
>

<!ELEMENT Inclination ANY>
<!ATTLIST Inclination
  subtype (for|back|combined|unspecified) #IMPLIED
  value CDATA #REQUIRED
  reversed (true|false) #IMPLIED
  inverted (true|false) #IMPLIED
  unit (%IncUnit;) "degrees"
>

<!ELEMENT Distance ANY>
<!ATTLIST Distance
  value CDATA #REQUIRED
  unit (%DistUnit;) #IMPLIED
>

<!ELEMENT TreeRoot EMPTY>
<!ATTLIST TreeRoot
  station IDREF #IMPLIED
>

<!ATTLIST Section
  orientation (CDATA|N|NNE|NE|ENE|E|ESE|SE|SSE|S|SSW|SW|WSW|W|WNW|NW|NNW) #IMPLIED
  shot IDREFS #IMPLIED
  station IDREF #IMPLIED
  position (from|to) #IMPLIED
  unit (%DistUnit;) #IMPLIED
  left CDATA #IMPLIED
  right CDATA #IMPLIED
  up CDATA #IMPLIED
  cieling CDATA #IMPLIED
  down CDATA #IMPLIED
>

<!ELEMENT CaveSurvey ANY>
<!ATTLIST TreeRoot
  date CDATA #IMPLIED
>


