<?xml version="1.0" encoding="utf-8" ?>
<xs:schema targetNamespace="urn:xmlns:sigwin:wipt-get:repository" xmlns="urn:xmlns:sigwin:wipt-get:repository"
  xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" version="0.8">
  <xs:element name="Repository">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="Product" type="Product" minOccurs="0" maxOccurs="unbounded" />
      </xs:sequence>
      <xs:attribute name="Maintainer" type="xs:string" use="required" />
      <xs:attribute name="SupportURL" type="xs:string" use="required" />
    </xs:complexType>
  </xs:element>
  <xs:complexType name="Product">
    <xs:sequence>
      <xs:element name="Description" type="xs:string" minOccurs="0" maxOccurs="1" />
      <xs:element name="StableVersion" type="Version" minOccurs="0" maxOccurs="1" />
      <xs:element name="Package" type="Package" minOccurs="0" maxOccurs="unbounded" />
      <xs:element name="Transform" type="Transform" minOccurs="0" maxOccurs="unbounded" />
      <xs:element name="Patch" type="Patch" minOccurs="0" maxOccurs="unbounded" />
    </xs:sequence>
    <xs:attribute name="Name" type="xs:string" use="required" />
    <xs:attribute name="Publisher" type="xs:string" use="required" />
    <xs:attribute name="SupportURL" type="xs:string" />
    <xs:attribute name="UpgradeCode" type="xs:string" use="required" />
  </xs:complexType>
  <xs:complexType name="Version">
    <xs:attribute name="Major" type="xs:int" use="required" />
    <xs:attribute name="Minor" type="xs:int" />
    <xs:attribute name="Build" type="xs:int" />
  </xs:complexType>
  <xs:complexType name="Package">
    <xs:sequence>
      <xs:element name="Version" type="Version" minOccurs="1" maxOccurs="1" />
      <xs:element name="URL" type="xs:string" minOccurs="1" maxOccurs="unbounded" />
    </xs:sequence>
    <xs:attribute name="ProductCode" type="xs:string" use="required" />
  </xs:complexType>
  <xs:complexType name="Transform">
    <xs:sequence>
      <xs:element name="MinVersion" type="Version" minOccurs="0" maxOccurs="1" />
      <xs:element name="MaxVersion" type="Version" minOccurs="0" maxOccurs="1" />
      <xs:element name="URL" type="xs:string" minOccurs="1" maxOccurs="unbounded" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="Patch">
    <xs:sequence>
      <xs:element name="ProductCode" type="xs:string" minOccurs="0" maxOccurs="unbounded" />
      <xs:element name="URL" type="xs:string" minOccurs="1" maxOccurs="unbounded" />
    </xs:sequence>
    <xs:attribute name="Name" type="xs:string" use="required" />
    <xs:attribute name="PatchCode" type="xs:string" use="required" />
  </xs:complexType>
</xs:schema>

