More IdP cleanups. Beginning the move to new naming scheme in configs.
[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:element name="IdPConfig" type="idp:ShibbolethOriginConfig"/>
15
16         <xs:simpleType name="LevelType">
17                 <xs:restriction base="xs:string">
18                         <xs:enumeration value="OFF"/>
19                         <xs:enumeration value="FATAL"/>
20                         <xs:enumeration value="ERROR"/>
21                         <xs:enumeration value="WARN"/>
22                         <xs:enumeration value="INFO"/>
23                         <xs:enumeration value="DEBUG"/>
24                 </xs:restriction>
25         </xs:simpleType>
26
27         <xs:complexType name="LogWithLevels">
28                 <xs:attribute name="location" type="xs:anyURI" use="required" />
29                 <xs:attribute name="level" type="idp:LevelType" use="optional" default="WARN" />
30         </xs:complexType>
31
32         <xs:complexType name="Log">
33                 <xs:attribute name="location" type="xs:anyURI" use="required"/>
34         </xs:complexType>
35
36         <xs:simpleType name="Log4JConfigType">
37                 <xs:restriction base="xs:string">
38                         <xs:enumeration value="properties"/>
39                         <xs:enumeration value="xml"/>
40                 </xs:restriction>
41         </xs:simpleType>
42
43                 <xs:complexType name="ShibbolethOriginConfig">
44                         <xs:sequence>
45                                 <xs:sequence>
46                                         <xs:element name="RelyingParty" maxOccurs="unbounded">
47                                                 <xs:complexType>
48                                                         <xs:sequence minOccurs="0">
49                                                                 <xs:element name="HSNameFormat">
50                                                                         <xs:complexType>
51                                                                                 <xs:attribute name="nameMapping" type="xs:string" use="required"/>
52                                                                         </xs:complexType>
53                                                                 </xs:element>
54                                                         </xs:sequence>
55                                                         <xs:attribute name="name" type="xs:string" use="required"/>
56                                                         <xs:attribute name="providerId" type="xs:anyURI" use="optional"/>
57                                                         <xs:attribute name="signingCredential" type="xs:string" use="optional"/>
58                                                         <xs:attribute name="AAUrl" type="xs:anyURI" use="optional"/>
59                                                         <xs:attribute name="passThruErrors" type="xs:boolean" use="optional"/>
60                                                         <xs:attribute name="defaultAuthMethod" type="xs:string" use="optional"/>
61                                                 </xs:complexType>
62                                         </xs:element>
63                                 </xs:sequence>
64                                 <xs:element name="ReleasePolicyEngine" minOccurs="0">
65                                         <xs:complexType>
66                                                 <xs:sequence>
67                                                         <xs:element name="ArpRepository">
68                                                                 <xs:complexType>
69                                                                         <xs:sequence>
70                                                                                 <xs:any namespace="##any" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
71                                                                         </xs:sequence>
72                                                                         <xs:attribute name="implementation" type="xs:string" use="required"/>
73                                                                         <xs:anyAttribute namespace="##any" processContents="lax"/>
74                                                                 </xs:complexType>
75                                                         </xs:element>
76                                                 </xs:sequence>
77                                         </xs:complexType>
78                                 </xs:element>
79
80                                 <xs:element name="Logging" minOccurs="0" maxOccurs="1">
81                                         <xs:complexType>
82                                                 <xs:choice>
83                                                         <xs:sequence>
84                                                                 <xs:element name="ErrorLog" type="idp:LogWithLevels" minOccurs="0" maxOccurs="1" />
85                                                                 <xs:element name="TransactionLog" type="idp:Log" minOccurs="0" maxOccurs="1" />
86                                                         </xs:sequence>
87                                                         <xs:element name="Log4JConfig">
88                                                                 <xs:complexType>
89                                                                         <xs:attribute name="type" type="idp:Log4JConfigType" use="optional" default="properties" />
90                                                                         <xs:attribute name="location" type="xs:anyURI" use="required" />
91                                                                 </xs:complexType>
92                                                         </xs:element>
93                                                 </xs:choice>
94                                         </xs:complexType>
95                                 </xs:element>
96
97                                 <xs:sequence>
98                                         <xs:element ref="namemapper:NameMapping" maxOccurs="unbounded"/>
99                                 </xs:sequence>
100
101                                 <xs:element ref="credentials:Credentials"/>
102
103                                 <xs:element name="FederationProvider" minOccurs="0" maxOccurs="unbounded">
104                                         <xs:complexType>
105                                                 <xs:sequence>
106                                                         <xs:any namespace="##any" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
107                                                 </xs:sequence>
108                                                 <xs:attribute name="type" type="xs:string" use="required" />
109                                                 <xs:anyAttribute namespace="##any" processContents="lax"/>
110                                         </xs:complexType>
111                                 </xs:element>
112                         </xs:sequence>
113
114                         <xs:attribute name="resolverConfig" type="xs:string" use="optional" default="/conf/resolver.xml"/>
115                         <xs:attribute name="AAUrl" type="xs:anyURI" use="optional"/>
116                         <xs:attribute name="providerId" type="xs:anyURI" use="required"/>
117                         <xs:attribute name="defaultRelyingParty" type="xs:anyURI" use="required"/>
118                         <xs:attribute name="defaultAuthMethod" type="xs:string" use="optional" default="urn:oasis:names:tc:SAML:1.0:am:unspecified"/>
119                         <xs:attribute name="passThruErrors" type="xs:boolean" use="optional" default="false"/>
120                         <xs:attribute name="authHeaderName" type="xs:string" use="optional"/>
121                         <xs:attribute name="maxHSThreads" type="xs:integer" use="optional"/>
122                 </xs:complexType>
123
124 </xs:schema>