Schema for XML Voucher: Generic Voucher Language
http://www.ietf.org/internet-drafts/draft-ietf-trade-voucher-lang-05.txt
URI: urn:ietf:params:xml:schema:vts-lang
See also: http://xml.coverpages.org/xmlVoucher.html

Date: 2003-05-14.



<?xml version="1.0"?>
<schema
  targetNamespace="urn:ietf:params:xml:schema:vts-lang"
  xmlns:gvl="urn:ietf:params:xml:schema:vts-lang"
  xmlns="http://www.w3.org/2001/XMLSchema"
  elementFormDefault="qualified">
<element name="Voucher" type="gvl:VoucherType"/>
<complexType name="VoucherType">
 <sequence>
  <element ref="gvl:Title"/>
  <element ref="gvl:Description" minOccurs="0"/>
  <element ref="gvl:Provider"/>
  <element ref="gvl:Issuer" minOccurs="0"/>
  <element ref="gvl:Holder" minOccurs="0"/>
  <element ref="gvl:Collector" minOccurs="0"/>
  <element ref="gvl:Value"/>
  <element ref="gvl:Merchandise" minOccurs="0"/>
  <element ref="gvl:ValidPeriod" minOccurs="0"/>
  <element ref="gvl:Conditions"  minOccurs="0"/>
 </sequence>
</complexType>
<element name="Title" type="string"/>
 
<element name="Description" type="string"/>
<element name="Provider" type="gvl:RoleType"/>
<element name="Issuer"   type="gvl:RoleType"/>
<element name="Holder"   type="gvl:RoleType"/>
<element name="Collector"   type="gvl:RoleType"/>
<complexType name="RoleType" mixed="true">
 <sequence>
  <any namespace="##any" minOccurs="0" maxOccurs="unbounded"/>
 </sequence>
 <attribute name="name" type="string"/>
</complexType>
<element name="Value" type="gvl:ValueType"/>
<complexType name="ValueType">
 <sequence minOccurs="0">
  <choice>
   <element name="Ratio" type="gvl:RatioValueType"/>
   <element name="Fixed" type="gvl:FixedValueType"/>
  </choice>
 </sequence>
 <attribute name="type" type="gvl:ValueProcessType"
use="required"/>
 <attribute name="spend" type="nonNegativeInteger"
default="1"/>
</complexType>
<simpleType name="ValueProcessType">
 <restriction base="string">
  <enumeration value="exchange"/>
  <enumeration value="discount"/>
  <enumeration value="monetary"/>
 </restriction>
</simpleType>
<complexType name="RatioValueType">
 <attribute name="percentage" use="required">
  <simpleType>
   <restriction base="float">
    <maxInclusive value="100"/>
   </restriction>
  </simpleType>
 </attribute>
</complexType>
<complexType name="FixedValueType">
 <attribute name="currency" type="string" use="required"/>
 <attribute name="amount" type="float" use="required"/>
 <attribute name="decimalPower" type="short" default="0"/>
</complexType>
    
<element name="Merchandise" type="gvl:MerchandiseType"/>
<complexType name="MerchandiseType" mixed="true">
 <sequence>
  <any namespace="##any" minOccurs="0" maxOccurs="unbounded"/>
 </sequence>
</complexType>
<element name="ValidPeriod" type="gvl:ValidPeriodType"/>
<complexType name="ValidPeriodType">
  <attribute name="start" type="dateTime"/>
  <attribute name="end" type="dateTime"/>
</complexType>
<element name="Conditions" type="gvl:ConditionsType"/>
<complexType name="ConditionsType" mixed="true">
 <sequence>
  <any namespace="##any" minOccurs="0" maxOccurs="unbounded"/>
 </sequence>
</complexType>
     </schema>