31352fd67c555dd905f790961c9df1ee297caf30
[java-idp.git] / src / schemas / credentials.xsd
1 <?xml version="1.0" encoding="UTF-8"?>
2 <!-- edited with XMLSPY v2004 rel. 2 U (http://www.xmlspy.com) by Walter F Hoehn, Jr (Columbia University in the City of New York) -->
3 <xs:schema targetNamespace="urn:mace:shibboleth:credentials:1.0" xmlns:credentials="urn:mace:shibboleth:credentials:1.0" xmlns:ds="http://www.w3.org/2000/09/xmldsig#" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" elementFormDefault="qualified" attributeFormDefault="unqualified">
4         <xs:import namespace="http://www.w3.org/2000/09/xmldsig#" schemaLocation="xmldsig-core-schema.xsd"/>
5         <xs:element name="Credentials">
6                 <xs:complexType>
7                         <xs:choice maxOccurs="unbounded">
8                                 <xs:element name="KeyStoreResolver">
9                                         <xs:annotation>
10                                                 <xs:documentation>Pulls credentials from a Java keystore.</xs:documentation>
11                                         </xs:annotation>
12                                         <xs:complexType>
13                                                 <xs:complexContent>
14                                                         <xs:extension base="credentials:BaseCredentialFinder">
15                                                                 <xs:sequence>
16                                                                         <xs:element name="Path" type="xs:string"/>
17                                                                         <xs:element name="KeyAlias" type="xs:string"/>
18                                                                         <xs:element name="CertAlias" type="xs:string" minOccurs="0"/>
19                                                                         <xs:element name="StorePassword" type="xs:string"/>
20                                                                         <xs:element name="KeyPassword" type="xs:string" minOccurs="0"/>
21                                                                 </xs:sequence>
22                                                                 <xs:attribute name="storeType" type="xs:string" use="optional" default="JKS"/>
23                                                         </xs:extension>
24                                                 </xs:complexContent>
25                                         </xs:complexType>
26                                 </xs:element>
27                                 <xs:element name="FileResolver">
28                                         <xs:annotation>
29                                                 <xs:documentation>Pulls credentials from files.</xs:documentation>
30                                         </xs:annotation>
31                                         <xs:complexType>
32                                                 <xs:complexContent>
33                                                         <xs:extension base="credentials:BaseCredentialFinder">
34                                                                 <xs:sequence>
35                                                                         <xs:element name="Key">
36                                                                                 <xs:complexType>
37                                                                                         <xs:sequence>
38                                                                                                 <xs:element name="Path" type="xs:string"/>
39                                                                                         </xs:sequence>
40                                                                                         <xs:attribute name="format" type="credentials:FormatType" use="optional" default="PEM"/>
41                                                                                         <xs:attribute name="password" type="xs:string" use="optional"/>
42                                                                                 </xs:complexType>
43                                                                         </xs:element>
44                                                                         <xs:element name="Certificate" minOccurs="0">
45                                                                                 <xs:complexType>
46                                                                                         <xs:sequence>
47                                                                                                 <xs:element name="Path" type="xs:string"/>
48                                                                                                 <xs:element name="CAPath" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
49                                                                                         </xs:sequence>
50                                                                                         <xs:attribute name="format" type="credentials:FormatType" use="optional" default="PEM"/>
51                                                                                         <xs:attribute name="password" type="xs:string" use="optional"/>
52                                                                                 </xs:complexType>
53                                                                         </xs:element>
54                                                                 </xs:sequence>
55                                                         </xs:extension>
56                                                 </xs:complexContent>
57                                         </xs:complexType>
58                                 </xs:element>
59                                 <xs:element name="CustomResolver">
60                                         <xs:annotation>
61                                                 <xs:documentation>Allows for specification of a Java class that loads credentials from a custom storage mechanism. </xs:documentation>
62                                         </xs:annotation>
63                                         <xs:complexType>
64                                                 <xs:complexContent>
65                                                         <xs:extension base="credentials:BaseCredentialFinder">
66                                                                 <xs:sequence>
67                                                                         <xs:any namespace="##any" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
68                                                                 </xs:sequence>
69                                                                 <xs:attribute name="class" type="xs:string" use="required"/>
70                                                                 <xs:anyAttribute namespace="##any"/>
71                                                         </xs:extension>
72                                                 </xs:complexContent>
73                                         </xs:complexType>
74                                 </xs:element>
75                         </xs:choice>
76                         <xs:anyAttribute namespace="##any" processContents="lax"/>
77                 </xs:complexType>
78         </xs:element>
79         <xs:simpleType name="FormatType">
80                 <xs:restriction base="xs:string">
81                         <xs:enumeration value="PEM"/>
82                         <xs:enumeration value="DER"/>
83                         <xs:enumeration value="PKCS12"/>
84                 </xs:restriction>
85         </xs:simpleType>
86         <xs:complexType name="BaseCredentialFinder">
87                 <xs:attribute name="Id" type="xs:string" use="required"/>
88         </xs:complexType>
89 </xs:schema>