Completed Type 2 artifact support.
[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:IdPConfigType"/>
15         <xs:element name="ShibbolethOriginConfig" type="idp:IdPConfigType"/>
16         
17         <xs:simpleType name="LevelType">
18                 <xs:restriction base="xs:string">
19                         <xs:enumeration value="OFF"/>
20                         <xs:enumeration value="FATAL"/>
21                         <xs:enumeration value="ERROR"/>
22                         <xs:enumeration value="WARN"/>
23                         <xs:enumeration value="INFO"/>
24                         <xs:enumeration value="DEBUG"/>
25                 </xs:restriction>
26         </xs:simpleType>
27
28         <xs:complexType name="LogWithLevels">
29                 <xs:attribute name="location" type="xs:anyURI" use="required" />
30                 <xs:attribute name="level" type="idp:LevelType" use="optional" default="WARN" />
31         </xs:complexType>
32
33         <xs:complexType name="Log">
34                 <xs:attribute name="location" type="xs:anyURI" use="required"/>
35         </xs:complexType>
36
37         <xs:simpleType name="Log4JConfigType">
38                 <xs:restriction base="xs:string">
39                         <xs:enumeration value="properties"/>
40                         <xs:enumeration value="xml"/>
41                 </xs:restriction>
42         </xs:simpleType>
43
44                 <xs:complexType name="IdPConfigType">
45                         <xs:sequence>
46                                 <xs:sequence>
47                                         <xs:element name="RelyingParty" maxOccurs="unbounded">
48                                                 <xs:complexType>
49                                                         <xs:sequence minOccurs="0">
50                                                                 <xs:element name="HSNameFormat">
51                                                                         <xs:complexType>
52                                                                                 <xs:attribute name="nameMapping" type="xs:string" use="required"/>
53                                                                         </xs:complexType>
54                                                                 </xs:element>
55                                                         </xs:sequence>
56                                                         <xs:attribute name="name" type="xs:string" use="required"/>
57                                                         <xs:attribute name="providerId" type="xs:anyURI" use="optional"/>
58                                                         <xs:attribute name="signingCredential" type="xs:string" use="optional"/>
59                                                         <xs:attribute name="AAUrl" type="xs:anyURI" use="optional"/>
60                                                         <xs:attribute name="passThruErrors" type="xs:boolean" use="optional"/>
61                                                         <xs:attribute name="forceAttributePush" type="xs:boolean" use="optional"/>
62                                                         <xs:attribute name="signAssertions" type="xs:boolean" use="optional"/>
63                                                         <xs:attribute name="forceAttributeNoPush" type="xs:boolean" use="optional"/>
64                                                         <xs:attribute name="defaultToPOSTProfile" type="xs:boolean" use="optional"/>
65                                                         <xs:attribute name="defaultAuthMethod" type="xs:string" use="optional"/>
66                                                         <xs:attribute name="preferredArtifactType" type="xs:integer" use="optional"/>
67                                                 </xs:complexType>
68                                         </xs:element>
69                                 </xs:sequence>
70                                 <xs:element name="ReleasePolicyEngine" minOccurs="0">
71                                         <xs:complexType>
72                                                 <xs:sequence>
73                                                         <xs:element name="ArpRepository">
74                                                                 <xs:complexType>
75                                                                         <xs:sequence>
76                                                                                 <xs:any namespace="##any" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
77                                                                         </xs:sequence>
78                                                                         <xs:attribute name="implementation" type="xs:string" use="required"/>
79                                                                         <xs:anyAttribute namespace="##any" processContents="lax"/>
80                                                                 </xs:complexType>
81                                                         </xs:element>
82                                                 </xs:sequence>
83                                         </xs:complexType>
84                                 </xs:element>
85
86                                 <xs:element name="Logging" minOccurs="0" maxOccurs="1">
87                                         <xs:complexType>
88                                                 <xs:choice>
89                                                         <xs:sequence>
90                                                                 <xs:element name="ErrorLog" type="idp:LogWithLevels" minOccurs="0" maxOccurs="1" />
91                                                                 <xs:element name="TransactionLog" type="idp:Log" minOccurs="0" maxOccurs="1" />
92                                                         </xs:sequence>
93                                                         <xs:element name="Log4JConfig">
94                                                                 <xs:complexType>
95                                                                         <xs:attribute name="type" type="idp:Log4JConfigType" use="optional" default="properties" />
96                                                                         <xs:attribute name="location" type="xs:anyURI" use="required" />
97                                                                 </xs:complexType>
98                                                         </xs:element>
99                                                 </xs:choice>
100                                         </xs:complexType>
101                                 </xs:element>
102
103                                 <xs:sequence>
104                                         <xs:element ref="namemapper:NameMapping" maxOccurs="unbounded"/>
105                                 </xs:sequence>
106                                 
107                                 <xs:element name="ArtifactMapper" minOccurs="0" maxOccurs="1">
108                                         <xs:complexType>
109                                                 <xs:sequence>
110                                                         <xs:any namespace="##any" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
111                                                 </xs:sequence>
112                                                 <xs:attribute name="implementation" type="xs:string" use="required"/>
113                                                 <xs:anyAttribute namespace="##any" processContents="lax"/>
114                                         </xs:complexType>
115                                 </xs:element>
116
117                                 <xs:element ref="credentials:Credentials"/>
118
119                                 <xs:element name="ProtocolHandler" minOccurs="0" maxOccurs="unbounded">
120                                         <xs:complexType>
121                                                 <xs:sequence>
122                                                         <xs:element name="Location" type="xs:anyURI" minOccurs="1" maxOccurs="unbounded" />
123                                                         <xs:any namespace="##any" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
124                                                 </xs:sequence>
125                                                 <xs:attribute name="implementation" type="xs:string" use="required" />
126                                                 <xs:anyAttribute namespace="##any" processContents="lax"/>
127                                         </xs:complexType>
128                                 </xs:element>
129
130                                 <xs:element name="FederationProvider" minOccurs="0" maxOccurs="unbounded">
131                                         <xs:complexType>
132                                                 <xs:sequence>
133                                                         <xs:any namespace="##any" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
134                                                 </xs:sequence>
135                                                 <xs:attribute name="type" type="xs:string" use="required" />
136                                                 <xs:anyAttribute namespace="##any" processContents="lax"/>
137                                         </xs:complexType>
138                                 </xs:element>
139                                 
140                         </xs:sequence>
141
142                         <xs:attribute name="resolverConfig" type="xs:string" use="optional" default="/conf/resolver.xml"/>
143                         <xs:attribute name="AAUrl" type="xs:anyURI" use="optional"/>
144                         <xs:attribute name="providerId" type="xs:anyURI" use="required"/>
145                         <xs:attribute name="defaultRelyingParty" type="xs:anyURI" use="required"/>
146                         <xs:attribute name="defaultAuthMethod" type="xs:string" use="optional" default="urn:oasis:names:tc:SAML:1.0:am:unspecified"/>
147                         <xs:attribute name="passThruErrors" type="xs:boolean" use="optional" default="false"/>
148                         <xs:attribute name="authHeaderName" type="xs:string" use="optional"/>
149                         <xs:attribute name="maxHSThreads" type="xs:integer" use="optional"/>
150                 </xs:complexType>
151
152 </xs:schema>