Updated credentials schema.
[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:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:ds="http://www.w3.org/2000/09/xmldsig#" xmlns:credentials="urn:mace:shibboleth:credentials:1.0" elementFormDefault="qualified" attributeFormDefault="unqualified">
4         
5         <xs:import namespace="http://www.w3.org/2000/09/xmldsig#" schemaLocation="xmldsig-core-schema.xsd" />
6         
7         <xs:element name="Credentials">
8                 <xs:complexType>
9                         <xs:choice maxOccurs="unbounded">
10                                 <xs:element ref="ds:KeyInfo"/>
11                                 <xs:element name="KeyStoreResolver">
12                                         <xs:annotation>
13                                                 <xs:documentation>Pulls credentials from a Java keystore.</xs:documentation>
14                                         </xs:annotation>
15                                         <xs:complexType>
16                                                 <xs:complexContent>
17                                                         <xs:extension base="credentials:BaseCredentialFinder">
18                                                                 <xs:sequence>
19                                                                         <xs:element name="Path" type="xs:string"/>
20                                                                         <xs:element name="KeyAlias" type="xs:string"/>
21                                                                         <xs:element name="CertAlias" type="xs:string" minOccurs="0"/>
22                                                                         <xs:element name="StorePassword" type="xs:string"/>
23                                                                         <xs:element name="KeyPassword" type="xs:string" minOccurs="0"/>
24                                                                 </xs:sequence>
25                                                                 <xs:attribute name="storeType" type="xs:string" use="optional" default="JKS"/>
26                                                         </xs:extension>
27                                                 </xs:complexContent>
28                                         </xs:complexType>
29                                 </xs:element>
30                                 <xs:element name="FileResolver">
31                                         <xs:annotation>
32                                                 <xs:documentation>Pulls credentials from files.</xs:documentation>
33                                         </xs:annotation>
34                                         <xs:complexType>
35                                                 <xs:complexContent>
36                                                         <xs:extension base="credentials:BaseCredentialFinder">
37                                                                 <xs:sequence>
38                                                                         <xs:element name="Certificate">
39                                                                                 <xs:complexType>
40                                                                                         <xs:sequence>
41                                                                                                 <xs:element name="Path" type="xs:string"/>
42                                                                                         </xs:sequence>
43                                                                                         <xs:attribute name="format" type="xs:string" use="optional" default="PEM"/>
44                                                                                 </xs:complexType>
45                                                                         </xs:element>
46                                                                         <xs:element name="Key">
47                                                                                 <xs:complexType>
48                                                                                         <xs:sequence>
49                                                                                                 <xs:element name="Path" type="xs:string"/>
50                                                                                         </xs:sequence>
51                                                                                         <xs:attribute name="format" type="xs:string" use="optional" default="PEM"/>
52                                                                                         <xs:attribute name="password" type="xs:string" use="optional"/>
53                                                                                 </xs:complexType>
54                                                                         </xs:element>
55                                                                 </xs:sequence>
56                                                         </xs:extension>
57                                                 </xs:complexContent>
58                                         </xs:complexType>
59                                 </xs:element>
60                                 <xs:element name="CustomResolver">
61                                         <xs:annotation>
62                                                 <xs:documentation>Allows for specification of a Java class that loads credentials from a custom storage mechanism. </xs:documentation>
63                                         </xs:annotation>
64                                         <xs:complexType>
65                                                 <xs:complexContent>
66                                                         <xs:extension base="credentials:BaseCredentialFinder">
67                                                                 <xs:sequence>
68                                                                         <xs:any namespace="##any" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
69                                                                 </xs:sequence>
70                                                                 <xs:attribute name="class" type="xs:string" use="required"/>
71                                                                 <xs:anyAttribute namespace="##any"/>
72                                                         </xs:extension>
73                                                 </xs:complexContent>
74                                         </xs:complexType>
75                                 </xs:element>
76                         </xs:choice>
77                 </xs:complexType>
78         </xs:element>
79         <xs:complexType name="BaseCredentialFinder">
80                 <xs:attribute name="Id" type="xs:string" use="required"/>
81         </xs:complexType>
82 </xs:schema>