Added regexp attribute to Domain elements.
[shibboleth/sp.git] / 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>Used by AA in samlp:StatusDetail to signal user wants real-time attribute release.</annotation>
8     </element>
9     
10     <!--
11     The following SAML sub-status codes are defined in this namespace:
12     
13         "RealTimeRelease"
14             Used with samlp:Responder, signals user wants real-time attribute release
15         
16         "InvalidHandle"
17             Used with samlp:Requester, signals AA did not recognize handle as valid
18     -->
19     
20     <complexType name="SiteType">
21         <annotation> All sites have a Name attribute, plus optional i18n-ized aliases. </annotation>
22         <sequence>
23             <element name="Alias" minOccurs="0" maxOccurs="unbounded">
24                 <complexType>
25                     <simpleContent>
26                         <extension base="string">
27                             <attribute ref="xml:lang"/>
28                         </extension>
29                     </simpleContent>
30                 </complexType>
31             </element>
32         </sequence>
33         <attribute name="Name" type="string" use="required"/>
34     </complexType>
35
36     <complexType name="regexp_string">
37         <annotation> A string element with an optional attribute signaling regexp content. </annotation>
38         <simpleContent>
39             <extension base="string">
40                 <attribute name="regexp" type="boolean" use="optional" default="false"/>
41             </extension>
42         </simpleContent>
43     </complexType>    
44
45     <complexType name="OriginSiteType">
46         <annotation>Origin sites add at least one handle service (with a name and optional KeyInfo), plus optional domains trusted for attribute scoping.</annotation>
47         <complexContent>
48             <extension base="shib:SiteType">
49                 <sequence>
50                     <element name="HandleService" maxOccurs="unbounded">
51                         <complexType>
52                             <sequence>
53                                 <element ref="ds:KeyInfo" minOccurs="0"/>
54                             </sequence>
55                             <attribute name="Name" type="string" use="required"/>
56                             <attribute name="Location" type="anyURI" use="required"/>
57                         </complexType>
58                     </element>
59                     <element name="Domain" type="shib:regexp_string" minOccurs="0" maxOccurs="unbounded"/>
60                 </sequence>
61             </extension>
62         </complexContent>
63     </complexType>
64
65     <complexType name="SiteGroupType">
66         <annotation>Used to logically group sites together.</annotation>
67         <sequence>
68             <choice maxOccurs="unbounded">
69                 <element ref="shib:OriginSite"/>
70                 <element ref="shib:DestinationSite"/>
71                 <element ref="shib:SiteGroup"/>
72             </choice>
73         </sequence>
74         <attribute name="Name" type="string" use="required"/>
75     </complexType>    
76
77     <element name="OriginSite" type="shib:OriginSiteType"/>
78     <element name="DestinationSite" type="shib:SiteType"/>
79     <element name="SiteGroup" type="shib:SiteGroupType"/>
80
81     <element name="Sites">
82         <annotation>The registry of sites plus an optional enveloped signature.</annotation>
83         <complexType>
84             <sequence>
85                 <choice maxOccurs="unbounded">
86                     <element ref="shib:OriginSite"/>
87                     <element ref="shib:DestinationSite"/>
88                     <element ref="shib:SiteGroup"/>
89                 </choice>
90                 <element ref="ds:Signature" minOccurs="0"/>
91             </sequence>
92         </complexType>
93     </element>
94 </schema>