Line Code
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110
<?xml version="1.0" encoding="UTF-8"?>

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="http://www.phys.ufl.edu/cms/emu/dqm" targetNamespace="http://www.phys.ufl.edu/cms/emu/dqm" elementFormDefault="qualified">

  <xs:element name="Booking">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="Definition" type="DefinitionType" minOccurs="0" maxOccurs="unbounded"/>
        <xs:element name="Histogram" type="HistogramType" minOccurs="0" maxOccurs="unbounded"/>
      </xs:sequence>
    </xs:complexType>
    <xs:unique name="UniqueHistogramName">
      <xs:selector xpath="Histogram/Name"/>
        <xs:field xpath="."/>
    </xs:unique>
  </xs:element>
  
  <xs:complexType name="DefinitionType">
    <xs:complexContent>
      <xs:extension base="BaseHistogramType">
        <xs:attribute name="id" type="xs:ID" use="required"/>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  
  <xs:complexType name="NameType">
    <xs:simpleContent>
      <xs:extension base="xs:string">
        <xs:attribute name="from" type="xs:integer" use="optional"/>
        <xs:attribute name="to" type="xs:integer" use="optional"/>
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:complexType name="HistogramType">
    <xs:complexContent>
      <xs:extension base="BaseHistogramType">
        <xs:sequence>
          <xs:element name="Name" type="NameType"/>
        </xs:sequence>
        <xs:attribute name="ref" type="xs:IDREF" use="optional"/>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  
  <xs:complexType name="BaseHistogramType">
    <xs:sequence>
      <xs:element name="Descr" type="xs:string" minOccurs="0"/>
      <xs:element name="Folder" type="xs:string" minOccurs="0"/>
      <xs:element name="LabelsOption" type="xs:string" minOccurs="0"/>
      <xs:element name="Prefix" minOccurs="0">
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:enumeration value="CSC"/>
            <xs:enumeration value="DDU"/>
            <xs:enumeration value="EMU"/>
	    <xs:enumeration value="FED"/>
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element name="SetErrorOption" type="xs:string" minOccurs="0"/>
      <xs:element name="SetGridx" type="xs:integer" minOccurs="0"/>
      <xs:element name="SetGridy" type="xs:integer" minOccurs="0"/>
      <xs:element name="SetLabelSizeX" type="xs:double" minOccurs="0"/>
      <xs:element name="SetLabelSizeY" type="xs:double" minOccurs="0"/>
      <xs:element name="SetLabelSizeZ" type="xs:double" minOccurs="0"/>
      <xs:element name="SetLeftMargin" type="xs:double" minOccurs="0"/>
      <xs:element name="SetLogx" type="xs:integer" minOccurs="0"/>
      <xs:element name="SetLogy" type="xs:integer" minOccurs="0"/>
      <xs:element name="SetLogz" type="xs:integer" minOccurs="0"/>
      <xs:element name="SetMaximum" type="xs:double" minOccurs="0"/>
      <xs:element name="SetMinimum" type="xs:integer" minOccurs="0"/>
      <xs:element name="SetNdivisionsX" type="xs:integer" minOccurs="0"/>
      <xs:element name="SetNdivisionsY" type="xs:integer" minOccurs="0"/>
      <xs:element name="SetOption" type="xs:string" minOccurs="0"/>
      <xs:element name="SetOptStat" type="xs:string" minOccurs="0"/>
      <xs:element name="SetRightMargin" type="xs:double" minOccurs="0"/>
      <xs:element name="SetStats" minOccurs="0">
        <xs:simpleType>
          <xs:restriction base="xs:byte">
            <xs:enumeration value="0"/>
            <xs:enumeration value="1"/>
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element name="SetTitleOffset" type="xs:string" minOccurs="0"/>
      <xs:element name="SetXLabels" type="xs:string" minOccurs="0"/>
      <xs:element name="SetYLabels" type="xs:string" minOccurs="0"/>
      <xs:element name="Title" type="xs:string" minOccurs="0"/>
      <xs:element name="Type" minOccurs="0">
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:enumeration value="h1"/>
            <xs:enumeration value="h2"/>
            <xs:enumeration value="hp"/>
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element name="XBins" type="xs:integer" minOccurs="0"/>
      <xs:element name="XMax" type="xs:integer" minOccurs="0"/>
      <xs:element name="XMin" type="xs:integer" minOccurs="0"/>
      <xs:element name="XTitle" type="xs:string" minOccurs="0"/>
      <xs:element name="YBins" type="xs:integer" minOccurs="0"/>
      <xs:element name="YMax" type="xs:integer" minOccurs="0"/>
      <xs:element name="YMin" type="xs:integer" minOccurs="0"/>
      <xs:element name="YTitle" type="xs:string" minOccurs="0"/>
    </xs:sequence>
  </xs:complexType>
  
</xs:schema>