<?xml version="1.0" encoding="UTF-8"?>
<coupon>

<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">

 <xsd:simpleType name="dollars">
  <xsd:restriction base="xsd:decimal">
   <xsd:fractionDigits value="2" />
   <xsd:minInclusive value="0" />
  </xsd:restriction>
 </xsd:simpleType>


 <xsd:element name="location">
  <xsd:simpleType>
   <xsd:restriction base="xsd:string">
    <xsd:enumeration value="FREDS" />
    <xsd:enumeration value="CHITO" />
    <xsd:enumeration value="LITTL" />
   </xsd:restriction>
  </xsd:simpleType>
 </xsd:element>

 <xsd:element name="coupon">
  <xsd:complexType>
   <xsd:sequence>
    <xsd:element name="serial-number" type="xsd:string" />
    <xsd:element name="valid-at">
     <xsd:complexType>
      <xsd:sequence maxOccurs="unbounded">
       <xsd:element ref="location" />
      </xsd:sequence>
     </xsd:complexType>
    </xsd:element>
    <xsd:element name="deal" maxOccurs="unbounded">
     <xsd:complexType>
      <xsd:sequence minOccurs="0" maxOccurs="unbounded">
       <xsd:element ref="location" />

       <xsd:element name="value" minOccurs="1" maxOccurs="1">
        <xsd:annotation>
         <xsd:appinfo>Occurs exactly one time</xsd:appinfo>
         <xsd:documentation>Each deal may have only one value.</xsd:documentation>
        </xsd:annotation>

        <xsd:simpleType>
         <xsd:restriction base="dollars">
          <xsd:maxInclusive value="50" />
         </xsd:restriction>
        </xsd:simpleType>
       </xsd:element>

       <xsd:element name="requirement">
        <xsd:annotation>
         <xsd:appinfo>Usage of requirement</xsd:appinfo>
         <xsd:documentation>Multiple requirements are treated as a meet any
relationship. All attributes within one requirement must be met at the same
time. A coupon is valid if all attributes within any one requirement are met.</xsd:documentation>
        </xsd:annotation>
        <xsd:complexType>

         <xsd:attribute name="dollars" use="optional" type="dollars" />

         <xsd:attribute name="guests" use="optional">
          <xsd:simpleType>
           <xsd:restriction base="xsd:integer">
            <xsd:minInclusive value="0" />
           </xsd:restriction>
          </xsd:simpleType>
         </xsd:attribute>
        </xsd:complexType>
       </xsd:element>

      </xsd:sequence>
     </xsd:complexType>
    </xsd:element>

    <xsd:element name="body">
     <xsd:complexType>
      <xsd:sequence minOccurs="0" maxOccurs="unbounded">

       <xsd:element name="text">
        <xsd:complexType>
         <xsd:simpleContent>
          <xsd:extension base="xsd:string">

           <xsd:attribute name="type">
            <xsd:simpleType>
             <xsd:restriction base="xsd:string">
              <xsd:enumeration value="header" />
              <xsd:enumeration value="regular" />
             </xsd:restriction>
            </xsd:simpleType>
           </xsd:attribute>
          </xsd:extension>
         </xsd:simpleContent>
        </xsd:complexType>
       </xsd:element>
      </xsd:sequence>
     </xsd:complexType>
    </xsd:element>

    <xsd:element name="terms">
     <xsd:complexType>
      <xsd:sequence minOccurs="0" maxOccurs="unbounded">
       <xsd:element name="boiler" maxOccurs="unbounded">
        <xsd:complexType>
         <xsd:attribute name="code" type="xsd:string" />
        </xsd:complexType>
       </xsd:element>

       <xsd:element name="text" type="xsd:string" />
      </xsd:sequence>
     </xsd:complexType>
    </xsd:element>

   </xsd:sequence>
  </xsd:complexType>
 </xsd:element>

</xsd:schema>

 <serial-number>1234567890</serial-number>
 <valid-at>
  <location>FREDS</location>
  <location>LITTL</location>
 </valid-at>
 <deal>
  <location>FREDS</location>
  <value>5.00</value>
  <requirement guests="8" dollars="75.00" />
 </deal>
 <deal>
  <location>LITTL</location>
  <value>7.00</value>
  <requirement guests="8" dollars="75.00" />
 </deal>
 <body>
  <text type="header">
   Save $5 at your next party at Fred's, or $7 off your next party at Little Italy!
  </text>
  <text type="regular">
   You will receive $5 off your check at Fred's Restaurant, or $7 off your check at Little Italy, when you bring a party of eight or more to visit and purchase at least $75 worth of food and drink.
  </text>
 </body>
 <terms>
  <boiler code="LIMIT1" />
  <boiler code="NOCOMBINE" />
  <boiler code="GRATUITY8" />
  <text>
   Coupon may not be applied toward price of alcoholic beverages.
  </text>
 </terms>
</coupon>

