Regex functors, added regex options feature to schema.
[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
6     <annotation>
7         <documentation>
8             This schema maps SAML attributes into Shibboleth internal attributes.
9         </documentation>
10     </annotation>
11
12     <simpleType name="string">
13         <restriction base="string">
14             <minLength value="1"/>
15         </restriction>
16     </simpleType>
17     
18     <element name="Attributes">
19         <annotation>
20             <documentation>The set of SAML 1/2 attribute mappings.</documentation>
21         </annotation>
22         <complexType>
23             <sequence>
24                 <element name="Attribute" type="am:AttributeType" maxOccurs="unbounded"/>
25             </sequence>
26         </complexType>
27     </element>
28
29     <complexType name="AttributeType">
30         <annotation>
31             <documentation>Rule for mapping a SAML 1/2 attribute to an internal attribute.</documentation>
32         </annotation>
33         <sequence>
34             <element name="AttributeDecoder" type="am:AttributeDecoderType" minOccurs="0"/>
35         </sequence>
36         <attribute name="id" type="am:string" use="required">
37             <annotation>
38                 <documentation>The internal attribute ID to which this SAML attribute maps.</documentation>
39             </annotation>
40         </attribute>
41         <attribute name="name" type="am:string" use="required">
42             <annotation>
43                 <documentation>The SAML 1 AttributeName or SAML 2 Name of the attribute.</documentation>
44             </annotation>
45         </attribute>
46         <attribute name="nameFormat" type="am:string">
47             <annotation>
48                 <documentation>The SAML 1 Namespace or SAML 2 NameFormat of the attribute.</documentation>
49             </annotation>
50         </attribute>
51     </complexType>
52     
53     <complexType name="AttributeDecoderType" abstract="true">
54         <annotation>
55             <documentation>
56                 Decodes a SAML attribute into its Shibboleth-internal representation.
57             </documentation>
58         </annotation>
59         <attribute name="caseSensitive" type="boolean" default="true">
60             <annotation>
61                 <documentation>
62                     Flag controlling case sensitivity when comparisons to the attribute's values are done.
63                 </documentation>
64             </annotation>
65         </attribute>
66     </complexType>
67     
68     <complexType name="StringAttributeDecoder">
69         <annotation>
70             <documentation>
71                 Decoder for attributes with string values.
72             </documentation>
73         </annotation>
74         <complexContent>
75             <extension base="am:AttributeDecoderType" />
76         </complexContent>
77     </complexType>
78
79     <complexType name="ScopedAttributeDecoder">
80         <annotation>
81             <documentation>
82                 Decoder for attributes with scoped values.
83             </documentation>
84         </annotation>
85         <complexContent>
86             <extension base="am:AttributeDecoderType">
87                 <attribute name="scopeDelimiter" type="am:string" default="@">
88                     <annotation>
89                         <documentation>
90                             The character(s) used to delimit the scoped information from the scope.
91                         </documentation>
92                     </annotation>
93                 </attribute>
94             </extension>
95         </complexContent>
96     </complexType>
97     
98     <complexType name="NameIDAttributeDecoder">
99         <annotation>
100             <documentation>
101                 Decoder for attributes with NameID values.
102             </documentation>
103         </annotation>
104         <complexContent>
105             <extension base="am:AttributeDecoderType">
106                 <attribute name="formatter" type="am:string" default="$Name!!$NameQualifier!!$SPNameQualifier">
107                     <annotation>
108                         <documentation>
109                             The pattern used to generate string versions of the attribute's values.
110                         </documentation>
111                     </annotation>
112                 </attribute>
113             </extension>
114         </complexContent>
115     </complexType>
116
117 </schema>