Renamed Applications/Application tags.
[shibboleth/sp.git] / schemas / shibboleth-2.0-attribute-map.xsd
1 <?xml version="1.0" encoding="UTF-8"?>
2 <schema targetNamespace="urn:mace:shibboleth:2.0:attribute-map"
3         xmlns="http://www.w3.org/2001/XMLSchema"
4         xmlns:am="urn:mace:shibboleth:2.0:attribute-map"
5         elementFormDefault="qualified">
6
7     <annotation>
8         <documentation>
9             This schema maps SAML attributes into Shibboleth internal attributes.
10         </documentation>
11     </annotation>
12
13     <simpleType name="string">
14         <restriction base="string">
15             <minLength value="1"/>
16         </restriction>
17     </simpleType>
18
19     <simpleType name="listOfStrings">
20         <list itemType="am:string"/>
21     </simpleType>
22     
23     <element name="Attributes">
24         <annotation>
25             <documentation>The set of SAML 1/2 attribute mappings.</documentation>
26         </annotation>
27         <complexType>
28             <sequence>
29                 <element name="Attribute" type="am:AttributeType" maxOccurs="unbounded"/>
30             </sequence>
31         </complexType>
32     </element>
33
34     <complexType name="AttributeType">
35         <annotation>
36             <documentation>Rule for mapping a SAML 1/2 attribute to an internal attribute.</documentation>
37         </annotation>
38         <sequence>
39             <element name="AttributeDecoder" type="am:AttributeDecoderType" minOccurs="0"/>
40         </sequence>
41         <attribute name="id" type="am:string" use="required">
42             <annotation>
43                 <documentation>The internal attribute ID to which this SAML attribute maps.</documentation>
44             </annotation>
45         </attribute>
46         <attribute name="aliases" type="am:listOfStrings">
47             <annotation>
48                 <documentation>Optional aliases for the internal attribute to which this SAML attribute maps.</documentation>
49             </annotation>
50         </attribute>
51         <attribute name="name" type="am:string" use="required">
52             <annotation>
53                 <documentation>The SAML 1 AttributeName or SAML 2 Name of the attribute.</documentation>
54             </annotation>
55         </attribute>
56         <attribute name="nameFormat" type="am:string">
57             <annotation>
58                 <documentation>The SAML 1 Namespace or SAML 2 NameFormat of the attribute.</documentation>
59             </annotation>
60         </attribute>
61     </complexType>
62     
63     <complexType name="AttributeDecoderType" abstract="true">
64         <annotation>
65             <documentation>
66                 Decodes a SAML attribute into its Shibboleth-internal representation.
67             </documentation>
68         </annotation>
69         <attribute name="caseSensitive" type="boolean" default="true">
70             <annotation>
71                 <documentation>
72                     Flag controlling case sensitivity when comparisons to the attribute's values are done.
73                 </documentation>
74             </annotation>
75         </attribute>
76     </complexType>
77     
78     <complexType name="StringAttributeDecoder">
79         <annotation>
80             <documentation>
81                 Decoder for attributes with string values.
82             </documentation>
83         </annotation>
84         <complexContent>
85             <extension base="am:AttributeDecoderType" />
86         </complexContent>
87     </complexType>
88
89     <complexType name="ScopedAttributeDecoder">
90         <annotation>
91             <documentation>
92                 Decoder for attributes with scoped values.
93             </documentation>
94         </annotation>
95         <complexContent>
96             <extension base="am:AttributeDecoderType">
97                 <attribute name="scopeDelimiter" type="am:string" default="@">
98                     <annotation>
99                         <documentation>
100                             The character(s) used to delimit the scoped information from the scope.
101                         </documentation>
102                     </annotation>
103                 </attribute>
104             </extension>
105         </complexContent>
106     </complexType>
107     
108     <complexType name="NameIDAttributeDecoder">
109         <annotation>
110             <documentation>
111                 Decoder for attributes with NameID values.
112             </documentation>
113         </annotation>
114         <complexContent>
115             <extension base="am:AttributeDecoderType">
116                 <attribute name="formatter" type="am:string" default="$Name!!$NameQualifier!!$SPNameQualifier">
117                     <annotation>
118                         <documentation>
119                             The pattern used to generate string versions of the attribute's values.
120                         </documentation>
121                     </annotation>
122                 </attribute>
123             </extension>
124         </complexContent>
125     </complexType>
126
127 </schema>