https://issues.shibboleth.net/jira/browse/SSPCPP-312
[shibboleth/cpp-sp.git] / schemas / shibboleth-2.0-attribute-map.xsd
index caf5e1e..d119da3 100644 (file)
@@ -2,8 +2,11 @@
 <schema targetNamespace="urn:mace:shibboleth:2.0:attribute-map"
         xmlns="http://www.w3.org/2001/XMLSchema"
         xmlns:am="urn:mace:shibboleth:2.0:attribute-map"
+        xmlns:ds="http://www.w3.org/2000/09/xmldsig#"
         elementFormDefault="qualified"
-        version="2.2">
+        version="2.3">
+
+    <import namespace="http://www.w3.org/2000/09/xmldsig#" schemaLocation="xmldsig-core-schema.xsd" />
 
     <annotation>
         <documentation>
@@ -45,6 +48,7 @@
                 <element name="TrustEngine" type="am:PluggableType" minOccurs="0"/>
                 <element name="AttributeFilter" type="am:PluggableType" minOccurs="0"/>
                 <element name="Attribute" type="am:AttributeType" maxOccurs="unbounded"/>
+                <element ref="ds:Signature" minOccurs="0"/>
             </sequence>
             <attribute name="metadataPolicyId" type="am:string"/>
         </complexType>
                 <documentation>The SAML 1 Namespace or SAML 2 NameFormat of the attribute.</documentation>
             </annotation>
         </attribute>
+        <attribute name="isRequested" type="boolean">
+          <annotation>
+            <documentation>Marks an attribute as requested by the service.</documentation>
+          </annotation>
+        </attribute>
+        <attribute name="isRequired" type="boolean">
+          <annotation>
+            <documentation>Marks an attribute as required by the service.</documentation>
+          </annotation>
+        </attribute>
     </complexType>
     
     <complexType name="AttributeDecoderType" abstract="true">
                 <documentation>Flag controlling whether the resulting attribute should be exported for CGI use.</documentation>
             </annotation>
         </attribute>
+        <attribute name="hashAlg" type="am:string">
+            <annotation>
+                <documentation>
+                    Crypto-provider-specific name of hash algorithm to use,
+                    turning the decoded result into a simple string.
+                </documentation>
+            </annotation>
+        </attribute>
     </complexType>
     
     <complexType name="StringAttributeDecoder">
         </complexContent>
     </complexType>
 
-</schema>
\ No newline at end of file
+    <complexType name="KeyInfoAttributeDecoder">
+        <annotation>
+            <documentation>
+                Decoder for attributes with ds:KeyInfo values.
+            </documentation>
+        </annotation>
+        <complexContent>
+            <extension base="am:AttributeDecoderType">
+                <sequence>
+                    <element name="KeyInfoResolver" type="am:PluggableType" minOccurs="0"/>
+                </sequence>
+                <attribute name="hash" type="boolean">
+                    <annotation>
+                        <documentation>
+                            Flag controlling whether to hash keys before base64-encoding them.
+                        </documentation>
+                    </annotation>
+                </attribute>
+                <attribute name="keyInfoHashAlg" type="am:string">
+                    <annotation>
+                        <documentation>
+                            Crypto-provider-specific name of hash algorithm to use.
+                        </documentation>
+                    </annotation>
+                </attribute>
+            </extension>
+        </complexContent>
+    </complexType>
+
+    <complexType name="XMLAttributeDecoder">
+        <annotation>
+            <documentation>
+                Decoder for directly serializing XML values.
+            </documentation>
+        </annotation>
+        <complexContent>
+            <extension base="am:AttributeDecoderType"/>
+        </complexContent>
+    </complexType>
+
+    <complexType name="DOMAttributeDecoder">
+        <annotation>
+            <documentation>
+                Decoder for extracting information from XML values.
+            </documentation>
+        </annotation>
+        <complexContent>
+            <extension base="am:AttributeDecoderType">
+                <sequence>
+                    <element name="Mapping" minOccurs="0">
+                        <annotation>
+                            <documentation>Optional transform to turn qualified XML names into string names.</documentation>
+                        </annotation>
+                        <complexType>
+                            <attribute name="from" type="QName" use="required"/>
+                            <attribute name="to" type="am:string" use="required"/>
+                        </complexType>
+                    </element>
+                </sequence>
+                <attribute name="formatter" type="am:string">
+                    <annotation>
+                        <documentation>
+                            The pattern used to generate strings from the XML.
+                        </documentation>
+                    </annotation>
+                </attribute>
+            </extension>
+        </complexContent>
+    </complexType>
+
+    <complexType name="Base64AttributeDecoder">
+        <annotation>
+            <documentation>
+                Decoder for attributes with base64-encoded string values.
+            </documentation>
+        </annotation>
+        <complexContent>
+            <extension base="am:AttributeDecoderType" />
+        </complexContent>
+    </complexType>
+
+</schema>