5829c790b49872b7b0c71e40c1c82581105f381c
[java-idp.git] / src / schemas / shibboleth.xsd
1 <?xml version="1.0" encoding="US-ASCII"?>
2 <schema targetNamespace="urn:mace:shibboleth:1.0" xmlns="http://www.w3.org/2001/XMLSchema" xmlns:ds="http://www.w3.org/2000/09/xmldsig#" xmlns:xml="http://www.w3.org/XML/1998/namespace" xmlns:shib="urn:mace:shibboleth:1.0" elementFormDefault="qualified" attributeFormDefault="unqualified">
3     <import namespace="http://www.w3.org/2000/09/xmldsig#" schemaLocation="http://www.w3.org/TR/xmldsig-core/xmldsig-core-schema.xsd"/>
4     <import namespace="http://www.w3.org/XML/1998/namespace" schemaLocation="http://www.w3.org/2001/xml.xsd"/>
5     
6     <element name="RealTimeReleaseURL" type="anyURI">
7         <annotation> 
8           <documentation xml:lang="en">Used by AA in samlp:StatusDetail to signal user wants real-time attribute release.</documentation>
9         </annotation>
10     </element>
11     
12     <!--
13     The following SAML sub-status codes are defined in this namespace:
14     
15         "RealTimeRelease"
16             Used with samlp:Responder, signals user wants real-time attribute release
17         
18         "InvalidHandle"
19             Used with samlp:Requester, signals AA did not recognize handle as valid
20     -->
21     
22     <complexType name="SiteType">
23         <annotation> 
24           <documentation xml:lang="en">All sites have a Name attribute, plus optional i18n-ized aliases.</documentation>
25         </annotation>
26         <sequence>
27             <element name="Alias" minOccurs="0" maxOccurs="unbounded">
28                 <complexType>
29                     <simpleContent>
30                         <extension base="string">
31                             <attribute ref="xml:lang"/>
32                         </extension>
33                     </simpleContent>
34                 </complexType>
35             </element>
36         </sequence>
37         <attribute name="Name" type="string" use="required"/>
38     </complexType>
39
40     <complexType name="regexp_string">
41         <annotation> 
42           <documentation xml:lang="en">A string element with an optional attribute signaling regexp content.</documentation>
43         </annotation>
44         <simpleContent>
45             <extension base="string">
46                 <attribute name="regexp" type="boolean" use="optional" default="false"/>
47             </extension>
48         </simpleContent>
49     </complexType>    
50
51     <complexType name="OriginSiteType">
52         <annotation> 
53           <documentation xml:lang="en">Origin sites add at least one handle service (with a name and optional KeyInfo), plus optional domains trusted for attribute scoping.</documentation>
54         </annotation>
55         <complexContent>
56             <extension base="shib:SiteType">
57                 <sequence>
58                     <element name="HandleService" maxOccurs="unbounded">
59                         <complexType>
60                             <sequence>
61                                 <element ref="ds:KeyInfo" minOccurs="0"/>
62                             </sequence>
63                             <attribute name="Name" type="string" use="required"/>
64                             <attribute name="Location" type="anyURI" use="required"/>
65                         </complexType>
66                     </element>
67                     <element name="Domain" type="shib:regexp_string" minOccurs="0" maxOccurs="unbounded"/>
68                 </sequence>
69             </extension>
70         </complexContent>
71     </complexType>
72
73     <complexType name="SiteGroupType">
74             <annotation> 
75           <documentation xml:lang="en">Used to logically group sites together.</documentation>
76         </annotation>
77         <sequence>
78             <choice maxOccurs="unbounded">
79                 <element ref="shib:OriginSite"/>
80                 <element ref="shib:DestinationSite"/>
81                 <element ref="shib:SiteGroup"/>
82             </choice>
83         </sequence>
84         <attribute name="Name" type="string" use="required"/>
85     </complexType>    
86
87     <element name="OriginSite" type="shib:OriginSiteType"/>
88     <element name="DestinationSite" type="shib:SiteType"/>
89     <element name="SiteGroup" type="shib:SiteGroupType"/>
90
91     <element name="Sites">
92         <annotation> 
93           <documentation xml:lang="en">The registry of sites plus an optional enveloped signature.</documentation>
94         </annotation>
95         <complexType>
96             <sequence>
97                 <choice maxOccurs="unbounded">
98                     <element ref="shib:OriginSite"/>
99                     <element ref="shib:DestinationSite"/>
100                     <element ref="shib:SiteGroup"/>
101                 </choice>
102                 <element ref="ds:Signature" minOccurs="0"/>
103             </sequence>
104         </complexType>
105     </element>
106 </schema>