Added singleAssertion option.
[java-idp.git] / src / schemas / shibboleth-idpconfig-1.0.xsd
1 <?xml version="1.0" encoding="UTF-8"?>
2 <xs:schema 
3         targetNamespace="urn:mace:shibboleth:idp:config:1.0" 
4         xmlns:xs="http://www.w3.org/2001/XMLSchema" 
5         xmlns:credentials="urn:mace:shibboleth:credentials:1.0" 
6         xmlns:namemapper="urn:mace:shibboleth:namemapper:1.0" 
7         xmlns:idp="urn:mace:shibboleth:idp:config:1.0" 
8         elementFormDefault="qualified" 
9         attributeFormDefault="unqualified">
10
11         <xs:import namespace="urn:mace:shibboleth:credentials:1.0" schemaLocation="credentials.xsd"/>
12         <xs:import namespace="urn:mace:shibboleth:namemapper:1.0" schemaLocation="namemapper.xsd"/>
13
14         <xs:simpleType name="LevelType">
15                 <xs:restriction base="xs:string">
16                         <xs:enumeration value="OFF"/>
17                         <xs:enumeration value="FATAL"/>
18                         <xs:enumeration value="ERROR"/>
19                         <xs:enumeration value="WARN"/>
20                         <xs:enumeration value="INFO"/>
21                         <xs:enumeration value="DEBUG"/>
22                 </xs:restriction>
23         </xs:simpleType>
24
25         <xs:complexType name="LogWithLevels">
26                 <xs:attribute name="location" type="xs:anyURI" use="required" />
27                 <xs:attribute name="level" type="idp:LevelType" use="optional" />
28         </xs:complexType>
29
30         <xs:simpleType name="Log4JConfigType">
31                 <xs:restriction base="xs:string">
32                         <xs:enumeration value="properties"/>
33                         <xs:enumeration value="xml"/>
34                 </xs:restriction>
35         </xs:simpleType>
36
37                 <xs:element name="IdPConfig">
38                         <xs:complexType>
39                                 <xs:sequence>
40                                         <xs:sequence>
41                                                 <xs:element name="RelyingParty" maxOccurs="unbounded">
42                                                         <xs:complexType>
43                                                                 <xs:sequence minOccurs="0" maxOccurs="unbounded">
44                                                                         <xs:element name="NameID">
45                                                                                 <xs:complexType>
46                                                                                         <xs:attribute name="nameMapping" type="xs:string" use="required"/>
47                                                                                 </xs:complexType>
48                                                                         </xs:element>
49                                                                 </xs:sequence>
50                                                                 <xs:attribute name="name" type="xs:string" use="required"/>
51                                                                 <xs:attribute name="providerId" type="xs:anyURI" use="optional"/>
52                                                                 <xs:attribute name="signingCredential" type="xs:string" use="optional"/>
53                                                                 <xs:attribute name="AAUrl" type="xs:anyURI" use="optional"/>
54                                                                 <xs:attribute name="passThruErrors" type="xs:boolean" use="optional"/>
55                                                                 <xs:attribute name="forceAttributePush" type="xs:boolean" use="optional"/>
56                                                                 <xs:attribute name="signAssertions" type="xs:boolean" use="optional"/>
57                                                                 <xs:attribute name="forceAttributeNoPush" type="xs:boolean" use="optional"/>
58                                                                 <xs:attribute name="singleAssertion" type="xs:boolean" use="optional"/>
59                                                                 <xs:attribute name="defaultToPOSTProfile" type="xs:boolean" use="optional"/>
60                                                                 <xs:attribute name="schemaHack" type="xs:boolean" use="optional"/>
61                                                                 <xs:attribute name="defaultAuthMethod" type="xs:string" use="optional"/>
62                                                                 <xs:attribute name="preferredArtifactType" type="xs:integer" use="optional"/>
63                                                                 <xs:attribute name="defaultTarget" type="xs:string" use="optional"/>
64                                                         </xs:complexType>
65                                                 </xs:element>
66                                         </xs:sequence>
67                                         <xs:element name="ReleasePolicyEngine" minOccurs="0">
68                                                 <xs:complexType>
69                                                         <xs:sequence>
70                                                                 <xs:element name="ArpRepository">
71                                                                         <xs:complexType>
72                                                                                 <xs:sequence>
73                                                                                         <xs:any namespace="##any" processContents="lax" minOccurs="0" 
74                                                                                                 maxOccurs="unbounded"/>
75                                                                                 </xs:sequence>
76                                                                                 <xs:attribute name="implementation" type="xs:string" use="required"/>
77                                                                                 <xs:anyAttribute namespace="##any" processContents="lax"/>
78                                                                         </xs:complexType>
79                                                                 </xs:element>
80                                                         </xs:sequence>
81                                                 </xs:complexType>
82                                         </xs:element>
83                                         <xs:element name="Logging" minOccurs="0" maxOccurs="1">
84                                                 <xs:complexType>
85                                                         <xs:choice>
86                                                                 <xs:sequence>
87                                                                         <xs:element name="ErrorLog" type="idp:LogWithLevels" minOccurs="0" maxOccurs="1" />
88                                                                         <xs:element name="TransactionLog" type="idp:LogWithLevels" minOccurs="0" 
89                                                                                 maxOccurs="1" />
90                                                                 </xs:sequence>
91                                                                 <xs:element name="Log4JConfig">
92                                                                         <xs:complexType>
93                                                                                 <xs:attribute name="type" type="idp:Log4JConfigType" use="optional" 
94                                                                                         default="properties" />
95                                                                                 <xs:attribute name="location" type="xs:anyURI" use="required" />
96                                                                         </xs:complexType>
97                                                                 </xs:element>
98                                                         </xs:choice>
99                                                 </xs:complexType>
100                                         </xs:element>
101                                         <xs:sequence>
102                                                 <xs:element ref="namemapper:NameMapping" maxOccurs="unbounded"/>
103                                         </xs:sequence>
104                                         <xs:element name="ArtifactMapper" minOccurs="0" maxOccurs="1">
105                                                 <xs:complexType>
106                                                         <xs:sequence>
107                                                                 <xs:any namespace="##any" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
108                                                         </xs:sequence>
109                                                         <xs:attribute name="implementation" type="xs:string" use="required"/>
110                                                         <xs:anyAttribute namespace="##any" processContents="lax"/>
111                                                 </xs:complexType>
112                                         </xs:element>
113                                         <xs:element ref="credentials:Credentials"/>
114                                         <xs:element name="ProtocolHandler" minOccurs="0" maxOccurs="unbounded">
115                                                 <xs:complexType>
116                                                         <xs:sequence>
117                                                                 <xs:element name="Location" type="xs:string" minOccurs="1" maxOccurs="unbounded" />
118                                                                 <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
119                                                         </xs:sequence>
120                                                         <xs:attribute name="implementation" type="xs:string" use="required" />
121                                                         <xs:anyAttribute namespace="##any" processContents="lax"/>
122                                                 </xs:complexType>
123                                         </xs:element>
124                                         <xs:element name="MetadataProvider" minOccurs="0" maxOccurs="unbounded">
125                                                 <xs:complexType>
126                                                         <xs:sequence>
127                                                                 <xs:any namespace="##any" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
128                                                         </xs:sequence>
129                                                         <xs:attribute name="type" type="xs:string" use="required" />
130                                                         <xs:anyAttribute namespace="##any" processContents="lax"/>
131                                                 </xs:complexType>
132                                         </xs:element>
133                                 </xs:sequence>
134                                 <xs:attribute name="resolverConfig" type="xs:string" use="optional" default="/conf/resolver.xml"/>
135                                 <xs:attribute name="AAUrl" type="xs:anyURI" use="optional"/>
136                                 <xs:attribute name="providerId" type="xs:anyURI" use="required"/>
137                                 <xs:attribute name="defaultRelyingParty" type="xs:anyURI" use="required"/>
138                                 <xs:attribute name="defaultAuthMethod" type="xs:string" use="optional" 
139                                         default="urn:oasis:names:tc:SAML:1.0:am:unspecified"/>
140                                 <xs:attribute name="passThruErrors" type="xs:boolean" use="optional" default="false"/>
141                                 <xs:attribute name="authHeaderName" type="xs:string" use="optional"/>
142                                 <xs:attribute name="maxSigningThreads" type="xs:integer" use="optional"/>
143                         </xs:complexType>
144                 </xs:element>
145
146 </xs:schema>