<?xml version="1.0"?>
<!-- edited with XMLSpy v2005 U (http://www.xmlspy.com) by Greg Beaver (The Chiara String Quartet) -->
<!-- edited with XMLSPY v2004 rel. 4 U (http://www.xmlspy.com) by Greg Beaver (The Chiara String Quartet) -->
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:ch="http://pear.php.net/channel-1.0" targetNamespace="http://pear.php.net/channel-1.0" elementFormDefault="qualified">
 <xs:complexType name="function">
  <xs:simpleContent>
   <xs:extension base="xs:string">
    <xs:attribute name="version" use="required">
     <xs:simpleType>
      <xs:restriction base="xs:string">
       <xs:pattern value="[0-9]+\.[0-9]+"/>
      </xs:restriction>
     </xs:simpleType>
    </xs:attribute>
   </xs:extension>
  </xs:simpleContent>
 </xs:complexType>
 <xs:complexType name="functions">
  <xs:sequence>
   <xs:element name="function" type="ch:function" maxOccurs="unbounded"/>
  </xs:sequence>
 </xs:complexType>
 <xs:complexType name="serverinternals">
  <xs:sequence>
   <xs:element name="xmlrpc" minOccurs="0">
    <xs:complexType>
     <xs:complexContent>
      <xs:extension base="ch:functions">
       <xs:attribute name="path" type="xs:string"/>
      </xs:extension>
     </xs:complexContent>
    </xs:complexType>
   </xs:element>
   <xs:element name="rest" minOccurs="0">
    <xs:complexType>
     <xs:sequence>
      <xs:element name="baseurl">
       <xs:complexType>
        <xs:simpleContent>
         <xs:extension base="xs:string">
          <xs:attribute name="type" type="xs:string" use="required"/>
         </xs:extension>
        </xs:simpleContent>
       </xs:complexType>
      </xs:element>
     </xs:sequence>
    </xs:complexType>
   </xs:element>
   <xs:element name="soap" minOccurs="0">
    <xs:complexType>
     <xs:complexContent>
      <xs:extension base="ch:functions">
       <xs:attribute name="path" type="xs:string"/>
      </xs:extension>
     </xs:complexContent>
    </xs:complexType>
   </xs:element>
  </xs:sequence>
  <xs:attribute name="port" type="xs:int" default="80"/>
  <xs:attribute name="ssl">
   <xs:simpleType>
    <xs:restriction base="xs:string">
     <xs:enumeration value="yes"/>
    </xs:restriction>
   </xs:simpleType>
  </xs:attribute>
 </xs:complexType>
 <xs:complexType name="mirrorinternals">
  <xs:sequence>
   <xs:element name="xmlrpc" minOccurs="0">
    <xs:complexType>
     <xs:complexContent>
      <xs:extension base="ch:functions">
       <xs:attribute name="path" type="xs:string"/>
      </xs:extension>
     </xs:complexContent>
    </xs:complexType>
   </xs:element>
   <xs:element name="rest" minOccurs="0">
    <xs:complexType>
     <xs:sequence>
      <xs:element name="baseurl">
       <xs:complexType>
        <xs:simpleContent>
         <xs:extension base="xs:string">
          <xs:attribute name="type" type="xs:string" use="required"/>
         </xs:extension>
        </xs:simpleContent>
       </xs:complexType>
      </xs:element>
     </xs:sequence>
    </xs:complexType>
   </xs:element>
   <xs:element name="soap" minOccurs="0">
    <xs:complexType>
     <xs:complexContent>
      <xs:extension base="ch:functions">
       <xs:attribute name="path" type="xs:string"/>
      </xs:extension>
     </xs:complexContent>
    </xs:complexType>
   </xs:element>
  </xs:sequence>
  <xs:attribute name="port" type="xs:int" default="80"/>
  <xs:attribute name="host" use="required"/>
  <xs:attribute name="ssl">
   <xs:simpleType>
    <xs:restriction base="xs:string">
     <xs:enumeration value="yes"/>
    </xs:restriction>
   </xs:simpleType>
  </xs:attribute>
 </xs:complexType>
 <xs:complexType name="server">
  <xs:sequence>
   <xs:element name="primary">
    <xs:complexType>
     <xs:complexContent>
      <xs:extension base="ch:serverinternals"/>
     </xs:complexContent>
    </xs:complexType>
   </xs:element>
   <xs:element name="mirror" type="ch:mirrorinternals" minOccurs="0" maxOccurs="unbounded"/>
  </xs:sequence>
 </xs:complexType>
 <xs:complexType name="validatepackage">
  <xs:simpleContent>
   <xs:extension base="xs:string">
    <xs:attribute name="version"/>
   </xs:extension>
  </xs:simpleContent>
 </xs:complexType>
 <xs:element name="channel">
  <xs:complexType>
   <xs:sequence>
    <xs:element name="name">
     <xs:simpleType>
      <xs:restriction base="xs:string">
       <xs:pattern value="[A-Za-z][a-zA-Z0-9_.]+"/>
      </xs:restriction>
     </xs:simpleType>
    </xs:element>
    <xs:element name="suggestedalias" minOccurs="0">
     <xs:simpleType>
      <xs:restriction base="xs:string">
       <xs:pattern value="[A-Za-z][a-zA-Z0-9_.]+"/>
      </xs:restriction>
     </xs:simpleType>
    </xs:element>
    <xs:element name="summary" type="xs:string"/>
    <xs:element name="validatepackage" minOccurs="0">
     <xs:complexType>
      <xs:simpleContent>
       <xs:restriction base="ch:validatepackage">
        <xs:pattern value="[A-Za-z][a-zA-Z0-9_]+"/>
       </xs:restriction>
      </xs:simpleContent>
     </xs:complexType>
    </xs:element>
    <xs:element name="servers" type="ch:server"/>
   </xs:sequence>
   <xs:attribute name="version" use="required">
    <xs:simpleType>
     <xs:restriction base="xs:string">
      <xs:pattern value="[0-9]+\.[0-9]+"/>
     </xs:restriction>
    </xs:simpleType>
   </xs:attribute>
  </xs:complexType>
 </xs:element>
</xs:schema>
