Fix catalog usage, checked in resolver schema.
authorcantor <cantor@cb58f699-b61c-0410-a6fe-9272a202ed29>
Tue, 20 Feb 2007 05:21:31 +0000 (05:21 +0000)
committercantor <cantor@cb58f699-b61c-0410-a6fe-9272a202ed29>
Tue, 20 Feb 2007 05:21:31 +0000 (05:21 +0000)
git-svn-id: https://svn.middleware.georgetown.edu/cpp-sp/trunk@2176 cb58f699-b61c-0410-a6fe-9272a202ed29

schemas/Makefile.am
schemas/catalog.xml.in
schemas/shibboleth-2.0-attribute-resolver.xsd [new file with mode: 0644]

index 02f0cf8..13d853c 100644 (file)
@@ -9,6 +9,7 @@ pkgxml_DATA = \
        shibboleth.xsd \
     shibboleth-metadata-1.0.xsd \
     shibboleth-spconfig-2.0.xsd \
+    shibboleth-2.0-attribute-resolver.xsd \
     metadata_v12_to_v13.xsl \
     metadata_v13_to_v12.xsl \
     trust_v13_to_v12.xsl
index 998a40e..7d90453 100644 (file)
@@ -1,7 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE catalog PUBLIC "-//OASIS//DTD Entity Resolution XML Catalog V1.0//EN" "http://www.oasis-open.org/committees/entity/release/1.0/catalog.dtd">
 <catalog xmlns="urn:oasis:names:tc:entity:xmlns:xml:catalog">
-    <uri name="urn:mace:shibboleth:metadata:1.0" uri="@-PKGXMLDIR-@/shibboleth-metadata-1.0.xsd"/>
-    <uri name="urn:mace:shibboleth:sp:config:2.0" uri="@-PKGXMLDIR-@/shibboleth-spconfig-2.0.xsd"/>
-    <uri name="urn:mace:shibboleth:1.0" uri="@-PKGXMLDIR-@/shibboleth.xsd"/>
+    <system systemId="urn:mace:shibboleth:metadata:1.0" uri="@-PKGXMLDIR-@/shibboleth-metadata-1.0.xsd"/>
+    <system systemId="urn:mace:shibboleth:sp:config:2.0" uri="@-PKGXMLDIR-@/shibboleth-spconfig-2.0.xsd"/>
+    <system systemId="urn:mace:shibboleth:1.0" uri="@-PKGXMLDIR-@/shibboleth.xsd"/>
 </catalog>
diff --git a/schemas/shibboleth-2.0-attribute-resolver.xsd b/schemas/shibboleth-2.0-attribute-resolver.xsd
new file mode 100644 (file)
index 0000000..577e0a1
--- /dev/null
@@ -0,0 +1,208 @@
+<schema targetNamespace="urn:mace:shibboleth:2.0:resolver" xmlns="http://www.w3.org/2001/XMLSchema"
+    xmlns:resolver="urn:mace:shibboleth:2.0:resolver">
+
+    <annotation>
+        <documentation>Shibboleth 2.0 Attribute Resolver configuration schema</documentation>
+    </annotation>
+
+    <element name="AttributeResolver" type="resolver:AttributeResolverType">
+        <annotation>
+            <documentation>Root of the attribute resolver configuration file.</documentation>
+        </annotation>
+        <keyref name="AttributeDefinitionAttributeDefinitionDependencyRef"
+            refer="resolver:AttributeDefinitionDependencyKey">
+            <selector xpath="./resolver:AttributeDefinition/resolver:AttributeDefinitionDependency" />
+            <field xpath="@ref" />
+        </keyref>
+        <keyref name="DataConnectorAttributeDefinitionDependencyRef"
+            refer="resolver:AttributeDefinitionDependencyKey">
+            <selector xpath="./resolver:DataConnector/resolver:AttributeDefinitionDependency" />
+            <field xpath="@ref" />
+        </keyref>
+        <keyref name="PrincipalConnectorAttributeDefinitionDependencyRef"
+            refer="resolver:AttributeDefinitionDependencyKey">
+            <selector xpath="./resolver:PrincipalConnector/resolver:AttributeDefinitionDependency" />
+            <field xpath="@ref" />
+        </keyref>
+        <key name="AttributeDefinitionDependencyKey">
+            <selector xpath="./resolver:AttributeDefinition" />
+            <field xpath="@id" />
+        </key>
+
+        <keyref name="AttributeDefinitionDataConnectorDependencyRef" refer="resolver:DataConnectorDependencyKey">
+            <selector xpath="./resolver:AttributeDefinition/resolver:DataConnectorDependency" />
+            <field xpath="@ref" />
+        </keyref>
+        <keyref name="DataConnectorDataConnectorDependencyRef" refer="resolver:DataConnectorDependencyKey">
+            <selector xpath="./resolver:DataConnector/resolver:DataConnectorDependency" />
+            <field xpath="@ref" />
+        </keyref>
+        <keyref name="FailoverDataConnectorDataConnectorDependencyRef" refer="resolver:DataConnectorDependencyKey">
+            <selector xpath="./resolver:DataConnector/resolver:FailoverDataConnector" />
+            <field xpath="@ref" />
+        </keyref>
+        <keyref name="PrincipalConnectorDataConnectorDependencyRef" refer="resolver:DataConnectorDependencyKey">
+            <selector xpath="./resolver:PrincipalConnector/resolver:DataConnectorDependency" />
+            <field xpath="@ref" />
+        </keyref>
+        <key name="DataConnectorDependencyKey">
+            <selector xpath="./resolver:DataConnector" />
+            <field xpath="@id" />
+        </key>
+    </element>
+    <complexType name="AttributeResolverType">
+        <choice minOccurs="0" maxOccurs="unbounded">
+            <element ref="resolver:AttributeDefinition" />
+            <element ref="resolver:DataConnector" />
+            <element ref="resolver:PrincipalConnector" />
+        </choice>
+    </complexType>
+
+    <element name="AttributeDefinition" type="resolver:BaseAttributeDefinitionType">
+        <annotation>
+            <documentation>Defines an attribute definition within this resolver.</documentation>
+        </annotation>
+    </element>
+    <complexType name="BaseAttributeDefinitionType">
+        <annotation>
+            <documentation>
+                Attribute definition define the finished attributes to be released by the resolver.
+            </documentation>
+        </annotation>
+        <complexContent>
+            <extension base="resolver:BaseResolutionPlugInType">
+                <sequence>
+                    <element ref="resolver:AttributeEncoder" minOccurs="0" maxOccurs="unbounded" />
+                </sequence>
+                <attribute name="dependencyOnly" type="boolean" default="false">
+                    <annotation>
+                        <documentation>
+                            A boolean flag that indicates whether this attribute definition is only defined becaue its
+                            data is needed elsewhere within the resolver and as such should not be released outside the
+                            resolver.
+                        </documentation>
+                    </annotation>
+                </attribute>
+            </extension>
+        </complexContent>
+    </complexType>
+
+    <element name="AttributeEncoder" type="resolver:BaseAttributeEncoderType">
+        <annotation>
+            <documentation>Defines an encoder for an attribute.</documentation>
+        </annotation>
+    </element>
+    <complexType name="BaseAttributeEncoderType">
+        <annotation>
+            <documentation>
+                An attribute encoder is responsible for converting an attribute, and it's values, into a protocol
+                specific representation such as a SAML 1 Attribute or a SAML 2 NameID.
+            </documentation>
+        </annotation>
+    </complexType>
+
+    <element name="DataConnector" type="resolver:BaseDataConnectorType">
+        <annotation>
+            <documentation>
+                Defines a data connector which is used to pull information from local infrastructure.
+            </documentation>
+        </annotation>
+    </element>
+    <complexType name="BaseDataConnectorType">
+        <annotation>
+            <documentation>
+                Data connectors pull information from local infrastructure, such as databases and LDAP directories, and
+                make these raw attributes available to attribute definitions for finishing.
+            </documentation>
+        </annotation>
+        <complexContent>
+            <extension base="resolver:BaseResolutionPlugInType">
+                <sequence>
+                    <element ref="resolver:FailoverDataConnector" minOccurs="0" maxOccurs="unbounded" />
+                </sequence>
+            </extension>
+        </complexContent>
+    </complexType>
+
+    <element name="PrincipalConnector" type="resolver:BasePrincipalConnectorType">
+        <annotation>
+            <documentation>
+                Principal connectors convert a subject's NameID into an internal principal name for use within attribute
+                definitions and data connectors.
+            </documentation>
+        </annotation>
+    </element>
+    <complexType name="BasePrincipalConnectorType">
+        <annotation>
+            <documentation>
+                Principal connectors convert a subject's NameID into an internal principal name for use within attribute
+                definitions and data connectors.
+            </documentation>
+        </annotation>
+        <complexContent>
+            <extension base="resolver:BaseResolutionPlugInType">
+                <sequence>
+                    <element name="RelyingParty" type="string" minOccurs="0" maxOccurs="unbounded">
+                        <annotation>
+                            <documentation>The relying party for which this connector is valid.</documentation>
+                        </annotation>
+                    </element>
+                </sequence>
+                <attribute name="nameIDFormat" type="anyURI" use="required">
+                    <annotation>
+                        <documentation>The format of the NameID for which this connector is valid.</documentation>
+                    </annotation>
+                </attribute>
+            </extension>
+        </complexContent>
+    </complexType>
+
+    <complexType name="BaseResolutionPlugInType" abstract="true">
+        <annotation>
+            <documentation>
+                A base type for all attribute resolver plugins: data and principal connectors and attribute definitions
+            </documentation>
+        </annotation>
+        <choice minOccurs="0" maxOccurs="unbounded">
+            <element ref="resolver:AttributeDefinitionDependency" minOccurs="0" maxOccurs="unbounded" />
+            <element ref="resolver:DataConnectorDependency" minOccurs="0" maxOccurs="unbounded" />
+        </choice>
+        <attribute name="id" type="string" use="required">
+            <annotation>
+                <documentation>A unique identifier for this definition.</documentation>
+            </annotation>
+        </attribute>
+        <attribute name="propagateErrors" type="boolean" default="true">
+            <annotation>
+                <documentation>
+                    A boolean flag indiciating whether errors within a definition should be propogated outside the
+                    resolver. Errors exposed outside the resolver will likely result in an error being returned to the
+                    relying party.
+                </documentation>
+            </annotation>
+        </attribute>
+    </complexType>
+
+    <element name="AttributeDefinitionDependency" type="resolver:PluginDependencyType">
+        <annotation>
+            <documentation>Defines a dependency on a specific attribute definition.</documentation>
+        </annotation>
+    </element>
+    <element name="DataConnectorDependency" type="resolver:PluginDependencyType">
+        <annotation>
+            <documentation>Defines a dependency on a specific data connector.</documentation>
+        </annotation>
+    </element>
+    <element name="FailoverDataConnector" type="resolver:PluginDependencyType">
+        <annotation>
+            <documentation>Defines a data connector to use should the parent data connector fail.</documentation>
+        </annotation>
+    </element>
+    <complexType name="PluginDependencyType">
+        <annotation>
+            <documentation>A type that represents a reference to another plugin</documentation>
+        </annotation>
+        <attribute name="ref" type="string" use="required" />
+    </complexType>
+
+</schema>
\ No newline at end of file