Factored out SiteType.
authorcantor <cantor@ab3bd59b-922f-494d-bb5f-6f0a3c29deca>
Tue, 11 Jun 2002 02:55:38 +0000 (02:55 +0000)
committercantor <cantor@ab3bd59b-922f-494d-bb5f-6f0a3c29deca>
Tue, 11 Jun 2002 02:55:38 +0000 (02:55 +0000)
git-svn-id: https://subversion.switch.ch/svn/shibboleth/java-idp/trunk@56 ab3bd59b-922f-494d-bb5f-6f0a3c29deca

src/schemas/shibboleth.xsd

index d994e4d..ca1404a 100644 (file)
@@ -1,10 +1,11 @@
 <?xml version="1.0" encoding="US-ASCII"?>
-<schema targetNamespace="urn:mace:shibboleth:1.0" xmlns:shib="urn:mace:shibboleth:1.0" xmlns:ds="http://www.w3.org/2000/09/xmldsig#" xmlns="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified">
+<schema targetNamespace="urn:mace:shibboleth:1.0" xmlns="http://www.w3.org/2001/XMLSchema" xmlns:ds="http://www.w3.org/2000/09/xmldsig#" xmlns:shib="urn:mace:shibboleth:1.0" elementFormDefault="qualified" attributeFormDefault="unqualified">
     <import namespace="http://www.w3.org/2000/09/xmldsig#" schemaLocation="http://www.w3.org/TR/xmldsig-core/xmldsig-core-schema.xsd"/>
     <import namespace="http://www.w3.org/XML/1998/namespace" schemaLocation="http://www.w3.org/2001/xml.xsd"/>
     
-    <!-- Used by AA in samlp:StatusDetail to signal user wants real-time attribute release. -->
-    <element name="RealTimeReleaseURL" type="anyURI"/>
+    <element name="RealTimeReleaseURL" type="anyURI">
+        <annotation>Used by AA in samlp:StatusDetail to signal user wants real-time attribute release.</annotation>
+    </element>
     
     <!--
     The following SAML sub-status codes are defined in this namespace:
             Used with samlp:Requester, signals AA did not recognize handle as valid
     -->
     
-    <!--
-    Identifies a Shibboleth origin site's name, handle service (w/ optional key),
-    authorized domains it may assert attributes for besides itself, and any WAYF aliases preferred.
-    -->
-    <element name="OriginSite">
-        <complexType>
-            <sequence>
-                <element name="HandleService" maxOccurs="unbounded">
-                    <complexType>
-                        <sequence>
-                            <element ref="ds:KeyInfo" minOccurs="0"/>
-                        </sequence>
-                        <attribute name="Name" type="string" use="required"/>
-                    </complexType>
-                </element>
-                <element name="Domain" type="string" minOccurs="0" maxOccurs="unbounded"/>
-                <element name="Alias" minOccurs="0" maxOccurs="unbounded">
-                    <complexType>
-                        <simpleContent>
-                            <extension base="string">
-                                <attribute ref="xml:lang"/>
-                            </extension>
-                        </simpleContent>
-                    </complexType>
-                </element>
-            </sequence>
-            <attribute name="Name" type="string" use="required"/>
-        </complexType>
-    </element>
-    
-    <!-- The registry of origin sites plus an optional signature. -->
-    <element name="OriginSites">
+    <complexType name="SiteType">
+        <annotation> All sites have a Name attribute, plus optional i18n-ized aliases. </annotation>
+        <sequence>
+            <element name="Alias" minOccurs="0" maxOccurs="unbounded">
+                <complexType>
+                    <simpleContent>
+                        <extension base="string">
+                            <attribute ref="xml:lang"/>
+                        </extension>
+                    </simpleContent>
+                </complexType>
+            </element>
+        </sequence>
+        <attribute name="Name" type="string" use="required"/>
+    </complexType>
+    <complexType name="OriginSiteType">
+        <annotation>Origin sites add at least one handle service (with a name and optional KeyInfo), plus optional domains trusted for attribute scoping.</annotation>
+        <complexContent>
+            <extension base="shib:SiteType">
+                <sequence>
+                    <element name="HandleService" maxOccurs="unbounded">
+                        <complexType>
+                            <sequence>
+                                <element ref="ds:KeyInfo" minOccurs="0"/>
+                            </sequence>
+                            <attribute name="Name" type="string" use="required"/>
+                        </complexType>
+                    </element>
+                    <element name="Domain" type="string" minOccurs="0" maxOccurs="unbounded"/>
+                </sequence>
+            </extension>
+        </complexContent>
+    </complexType>
+    <element name="OriginSite" type="shib:OriginSiteType"/>
+    <element name="DestinationSite" type="shib:SiteType"/>
+    <element name="Sites">
+        <annotation> The registry of sites plus an optional enveloped signature. </annotation>
         <complexType>
             <sequence>
-                <element ref="shib:OriginSite" maxOccurs="unbounded"/>
+                <choice maxOccurs="unbounded">
+                    <element ref="shib:OriginSite"/>
+                    <element ref="shib:DestinationSite"/>
+                </choice>
                 <element ref="ds:Signature" minOccurs="0"/>
             </sequence>
         </complexType>