<!-- PlotML DTD. Author: Edward A. Lee, eal@eecs.berkeley.edu. -->
<!-- Version: $Id$ -->
<!ELEMENT plot (
	barGraph |
	bin |
	dataset |
	default |
	noColor |
	noGrid |
	title |
	wrap |
	xLabel |
	xLog |
	xRange |
	xTicks |
	yLabel |
	yLog |
	yRange |
	yTicks)*>

  <!ELEMENT barGraph EMPTY>
    <!-- NOTE: If only one of these is specified, then the other is ignored. -->
    <!ATTLIST barGraph width CDATA #IMPLIED>
    <!ATTLIST barGraph offset CDATA #IMPLIED>
  <!ELEMENT bin EMPTY>
    <!-- NOTE: If only one of these is specified, then the other is ignored. -->
    <!ATTLIST bin width CDATA #IMPLIED>
    <!ATTLIST bin offset CDATA #IMPLIED>
  <!ELEMENT dataset (m | move | p | point)*>
    <!ATTLIST dataset connected (yes | no) #IMPLIED>
    <!ATTLIST dataset marks (none | dots | points | various) #IMPLIED>
    <!ATTLIST dataset name CDATA #IMPLIED>
    <!ATTLIST dataset stems (yes | no) #IMPLIED>
  <!ELEMENT default EMPTY>
    <!ATTLIST default connected (yes | no) "yes">
    <!ATTLIST default marks (none | dots | points | various) "none">
    <!ATTLIST default stems (yes | no) "no">
  <!ELEMENT noColor EMPTY>
  <!ELEMENT noGrid EMPTY>
  <!ELEMENT reuseDatasets EMPTY>
  <!ELEMENT title (#PCDATA)>
  <!ELEMENT wrap EMPTY>
  <!ELEMENT xLabel (#PCDATA)>
  <!ELEMENT xLog EMPTY>
  <!ELEMENT xRange EMPTY>
    <!ATTLIST xRange min CDATA #REQUIRED>
    <!ATTLIST xRange max CDATA #REQUIRED>
  <!ELEMENT xTicks (tick)+>
  <!ELEMENT yLabel (#PCDATA)>
  <!ELEMENT yLog EMPTY>
  <!ELEMENT yRange EMPTY>
    <!ATTLIST yRange min CDATA #REQUIRED>
    <!ATTLIST yRange max CDATA #REQUIRED>
  <!ELEMENT yTicks (tick)+>

    <!ELEMENT tick EMPTY>
      <!ATTLIST tick label CDATA #REQUIRED>
      <!ATTLIST tick position CDATA #REQUIRED>

    <!ELEMENT m EMPTY>
      <!ATTLIST m x CDATA #IMPLIED>
      <!ATTLIST m y CDATA #REQUIRED>
      <!ATTLIST m lowErrorBar CDATA #IMPLIED>
      <!ATTLIST m highErrorBar CDATA #IMPLIED>

    <!ELEMENT move EMPTY>
      <!ATTLIST move x CDATA #IMPLIED>
      <!ATTLIST move y CDATA #REQUIRED>
      <!ATTLIST move lowErrorBar CDATA #IMPLIED>
      <!ATTLIST move highErrorBar CDATA #IMPLIED>

    <!ELEMENT p EMPTY>
      <!ATTLIST p x CDATA #IMPLIED>
      <!ATTLIST p y CDATA #REQUIRED>
      <!ATTLIST p lowErrorBar CDATA #IMPLIED>
      <!ATTLIST p highErrorBar CDATA #IMPLIED>

    <!ELEMENT point EMPTY>
      <!ATTLIST point x CDATA #IMPLIED>
      <!ATTLIST point y CDATA #REQUIRED>
      <!ATTLIST point lowErrorBar CDATA #IMPLIED>
      <!ATTLIST point highErrorBar CDATA #IMPLIED>
