<?xml version="1.0" encoding="UTF-8"?>
<!-- 
Copyright 2001 Microsoft Corporation. All rights reserved.

The presentation, distribution or other dissemination of the
information contained herein by Microsoft is not a license,
either expressly or impliedly, to any intellectual property owned or
controlled by Microsoft.

This document and the information contained herein is provided on an
"AS IS" basis and to the maximum extent permitted by applicable law,
Microsoft provides the document AS IS AND WITH ALL FAULTS, and hereby
disclaims all other warranties and conditions, either express, implied
or statutory, including, but not limited to, any (if any) implied
warranties, duties or conditions of merchantability, of fitness for a
particular purpose, of accuracy or completeness of responses, of
results, of workmanlike effort, of lack of viruses, and of lack of
negligence, all with regard to the document. ALSO, THERE IS NO
WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, QUIET POSSESSION,
CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT WITH REGARD TO THE
DOCUMENT.

IN NO EVENT WILL MICROSOFT BE LIABLE TO ANY OTHER PARTY FOR THE COST
OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS OF USE,
LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, INDIRECT, OR
SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, OR OTHERWISE,
ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT RELATING TO THIS
DOCUMENT, WHETHER OR NOT SUCH PARTY HAD ADVANCE NOTICE OF THE
POSSIBILITY OF SUCH DAMAGES.  
-->
<xsd:schema 
  targetNamespace="http://schemas.xmlsoap.org/ws/2001/10/licenses" 
 xmlns:ds="http://www.w3.org/2000/09/xmldsig#" 
 xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
 xmlns:wslic="http://schemas.xmlsoap.org/ws/2001/10/licenses" 
 elementFormDefault="qualified" 
 attributeFormDefault="unqualified"
 version="0.1">
 
  <xsd:import 
    namespace="http://www.w3.org/XML/1998/namespace"
    schemaLocation="http://www.w3.org/2001/xml.xsd"/>
  <xsd:import 
    namespace="http://www.w3.org/2000/09/xmldsig#" 
    schemaLocation="http://www.w3.org/TR/2001/CR-xmldsig-core-20010419/xmldsig-core-schema.xsd"/>
    
  <!-- valueType attribute -->
  <xsd:attribute name="valueType" type="xsd:QName">
    <xsd:annotation>
      <xsd:documentation>
       This attribute is used to identify the value type (lexical form and value
       space) of the result of decoding the contents of a binary element. Its form
       and function is like that of xsi:type, except that it asserts a constraint
       on the type, not of the immediate contents, but the contents after decoding.
             </xsd:documentation>
    </xsd:annotation>
  </xsd:attribute>
  <!-- ABSTRACT_CREDENTIAL type -->
  <xsd:complexType name="ABSTRACT_CREDENTIAL" abstract="true">
    <xsd:complexContent>
      <xsd:extension base="xsd:anyType"/>
    </xsd:complexContent>
  </xsd:complexType>
  <!-- abstractCredential abstract class -->
  <xsd:element name="abstractCredential" abstract="true">
    <xsd:complexType>
      <xsd:complexContent>
        <xsd:extension base="wslic:ABSTRACT_CREDENTIAL"/>
      </xsd:complexContent>
    </xsd:complexType>
  </xsd:element>
  <!-- ABSTRACT_LICENSE type -->
  <xsd:complexType name="ABSTRACT_LICENSE" abstract="true">
    <xsd:complexContent>
      <xsd:extension base="wslic:ABSTRACT_CREDENTIAL"/>
    </xsd:complexContent>
  </xsd:complexType>
  <!-- abstractLicense abstract class -->
  <xsd:element name="abstractLicense" abstract="true" substitutionGroup="wslic:abstractCredential">
    <xsd:complexType>
      <xsd:complexContent>
        <xsd:extension base="wslic:ABSTRACT_LICENSE"/>
      </xsd:complexContent>
    </xsd:complexType>
  </xsd:element>
  <!-- BINARY_LICENSE  type -->
  <xsd:complexType name="BINARY_LICENSE" mixed="true">
    <xsd:complexContent mixed="true">
      <xsd:restriction base="wslic:ABSTRACT_LICENSE">
        <xsd:attribute name="id" type="xsd:ID"/>
        <xsd:attribute ref="wslic:valueType"/>
        <xsd:anyAttribute namespace="##other" processContents="lax"/>
      </xsd:restriction>
    </xsd:complexContent>
  </xsd:complexType>
  <!-- binaryLicense element -->
  <xsd:element name="binaryLicense" type="wslic:BINARY_LICENSE" substitutionGroup="wslic:abstractLicense">
    <xsd:annotation>
      <xsd:documentation>A license that is encoded in binary</xsd:documentation>
    </xsd:annotation>
  </xsd:element>
  <!-- BINARY_CREDENTIAL  type -->
  <xsd:complexType name="BINARY_CREDENTIAL" mixed="true">
    <xsd:complexContent mixed="true">
      <xsd:restriction base="wslic:ABSTRACT_CREDENTIAL">
        <xsd:attribute name="id" type="xsd:ID"/>
        <xsd:attribute ref="wslic:valueType"/>
        <xsd:anyAttribute namespace="##other" processContents="lax"/>
      </xsd:restriction>
    </xsd:complexContent>
  </xsd:complexType>
  <!-- binaryCredential element -->
  <xsd:element name="binaryCredential" type="wslic:BINARY_CREDENTIAL" substitutionGroup="wslic:abstractCredential">
    <xsd:annotation>
      <xsd:documentation>A credential that is encoded in binary</xsd:documentation>
    </xsd:annotation>
  </xsd:element>
  <!-- CREDENTIALS type -->
  <xsd:complexType name="CREDENTIALS">
    <xsd:choice minOccurs="0" maxOccurs="unbounded">
      <xsd:element ref="wslic:abstractCredential"/>
      <xsd:element ref="ds:KeyInfo"/>
    </xsd:choice>
    <xsd:attribute name="id" type="xsd:ID"/>
    <xsd:anyAttribute namespace="##other" processContents="lax"/>
  </xsd:complexType>
  <!-- Specific License Types,  typically referenced within a wslic:valueType attribute. -->
  <xsd:complexType name="x509v3"/>
  <xsd:complexType name="kerberos"/>
</xsd:schema>
