\<!\--DTD for EPIC Profile Data \--\>

\<!\-- ? = optional, not repeatable \--\>

\<!\-- + = required and repeatable \--\>

\<!\-- \* = optional and repeatable \--\>

\<!ELEMENT epicxml(domain, varlist?, fileset+, attribute\*, comment\*)\>

\<!ATTLIST epicxml version CDATA #REQUIRED

type (profile \| time-series \| grid \| other) #REQUIRED

URI CDATA #IMPLIED

lexicon CDATA #IMPLIED\>

\<!\-- domain for epicxml must consist of location="north", "south",
"east", "west", "top", "bottom", "start", and "end" for latitude,
longitude, vertical, and time, respectively \--\>

\<!ELEMENT domain(latitude+, longitude+, vertical+, (time \| date)+,
attribute\*, comment\*)\>

\<!ELEMENT deltat (#PCDATA)\>

\<!ATTLIST deltat units CDATA #IMPLIED \"minutes\"\> \<!\-- acceptable
units are seconds, minutes, hours, days, unacceptable units include
months, years \--\>

\<!ELEMENT time (#PCDATA)\>

\<!ATTLIST time location (start \| end \| point) #REQUIRED "point"

units CDATA #IMPLIED \>

\<!ELEMENT date EMPTY\>

\<!ATTLIST date location (start \| end \| point) #REQUIRED "point"

year CDATA #REQUIRED

month CDATA #REQUIRED

day CDATA #REQUIRED

hour CDATA #IMPLIED

min CDATA #IMPLIED

secs CDATA #IMPLIED\>

\<!ELEMENT latitude (#PCDATA)\>

\<!ATTLIST latitude location (north \| south \| start \| end \| point)
#REQUIRED "point"

units (degrees_north \| degrees_south) #IMPLIED "degrees_north"\>

\<!ELEMENT longitude (#PCDATA)\>

\<!ATTLIST longitude location (east \| west \| start \| end \| point)
#REQUIRED "point"

units (degrees_east \| degrees_west) #IMPLIED "degrees_east"\>

\<!ELEMENT vertical (#PCDATA)\>

\<!ATTLIST vertical location (top \| bottom \| start \| end \| point)
#REQUIRED "point"

units CDATA #REQUIRED

positive CDATA \"down\"\>

\<!ELEMENT varlist ((variable \| variableref)+, attribute\*,
comment\*)\>

\<!ATTLIST varlist lexicon CDATA #IMPLIED\>

\<!ELEMENT variable (attribute\*, comment\*)\>

\<!ATTLIST variable name ID #REQUIRED

units CDATA #REQUIRED

description CDATA #IMPLIED

lexicon CDATA #IMPLIED\>

\<!ELEMENT variableref EMPTY\>

\<!ATTLIST variableref refname IDREF #REQUIRED\>

\<!ELEMENT fileset (varlist?, station\*, grid\*, track\*, attribute\*,
comment\*)\>

\<!ATTLIST fileset id CDATA #REQUIRED

URI CDATA #IMPLIED\>

\<!\-- time should have location="start", "end" for time series, "point"
for profile,

vertical should have location="top", "bottom" for profile, "point" for
time series,

latitude and longitude should have location="point" \--\>

\<!ELEMENT station (varlist?, (time \| date)+, latitude, longitude,
vertical+, deltat?, stationvalues\*, attribute\*, comment\*)\>

\<!ATTLIST station id CDATA #REQUIRED

cast CDATA #IMPLIED

URI CDATA #IMPLIED

bottom CDATA #IMPLIED

reference CDATA #REQUIRED\>

\<!\-- domain for grid must consist of location="north", "south",
"east", "west", "top", "bottom", "start", and "end" for latitude,
longitude, vertical, and time, respectively \--\>

\<!ELEMENT grid (varlist?, domain, attribute\*, comment\*)\>

\<!ATTLIST grid id CDATA #REQUIRED

> URI CDATA #IMPLIED
>
> reference CDATA #REQUIRED\>

\<!\-- domain for track must consits of location="start" and
location="end" for the latitude, longitude, vertical, and time elements
\--\>

\<!ELEMENT track (varlist?, domain, attribute\*, comment\*)\>

\<!ATTLIST track id CDATA #REQUIRED

> URI CDATA #IMPLIED
>
> reference CDATA #REQUIRED\>

\<!ELEMENT stationvalue (attribute\*, comment\*)\>

\<!ATTLIST stationvalue cast CDATA #REQUIRED

name CDATA #REQUIRED

units CDATA #REQUIRED

method CDATA #IMPLIED

lexicon CDATA #IMPLIED

value CDATA #REQUIRED\>

\<!ELEMENT attribute EMPTY\>

\<!ATTLIST attribute name CDATA #REQUIRED

value CDATA #REQUIRED\>

\<!ELEMENT comment (#PCDATA)\>