3e9498f097d7890fb47189c3e91b23d16e3ab195
[java-idp.git] / src / schemas / origin.xsd
1 <?xml version="1.0" encoding="UTF-8"?>
2 <xs:schema 
3         targetNamespace="urn:mace:shibboleth:origin: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:origin="urn:mace:shibboleth:origin: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="origin:LevelType" use="optional" default="WARN" />
28         </xs:complexType>
29
30         <xs:complexType name="Log">
31                 <xs:attribute name="location" type="xs:anyURI" use="required"/>
32         </xs:complexType>
33
34         <xs:simpleType name="Log4JConfigType">
35                 <xs:restriction base="xs:string">
36                         <xs:enumeration value="properties"/>
37                         <xs:enumeration value="xml"/>
38                 </xs:restriction>
39         </xs:simpleType>
40
41         <xs:element name="ShibbolethOriginConfig">
42                 <xs:annotation>
43                         <xs:documentation>Configures the Shibboleth Origin software.</xs:documentation>
44                 </xs:annotation>
45                 <xs:complexType>
46                         <xs:sequence>
47                                 <xs:sequence>
48                                         <xs:element name="RelyingParty" maxOccurs="unbounded">
49                                                 <xs:complexType>
50                                                         <xs:sequence minOccurs="0">
51                                                                 <xs:element name="HSNameFormat">
52                                                                         <xs:complexType>
53                                                                                 <xs:attribute name="nameMapping" type="xs:string" use="required"/>
54                                                                         </xs:complexType>
55                                                                 </xs:element>
56                                                         </xs:sequence>
57                                                         <xs:attribute name="name" type="xs:string" use="required"/>
58                                                         <xs:attribute name="providerId" type="xs:anyURI" use="optional"/>
59                                                         <xs:attribute name="signingCredential" type="xs:string" use="optional"/>
60                                                         <xs:attribute name="AASigningCredential" type="xs:string" use="optional"/>
61                                                         <xs:attribute name="signAuthResponses" type="xs:boolean" use="optional" default="true"/>
62                                                         <xs:attribute name="signAuthAssertions" type="xs:boolean" use="optional" default="false"/>
63                                                         <xs:attribute name="signAttrAssertions" type="xs:boolean" use="optional" default="false"/>
64                                                         <xs:attribute name="signAttrResponses" type="xs:boolean" use="optional" default="false"/>
65                                                         <xs:attribute name="AAUrl" type="xs:anyURI" use="optional"/>
66                                                         <xs:attribute name="passThruErrors" type="xs:boolean" use="optional"/>
67                                                         <xs:attribute name="defaultAuthMethod" type="xs:string" use="optional"/>
68                                                 </xs:complexType>
69                                         </xs:element>
70                                 </xs:sequence>
71                                 <xs:element name="ReleasePolicyEngine" minOccurs="0">
72                                         <xs:complexType>
73                                                 <xs:sequence>
74                                                         <xs:element name="ArpRepository">
75                                                                 <xs:complexType>
76                                                                         <xs:sequence>
77                                                                                 <xs:any namespace="##any" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
78                                                                         </xs:sequence>
79                                                                         <xs:attribute name="implementation" type="xs:string" use="required"/>
80                                                                         <xs:anyAttribute namespace="##any" processContents="lax"/>
81                                                                 </xs:complexType>
82                                                         </xs:element>
83                                                 </xs:sequence>
84                                         </xs:complexType>
85                                 </xs:element>
86
87                                 <xs:element name="Logging" minOccurs="0" maxOccurs="1">
88                                         <xs:complexType>
89                                                 <xs:choice>
90                                                         <xs:sequence>
91                                                                 <xs:element name="ErrorLog" type="origin:LogWithLevels" minOccurs="0" maxOccurs="1" />
92                                                                 <xs:element name="TransactionLog" type="origin:Log" minOccurs="0" maxOccurs="1" />
93                                                         </xs:sequence>
94                                                         <xs:element name="Log4JConfig">
95                                                                 <xs:complexType>
96                                                                         <xs:attribute name="type" type="origin:Log4JConfigType" use="optional" default="properties" />
97                                                                         <xs:attribute name="location" type="xs:anyURI" use="required" />
98                                                                 </xs:complexType>
99                                                         </xs:element>
100                                                 </xs:choice>
101                                         </xs:complexType>
102                                 </xs:element>
103
104                                 <xs:sequence>
105                                         <xs:element ref="namemapper:NameMapping" maxOccurs="unbounded"/>
106                                 </xs:sequence>
107
108                                 <xs:element ref="credentials:Credentials"/>
109
110                                 <xs:element name="FederationProvider" minOccurs="0" maxOccurs="unbounded">
111                                         <xs:complexType>
112                                                 <xs:sequence>
113                                                         <xs:any namespace="##any" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
114                                                 </xs:sequence>
115                                                 <xs:attribute name="type" type="xs:string" use="required" />
116                                                 <xs:anyAttribute namespace="##any" processContents="lax"/>
117                                         </xs:complexType>
118                                 </xs:element>
119                         </xs:sequence>
120
121                         <xs:attribute name="resolverConfig" type="xs:string" use="optional" default="/conf/resolver.xml"/>
122                         <xs:attribute name="AAUrl" type="xs:anyURI" use="optional"/>
123                         <xs:attribute name="providerId" type="xs:anyURI" use="required"/>
124                         <xs:attribute name="defaultRelyingParty" type="xs:anyURI" use="required"/>
125                         <xs:attribute name="defaultAuthMethod" type="xs:string" use="optional" default="urn:oasis:names:tc:SAML:1.0:am:unspecified"/>
126                         <xs:attribute name="passThruErrors" type="xs:boolean" use="optional" default="false"/>
127                         <xs:attribute name="authHeaderName" type="xs:string" use="optional"/>
128                         <xs:attribute name="maxHSThreads" type="xs:integer" use="optional"/>
129                 </xs:complexType>
130         </xs:element>
131
132 </xs:schema>