Added support for starttls and sasl EXTERNAL authentication. Hooked the existing...
[java-idp.git] / src / schemas / shibboleth-resolver-1.0.xsd
index 2f078e3..b9677c5 100644 (file)
 <?xml version="1.0" encoding="UTF-8"?>
-<xs:schema targetNamespace="urn:mace:shibboleth:resolver:1.0" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:resolver="urn:mace:shibboleth:resolver:1.0" elementFormDefault="qualified" attributeFormDefault="unqualified">
+<xs:schema targetNamespace="urn:mace:shibboleth:resolver:1.0" 
+       xmlns:xs="http://www.w3.org/2001/XMLSchema" 
+       xmlns:resolver="urn:mace:shibboleth:resolver:1.0" 
+       xmlns:credentials="urn:mace:shibboleth:credentials:1.0" 
+       elementFormDefault="qualified" attributeFormDefault="unqualified">
+       <xs:import namespace="urn:mace:shibboleth:credentials:1.0" 
+               schemaLocation="credentials.xsd"/>
        <xs:element name="AttributeResolver">
                <xs:complexType>
                        <xs:choice minOccurs="1" maxOccurs="unbounded">
-                               <xs:element name="SimpleAttributeDefinition" minOccurs="0" maxOccurs="unbounded">
+                               <xs:element name="SimpleAttributeDefinition" minOccurs="0" 
+                                       maxOccurs="unbounded">
                                        <xs:complexType>
                                                <xs:complexContent>
-                                                       <xs:extension base="resolver:BaseAttributeDefinition">
-                                                               <xs:attribute name="sourceName" type="xs:string" use="optional"/>
-                                                               <xs:attribute name="smartScope" type="xs:string" use="optional"/>
-                                                               <xs:attribute name="valueHandler" type="xs:string" use="optional"/>
-                                                               <xs:attribute name="allowEmpty" type="xs:boolean" use="optional"/>
-                                                               <xs:attribute name="downCase" type="xs:boolean" use="optional"/>
+                                                       <xs:extension 
+                                                               base="resolver:BaseAttributeDefinition">
+                                                               <xs:attribute name="sourceName" 
+                                                                       type="xs:string" use="optional"/>
+                                                               <xs:attribute name="smartScope" 
+                                                                       type="xs:string" use="optional"/>
+                                                               <xs:attribute name="valueHandler" 
+                                                                       type="xs:string" use="optional"/>
+                                                               <xs:attribute name="allowEmpty" 
+                                                                       type="xs:boolean" use="optional"/>
+                                                               <xs:attribute name="downCase" type="xs:boolean" 
+                                                                       use="optional"/>
                                                        </xs:extension>
                                                </xs:complexContent>
                                        </xs:complexType>
                                </xs:element>
-                               <xs:element name="PersistentIDAttributeDefinition" minOccurs="0" maxOccurs="unbounded">
+                               <xs:element name="PersistentIDAttributeDefinition" 
+                                       minOccurs="0" maxOccurs="unbounded">
                                        <xs:complexType>
                                                <xs:complexContent>
-                                                       <xs:extension base="resolver:BaseAttributeDefinition">
+                                                       <xs:extension 
+                                                               base="resolver:BaseAttributeDefinition">
                                                                <xs:sequence>
                                                                        <xs:element name="Salt">
                                                                                <xs:complexType>
                                                                                        <xs:simpleContent>
                                                                                                <xs:extension base="xs:string">
-                                                                                                       <xs:attribute name="keyStorePath" type="xs:string" use="optional"/>
-                                                                                                       <xs:attribute name="keyStoreKeyAlias" type="xs:string" use="optional"/>
-                                                                                                       <xs:attribute name="keyStorePassword" type="xs:string" use="optional"/>
-                                                                                                       <xs:attribute name="keyStoreKeyPassword" type="xs:string" use="optional"/>
+                                                                                                       <xs:attribute 
+                                                                                                               name="keyStorePath" 
+                                                                                                               type="xs:string" 
+                                                                                                               use="optional"/>
+                                                                                                       <xs:attribute 
+                                                                                                               name="keyStoreKeyAlias" 
+                                                                                                               type="xs:string" 
+                                                                                                               use="optional"/>
+                                                                                                       <xs:attribute 
+                                                                                                               name="keyStorePassword" 
+                                                                                                               type="xs:string" 
+                                                                                                               use="optional"/>
+                                                                                                       <xs:attribute 
+                                                                                                               name="keyStoreKeyPassword" 
+                                                                                                               type="xs:string" 
+                                                                                                               use="optional"/>
                                                                                                </xs:extension>
                                                                                        </xs:simpleContent>
                                                                                </xs:complexType>
                                                                        </xs:element>
                                                                </xs:sequence>
-                                                               <xs:attribute name="sourceName" type="xs:string" use="optional"/>
-                                                               <xs:attribute name="scope" type="xs:string" use="required"/>
+                                                               <xs:attribute name="sourceName" 
+                                                                       type="xs:string" use="optional"/>
+                                                               <xs:attribute name="scope" type="xs:string" 
+                                                                       use="required"/>
                                                        </xs:extension>
                                                </xs:complexContent>
                                        </xs:complexType>
                                </xs:element>
-                               <xs:element name="CustomAttributeDefinition" minOccurs="0" maxOccurs="unbounded">
+                               <xs:element name="CustomAttributeDefinition" minOccurs="0" 
+                                       maxOccurs="unbounded">
                                        <xs:complexType>
                                                <xs:complexContent>
-                                                       <xs:extension base="resolver:BaseAttributeDefinition">
-                                                               <xs:sequence minOccurs="0" maxOccurs="unbounded">
-                                                                       <xs:any namespace="##any" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
+                                                       <xs:extension 
+                                                               base="resolver:BaseAttributeDefinition">
+                                                               <xs:sequence minOccurs="0" 
+                                                                       maxOccurs="unbounded">
+                                                                       <xs:any namespace="##any" 
+                                                                               processContents="lax" minOccurs="0" 
+                                                                               maxOccurs="unbounded"/>
                                                                </xs:sequence>
-                                                               <xs:attribute name="class" type="xs:string" use="required"/>
-                                                               <xs:anyAttribute namespace="##any" processContents="lax"/>
+                                                               <xs:attribute name="class" type="xs:string" 
+                                                                       use="required"/>
+                                                               <xs:anyAttribute namespace="##any" 
+                                                                       processContents="lax"/>
                                                        </xs:extension>
                                                </xs:complexContent>
                                        </xs:complexType>
                                </xs:element>
-                               <xs:element name="CustomDataConnector" minOccurs="0" maxOccurs="unbounded">
+                               <xs:element name="CustomDataConnector" minOccurs="0" 
+                                       maxOccurs="unbounded">
                                        <xs:complexType>
                                                <xs:complexContent>
                                                        <xs:extension base="resolver:BaseDataConnector">
                                                                <xs:sequence>
-                                                                       <xs:any namespace="##any" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
+                                                                       <xs:any namespace="##any" 
+                                                                               processContents="lax" minOccurs="0" 
+                                                                               maxOccurs="unbounded"/>
                                                                </xs:sequence>
-                                                               <xs:attribute name="class" type="xs:string" use="required"/>
-                                                               <xs:anyAttribute namespace="##any" processContents="lax"/>
+                                                               <xs:attribute name="class" type="xs:string" 
+                                                                       use="required"/>
+                                                               <xs:anyAttribute namespace="##any" 
+                                                                       processContents="lax"/>
                                                        </xs:extension>
                                                </xs:complexContent>
                                        </xs:complexType>
                                </xs:element>
-                               <xs:element name="JNDIDirectoryDataConnector" minOccurs="0" maxOccurs="unbounded">
+                               <xs:element name="JNDIDirectoryDataConnector" minOccurs="0" 
+                                       maxOccurs="unbounded">
                                        <xs:complexType>
                                                <xs:complexContent>
                                                        <xs:extension base="resolver:BaseDataConnector">
                                                                <xs:sequence>
+                                                                       <xs:element ref="credentials:Credential" 
+                                                                               minOccurs="0" maxOccurs="1"/>
                                                                        <xs:element name="Search">
                                                                                <xs:complexType>
                                                                                        <xs:sequence minOccurs="0">
                                                                                                <xs:element name="Controls">
                                                                                                        <xs:complexType>
-                                                                                                               <xs:attribute name="searchScope" type="xs:string" use="optional"/>
-                                                                                                               <xs:attribute name="timeLimit" type="xs:int" use="optional"/>
-                                                                                                               <xs:attribute name="returningObjects" type="xs:boolean" use="optional"/>
-                                                                                                               <xs:attribute name="linkDereferencing" type="xs:boolean" use="optional"/>
-                                                                                                               <xs:attribute name="countLimit" type="xs:long" use="optional"/>
+                                                                                                               <xs:attribute 
+                                                                                                                       name="searchScope" 
+                                                                                                                       type="xs:string" 
+                                                                                                                       use="optional"/>
+                                                                                                               <xs:attribute 
+                                                                                                                       name="timeLimit" 
+                                                                                                                       type="xs:int" 
+                                                                                                                       use="optional"/>
+                                                                                                               <xs:attribute 
+                                                                                                                       name="returningObjects" 
+                                                                                                                       type="xs:boolean" 
+                                                                                                                       use="optional"/>
+                                                                                                               <xs:attribute 
+                                                                                                                       name="linkDereferencing" 
+                                                                                                                       type="xs:boolean" 
+                                                                                                                       use="optional"/>
+                                                                                                               <xs:attribute 
+                                                                                                                       name="countLimit" 
+                                                                                                                       type="xs:long" 
+                                                                                                                       use="optional"/>
                                                                                                        </xs:complexType>
                                                                                                </xs:element>
                                                                                        </xs:sequence>
-                                                                                       <xs:attribute name="filter" type="xs:string" use="required"/>
+                                                                                       <xs:attribute name="filter" 
+                                                                                               type="xs:string" 
+                                                                                               use="required"/>
                                                                                </xs:complexType>
                                                                        </xs:element>
-                                                                       <xs:element name="Property" maxOccurs="unbounded">
+                                                                       <xs:element name="Property" 
+                                                                               maxOccurs="unbounded">
                                                                                <xs:complexType>
-                                                                                       <xs:attribute name="name" type="xs:string" use="required"/>
-                                                                                       <xs:attribute name="value" type="xs:string" use="required"/>
+                                                                                       <xs:attribute name="name" 
+                                                                                               type="xs:string" 
+                                                                                               use="required"/>
+                                                                                       <xs:attribute name="value" 
+                                                                                               type="xs:string" 
+                                                                                               use="required"/>
                                                                                </xs:complexType>
                                                                        </xs:element>
                                                                </xs:sequence>
+                                                               <xs:attribute name="useStartTls" 
+                                                                       type="xs:boolean" use="optional" 
+                                                                       default="false"/>
                                                        </xs:extension>
                                                </xs:complexContent>
                                        </xs:complexType>
                                </xs:element>
-                               <xs:element name="JDBCDataConnector" minOccurs="0" maxOccurs="unbounded">
+                               <xs:element name="JDBCDataConnector" minOccurs="0" 
+                                       maxOccurs="unbounded">
                                        <xs:complexType>
                                                <xs:complexContent>
                                                        <xs:extension base="resolver:BaseDataConnector">
                                                                <xs:sequence>
                                                                        <xs:element name="Query" type="xs:string"/>
-                                                                       <xs:element name="AttributeExtractor" minOccurs="0">
+                                                                       <xs:element name="AttributeExtractor" 
+                                                                               minOccurs="0">
                                                                                <xs:complexType>
-                                                                                       <xs:attribute name="class" type="xs:string" use="required"/>
+                                                                                       <xs:attribute name="class" 
+                                                                                               type="xs:string" 
+                                                                                               use="required"/>
                                                                                </xs:complexType>
                                                                        </xs:element>
-                                                                       <xs:element name="StatementCreator" minOccurs="0">
+                                                                       <xs:element name="StatementCreator" 
+                                                                               minOccurs="0">
                                                                                <xs:complexType>
-                                                                                       <xs:sequence minOccurs="0" maxOccurs="unbounded">
-                                                                                               <xs:any namespace="##any" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
+                                                                                       <xs:sequence minOccurs="0" 
+                                                                                               maxOccurs="unbounded">
+                                                                                               <xs:any namespace="##any" 
+                                                                                                       processContents="lax" 
+                                                                                                       minOccurs="0" 
+                                                                                                       maxOccurs="unbounded"/>
                                                                                        </xs:sequence>
-                                                                                       <xs:attribute name="class" type="xs:string" use="required"/>
-                                                                                       <xs:anyAttribute namespace="##any" processContents="lax"/>
+                                                                                       <xs:attribute name="class" 
+                                                                                               type="xs:string" 
+                                                                                               use="required"/>
+                                                                                       <xs:anyAttribute namespace="##any" 
+                                                                                               processContents="lax"/>
                                                                                </xs:complexType>
                                                                        </xs:element>
-                                                                       <xs:element name="Property" minOccurs="0" maxOccurs="unbounded">
+                                                                       <xs:element name="Property" minOccurs="0" 
+                                                                               maxOccurs="unbounded">
                                                                                <xs:complexType>
-                                                                                       <xs:attribute name="name" type="xs:string" use="required"/>
-                                                                                       <xs:attribute name="value" type="xs:string" use="required"/>
+                                                                                       <xs:attribute name="name" 
+                                                                                               type="xs:string" 
+                                                                                               use="required"/>
+                                                                                       <xs:attribute name="value" 
+                                                                                               type="xs:string" 
+                                                                                               use="required"/>
                                                                                </xs:complexType>
                                                                        </xs:element>
                                                                </xs:sequence>
-                                                               <xs:attribute name="dbURL" type="xs:string" use="required"/>
-                                                               <xs:attribute name="dbDriver" type="xs:string" use="optional"/>
-                                                               <xs:attribute name="validationQuery" type="xs:string" use="optional" default="select 1"/>
-                                                               <xs:attribute name="maxActive" type="xs:integer" use="optional"/>
-                                                               <xs:attribute name="maxIdle" type="xs:integer" use="optional"/>
-                                                               <xs:attribute name="maxWait" type="xs:integer" use="optional"/>
-                                                               <xs:attribute name="minResultSet" type="xs:integer" use="optional"/>
-                                                               <xs:attribute name="maxResultSet" type="xs:integer" use="optional"/>
-                                                               <xs:attribute name="retryInterval" type="xs:integer" use="optional"/>
+                                                               <xs:attribute name="dbURL" type="xs:string" 
+                                                                       use="required"/>
+                                                               <xs:attribute name="dbDriver" type="xs:string" 
+                                                                       use="optional"/>
+                                                               <xs:attribute name="validationQuery" 
+                                                                       type="xs:string" use="optional" 
+                                                                       default="select 1"/>
+                                                               <xs:attribute name="maxActive" 
+                                                                       type="xs:integer" use="optional"/>
+                                                               <xs:attribute name="maxIdle" type="xs:integer" 
+                                                                       use="optional"/>
+                                                               <xs:attribute name="maxWait" type="xs:integer" 
+                                                                       use="optional"/>
+                                                               <xs:attribute name="minResultSet" 
+                                                                       type="xs:integer" use="optional"/>
+                                                               <xs:attribute name="maxResultSet" 
+                                                                       type="xs:integer" use="optional"/>
+                                                               <xs:attribute name="retryInterval" 
+                                                                       type="xs:integer" use="optional"/>
                                                        </xs:extension>
                                                </xs:complexContent>
                                        </xs:complexType>
                                <xs:sequence>
                                        <xs:element name="FailoverDependency" minOccurs="0">
                                                <xs:complexType>
-                                                       <xs:attribute name="requires" type="xs:string" use="required"/>
+                                                       <xs:attribute name="requires" type="xs:string" 
+                                                               use="required"/>
                                                </xs:complexType>
                                        </xs:element>
                                </xs:sequence>
                <xs:choice minOccurs="0" maxOccurs="unbounded">
                        <xs:element name="DataConnectorDependency">
                                <xs:complexType>
-                                       <xs:attribute name="requires" type="xs:string" use="required"/>
+                                       <xs:attribute name="requires" type="xs:string" 
+                                               use="required"/>
                                </xs:complexType>
                        </xs:element>
                        <xs:element name="AttributeDependency">
                                <xs:complexType>
-                                       <xs:attribute name="requires" type="xs:string" use="required"/>
+                                       <xs:attribute name="requires" type="xs:string" 
+                                               use="required"/>
                                </xs:complexType>
                        </xs:element>
                </xs:choice>
                <xs:attribute name="id" type="xs:string" use="required"/>
                <xs:attribute name="cacheTime" type="xs:string" use="optional"/>
-               <xs:attribute name="propagateErrors" type="xs:boolean" use="optional" default="true"/>
+               <xs:attribute name="propagateErrors" type="xs:boolean" use="optional" 
+                       default="true"/>
        </xs:complexType>
 </xs:schema>