<?xml version="1.0" encoding="UTF-8"?>
<!-- edited with XML Spy v4.4 U (http://www.xmlspy.com) by KMD (HomeSoft) -->
<!--W3C Schema generated by XML Spy v4.4 U (http://www.xmlspy.com)-->
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
  <xs:complexType name="PARAMETERType">
    <xs:attribute name="name" type="xs:string" use="required"/>
  </xs:complexType>
  <xs:complexType name="componentType">
    <xs:sequence>
      <xs:element name="registration" type="registrationType" minOccurs="0"/>
      <xs:element name="public" type="publicType"/>
      <xs:element name="script" type="scriptType" maxOccurs="unbounded"/>
    </xs:sequence>
    <xs:attribute name="id" type="xs:string" use="required"/>
  </xs:complexType>
  <xs:element name="get">
    <xs:complexType>
      <xs:attribute name="internalName" type="xs:string" use="required"/>
    </xs:complexType>
  </xs:element>
  <xs:complexType name="methodType">
    <xs:all>
      <xs:element name="PARAMETER" type="PARAMETERType" minOccurs="0" maxOccurs="1"/>
      <xs:element name="parameter" type="parameterType" minOccurs="0" maxOccurs="1"/>
    </xs:all>
    <xs:attribute name="name" type="xs:string" use="required"/>
    <xs:attribute name="progid" type="xs:string" use="required"/>
  </xs:complexType>

  <xs:element name="package">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="component" maxOccurs="unbounded"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>

  <xs:element name="component" type="componentType"/>

  <xs:complexType name="parameterType">
    <xs:attribute name="name" type="xs:string" use="required"/>
  </xs:complexType>
  <xs:complexType name="propertyType">
    <xs:all>
      <xs:element ref="get" minOccurs="0"/>
      <xs:element ref="put" minOccurs="0"/>
    </xs:all>
    <xs:attribute name="progid" type="xs:string" use="required"/>
    <xs:attribute name="name" type="xs:string" use="required"/>
    <xs:attribute name="internalName" type="xs:string" use="required"/>
    <xs:attribute name="get" type="xs:string" use="optional"/>
    <xs:attribute name="put" type="xs:string" use="optional"/>
  </xs:complexType>
  <xs:complexType name="publicType">
    <xs:all>
      <xs:element name="method" type="methodType" minOccurs="0" maxOccurs="1"/>
      <xs:element name="property" type="propertyType" minOccurs="0" maxOccurs="1"/>
    </xs:all>
  </xs:complexType>
  <xs:element name="put">
    <xs:complexType>
      <xs:attribute name="internalName" type="xs:string" use="required"/>
    </xs:complexType>
  </xs:element>
  <xs:complexType name="registrationType">
    <xs:attribute name="description" type="xs:string" use="required"/>
    <xs:attribute name="progid" type="xs:string" use="required"/>
    <xs:attribute name="version" type="xs:decimal" use="required"/>
    <xs:attribute name="classid" type="xs:string" use="required"/>
  </xs:complexType>
  <xs:complexType name="scriptType">
    <xs:simpleContent>
      <xs:extension base="xs:string">
        <xs:attribute name="language" type="xs:string" use="required"/>
        <xs:attribute name="id" type="xs:string" use="optional"/>
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>
</xs:schema>
