<?xml version="1.0" encoding="UTF-8"?>

<schema 
  targetNamespace="urn:oasis:names:tc:SAML:metadata:ext:query"
  xmlns="http://www.w3.org/2001/XMLSchema"
  xmlns:md="urn:oasis:names:tc:SAML:2.0:metadata"
  xmlns:query="urn:oasis:names:tc:SAML:metadata:ext:query"
  elementFormDefault="unqualified"
  attributeFormDefault="unqualified"
  blockDefault="substitution"
  version="2.0">

  <annotation>
    <documentation>
      Document title: SAML Metadata Extension Schema for Query Requester
      Document identifier: sstc-saml-metadata-ext-query.xsd
      Location: http://www.oasis-open.org/committees/documents.php?wg_abbrev=security
      Revision history:
      V1.0 (February 2006):
        Initial version.
    </documentation>
  </annotation>

  <import namespace="urn:oasis:names:tc:SAML:2.0:metadata"
    schemaLocation="saml-schema-metadata-2.0.xsd"/>

  <complexType name="QueryDescriptorType" abstract="true">
    <complexContent>
      <extension base="md:RoleDescriptorType">
        <sequence>
          <element ref="md:NameIDFormat" minOccurs="0" maxOccurs="unbounded"/>
        </sequence>
        <attribute name="WantAssertionsSigned" type="boolean" use="optional"/>
      </extension>
    </complexContent>
  </complexType>

  <complexType name="AuthnQueryDescriptorType">
    <complexContent>
      <extension base="query:QueryDescriptorType"/>
    </complexContent>
  </complexType>

  <complexType name="AttributeQueryDescriptorType">
    <complexContent>
      <extension base="query:QueryDescriptorType">
        <sequence>
          <element ref="md:AttributeConsumingService" minOccurs="0" maxOccurs="unbounded"/>
        </sequence>
      </extension>
    </complexContent>
  </complexType>

  <element name="ActionNamespace" type="anyURI"/>
    
  <complexType name="AuthzDecisionQueryDescriptorType">
    <complexContent>
      <extension base="query:QueryDescriptorType">
        <sequence>
          <element ref="query:ActionNamespace" minOccurs="0" maxOccurs="unbounded"/>
        </sequence>
      </extension>
    </complexContent>
  </complexType>

</schema>
