https://issues.shibboleth.net/jira/browse/SSPCPP-599
[shibboleth/cpp-sp.git] / schemas / shibboleth-2.0-native-sp-config.xsd
index 6d775b1..efc1d94 100644 (file)
@@ -2,14 +2,14 @@
 <schema targetNamespace="urn:mace:shibboleth:2.0:native:sp:config"
        xmlns="http://www.w3.org/2001/XMLSchema"
        xmlns:conf="urn:mace:shibboleth:2.0:native:sp:config"
-  xmlns:ds="http://www.w3.org/2000/09/xmldsig#"
+       xmlns:ds="http://www.w3.org/2000/09/xmldsig#"
        xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion"
        xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol"
        xmlns:md="urn:oasis:names:tc:SAML:2.0:metadata"
        elementFormDefault="qualified"
        attributeFormDefault="unqualified"
        blockDefault="substitution"
-       version="2.4.2">
+       version="2.5.3">
 
   <import namespace="http://www.w3.org/2000/09/xmldsig#" schemaLocation="xmldsig-core-schema.xsd" />
   <import namespace="urn:oasis:names:tc:SAML:2.0:assertion" schemaLocation="saml-schema-assertion-2.0.xsd"/>
     </restriction>
   </simpleType>
 
-  <simpleType name="relayStateLimitType">
+  <simpleType name="redirectLimitType">
     <restriction base="string">
       <enumeration value="none"/>
       <enumeration value="exact"/>
       <enumeration value="host"/>
       <enumeration value="whitelist"/>
+      <enumeration value="exact+whitelist"/>
+      <enumeration value="host+whitelist"/>
     </restriction>
   </simpleType>
 
         <attribute name="StorageService" type="IDREF"/>
         <attribute name="cacheAllowance" type="unsignedInt"/>
         <attribute name="cacheTimeout" type="unsignedInt"/> <!-- deprecated -->
+        <attribute name="maintainReverseIndex" type="boolean"/>
+        <attribute name="excludeReverseIndex" type="conf:listOfStrings"/>
         <anyAttribute namespace="##any" processContents="lax"/>
       </restriction>
     </complexContent>
       <any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
     </sequence>
     <attribute name="logger" type="anyURI"/>
+    <attribute name="tranLogFormat" type="conf:string"/>
+    <attribute name="tranLogFiller" type="conf:string"/>
     <attribute name="catchAll" type="boolean"/>
     <anyAttribute namespace="##other" processContents="lax"/>
   </complexType>
     <attribute name="authType" type="conf:string"/>
     <attribute name="requireSession" type="boolean"/>
     <attribute name="requireSessionWith" type="conf:string"/>
+    <attribute name="requireLogoutWith" type="anyURI"/>
     <attribute name="exportAssertion" type="boolean"/>
+    <attribute name="exportStdVars" type="boolean"/>
+    <attribute name="exportCookie" type="boolean"/>
     <attribute name="redirectToSSL" type="unsignedInt"/>
     <attribute name="entityID" type="anyURI"/>
     <attribute name="discoveryURL" type="anyURI"/>
+    <attribute name="discoveryPolicy" type="conf:string"/>
     <attribute name="isPassive" type="boolean"/>
     <attribute name="returnOnError" type="boolean"/>
     <attribute name="forceAuthn" type="boolean"/>
-    <attribute name="authnContextClassRef" type="anyURI"/>
+    <attribute name="authnContextClassRef" type="conf:listOfURIs"/>
     <attribute name="authnContextComparison" type="samlp:AuthnContextComparisonType"/>
     <attribute name="NameIDFormat" type="anyURI"/>
     <attribute name="SPNameQualifier" type="conf:string"/>
     </sequence>
     <attribute name="id" type="conf:string" fixed="default"/>
     <attribute name="entityID" type="anyURI" use="required"/>
-    <attribute name="policyId" type="conf:string"/>
     <attributeGroup ref="conf:ApplicationGroup"/>
     <attributeGroup ref="conf:RelyingPartyGroup"/>
     <anyAttribute namespace="##other" processContents="lax"/>
     </sequence>
     <attribute name="id" type="conf:string" use="required"/>
     <attribute name="entityID" type="anyURI"/>
-    <attribute name="policyId" type="conf:string"/>
     <attributeGroup ref="conf:ApplicationGroup"/>
     <attributeGroup ref="conf:RelyingPartyGroup"/>
     <anyAttribute namespace="##other" processContents="lax"/>
 
   <attributeGroup name="ApplicationGroup">
     <attribute name="homeURL" type="anyURI"/>
+    <attribute name="policyId" type="conf:string"/>
     <attribute name="REMOTE_USER" type="conf:listOfStrings"/>
     <attribute name="unsetHeaders" type="conf:listOfStrings"/>
     <attribute name="metadataAttributePrefix" type="conf:string"/>
     <attribute name="attributePrefix" type="conf:string"/>
+    <attribute name="requireAuthenticatedEncryption" type="boolean"/>
   </attributeGroup>
 
   <attributeGroup name="RelyingPartyGroup">
     <attribute name="requireConfidentiality" type="boolean"/>
     <attribute name="requireTransportAuth" type="boolean"/>
     <attribute name="requireSignedAssertions" type="boolean"/>
+    <attribute name="sessionHook" type="anyURI"/>
+    <attribute name="artifactByFilesystem" type="boolean"/>
   </attributeGroup>
     
   <complexType name="SessionsType">
           </annotation>
           <simpleContent>
             <extension base="conf:listOfStrings">
+              <attribute name="policyId" type="conf:string"/>
+              <attribute name="ignoreNoPassive" type="boolean"/>
               <attribute name="discoveryProtocol" type="conf:string"/>
               <attribute name="discoveryURL" type="anyURI"/>
               <attributeGroup ref="conf:SessionInitiatorGroup"/>
           </annotation>
           <simpleContent>
             <extension base="conf:listOfStrings">
+              <attribute name="policyId" type="conf:string"/>
               <attributeGroup ref="conf:LogoutInitiatorGroup"/>
             </extension>
           </simpleContent>
         </complexType>
       </element>
-      <element name="NameIDMgmt" type="conf:listOfStrings" minOccurs="0">
-        <annotation>
-          <documentation>Implicitly configures ManageNameIDService handlers</documentation>
-        </annotation>
+      <element name="NameIDMgmt" minOccurs="0">
+        <complexType>
+          <annotation>
+            <documentation>Implicitly configures ManageNameIDService handlers</documentation>
+          </annotation>
+          <simpleContent>
+            <extension base="conf:listOfStrings">
+              <attribute name="policyId" type="conf:string"/>
+            </extension>
+          </simpleContent>
+        </complexType>
       </element>
       <choice minOccurs="0" maxOccurs="unbounded">
         <element ref="conf:SessionInitiator"/>
     <attribute name="cookieLifetime" type="unsignedInt"/>
     <attribute name="idpHistory" type="boolean"/>
     <attribute name="idpHistoryDays" type="unsignedInt"/>
+    <attribute name="idpHistoryProps" type="conf:string"/>
     <attribute name="lifetime" type="unsignedInt"/>
     <attribute name="timeout" type="unsignedInt"/>
     <attribute name="maxTimeSinceAuthn" type="unsignedInt"/>
     <attribute name="postTemplate" type="conf:string"/>
     <attribute name="postExpire" type="boolean"/>
     <attribute name="relayState" type="conf:string"/>
-    <attribute name="relayStateLimit" type="conf:relayStateLimitType"/>
+    <attribute name="relayStateLimit" type="conf:redirectLimitType"/>
     <attribute name="relayStateWhitelist" type="conf:listOfURIs"/>
+    <attribute name="redirectLimit" type="conf:redirectLimitType"/>
+    <attribute name="redirectWhitelist" type="conf:listOfURIs"/>
     <anyAttribute namespace="##other" processContents="lax"/>
   </complexType>
 
     </annotation>
   </attribute>
 
+  <attribute name="ignoreNoPassive" type="boolean">
+    <annotation>
+      <documentation>Used to ignore NoPassive errors in AssertionConsumerService endpoints</documentation>
+    </annotation>
+  </attribute>
+  
   <attributeGroup name="SessionInitiatorGroup">
     <annotation>
       <documentation>Options common to explicit and implicit SessionInitiators</documentation>
     <attribute name="SPNameQualifier" type="conf:string"/>
     <attribute name="requestDelegation" type="boolean"/>
     <attribute name="target" type="anyURI"/>
+    <attribute name="discoveryPolicy" type="conf:string"/>
     <anyAttribute namespace="##any" processContents="lax"/>
   </attributeGroup>
 
     <attribute name="localLogout" type="anyURI"/>
     <attribute name="globalLogout" type="anyURI"/>
     <attribute name="partialLogout" type="anyURI"/>
-    <attribute name="supportContact" type="conf:string"/>
-    <attribute name="logoLocation" type="anyURI"/>
-    <attribute name="styleSheet" type="anyURI"/>
     <anyAttribute namespace="##any" processContents="lax"/>
   </complexType>
 
     <annotation>
       <documentation>Container for specifying settings to use with particular peers</documentation>
     </annotation>
-    <sequence/>
-    <attribute name="Name" type="conf:string" use="required"/>
+    <sequence>
+      <any namespace="##any" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
+    </sequence>
+    <attribute name="Name" type="conf:string"/>
+    <attribute name="type" type="conf:string"/>
     <attributeGroup ref="conf:RelyingPartyGroup"/>
     <attribute name="entityID" type="anyURI"/>
-    <anyAttribute namespace="##other" processContents="lax"/>
+    <anyAttribute namespace="##any" processContents="lax"/>
   </complexType>
 
   <complexType name="NotifyType">
         </element>
         <choice minOccurs="0">
           <element name="AlgorithmWhitelist" type="conf:listOfURIs"/>
-          <element name="AlgorithmBlacklist" type="conf:listOfURIs"/>
+          <element name="AlgorithmBlacklist">
+            <complexType>
+              <simpleContent>
+                <extension base="conf:listOfURIs">
+                  <attribute name="includeDefaultBlacklist" type="boolean"/>
+                </extension>
+              </simpleContent>
+            </complexType>
+          </element>
         </choice>
       </sequence>
     </complexType>
       <attribute name="clockSkew" type="unsignedInt"/>
       <attribute name="unsafeChars" type="conf:string"/>
       <attribute name="allowedSchemes" type="conf:listOfStrings"/>
+      <attribute name="langFromClient" type="boolean"/>
+      <attribute name="langPriority" type="conf:listOfStrings"/>
+      <attribute name="contactPriority" type="conf:listOfStrings"/>
       <anyAttribute namespace="##other" processContents="lax"/>
     </complexType>
   </element>