Following is a reproduction of liberty-metadata-1.0-errata-v1.0.xsd, the XSD file that accompanies the Liberty Metadata Description and Discovery Specification. This XSD file describes metadata, protocols for obtaining metadata, and resolution methods for discovering the location of metadata.
<?xml version="1.0" encoding="UTF-8"?> <xs:schema targetNamespace="urn:liberty:metadata:2003-08" xmlns="urn:liberty:metadata:2003-08" xmlns:ds="http://www.w3.org/2000/09/xmldsig#" xmlns:saml="urn:oasis:names:tc:SAML:1.0:assertion" xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified" version="1.0"> <xs:import namespace="http://www.w3.org/2000/09/xmldsig#" schemaLocation="http://www.w3.org/TR/xmldsig-core/xmldsig-core-schema.xsd"/> <xs:import namespace="urn:oasis:names:tc:SAML:1.0:assertion" schemaLocation="oasis-sstc-saml-schema-assertion-1.1.xsd"/> <xs:import namespace="http://www.w3.org/XML/1998/namespace" schemaLocation="http://www.w3.org/2001/xml.xsd"/> <xs:include schemaLocation="liberty-utility-v1.0.xsd"/> <xs:annotation> <xs:documentation>XML Schema fom Metadata description and discovery protocols</xs:documentation> <xs:documentation>The source code in this XSD file was excerpted verbatim from: Liberty Metadata Description and Discovery Specification Version 1.0 12th November 2003 Copyright (c) 2003 Liberty Alliance participants, see https://www.projectliberty.org/specs/idff_copyrights.html </xs:documentation> </xs:annotation> <xs:simpleType name="entityIDType"> <xs:restriction base="xs:anyURI"> <xs:maxLength value="1024" id="maxlengthid"/> </xs:restriction> </xs:simpleType> <xs:attribute name="libertyPrincipalIdentifier" type="entityIDType"/> <xs:attribute name="providerID" type="entityIDType"/> <xs:attribute name="validUntil" type="xs:dateTime"/> <xs:attribute name="cacheDuration" type="xs:duration"/> <xs:complexType name="additionalMetadataLocationType"> <xs:simpleContent> <xs:extension base="xs:anyURI"> <xs:attribute name="namespace" type="xs:anyURI"/> </xs:extension> </xs:simpleContent> </xs:complexType> <xs:complexType name="organizationType"> <xs:sequence> <xs:element name="OrganizationName" type="organizationNameType" maxOccurs="unbounded"/> <xs:element name="OrganizationDisplayName" type="organizationDisplayNameType" maxOccurs="unbounded"/> <xs:element name="OrganizationURL" type="localizedURIType" maxOccurs="unbounded"/> <xs:element ref="Extension" minOccurs="0"/> </xs:sequence> </xs:complexType> <xs:complexType name="organizationNameType"> <xs:simpleContent> <xs:extension base="xs:string"> <xs:attribute ref="xml:lang"/> </xs:extension> </xs:simpleContent> </xs:complexType> <xs:complexType name="organizationDisplayNameType"> <xs:simpleContent> <xs:extension base="xs:string"> <xs:attribute ref="xml:lang" use="required"/> </xs:extension> </xs:simpleContent> </xs:complexType> <xs:complexType name="localizedURIType"> <xs:simpleContent> <xs:extension base="xs:anyURI"> <xs:attribute ref="xml:lang" use="required"/> </xs:extension> </xs:simpleContent> </xs:complexType> <xs:complexType name="contactType"> <xs:sequence> <xs:element name="Company" type="xs:string" minOccurs="0"/> <xs:element name="GivenName" type="xs:string" minOccurs="0"/> <xs:element name="SurName" type="xs:string" minOccurs="0"/> <xs:element name="EmailAddress" type="xs:anyURI" minOccurs="0" maxOccurs="unbounded"/> <xs:element name="TelephoneNumber" type="xs:string" minOccurs="0" maxOccurs="unbounded"/> <xs:element ref="Extension" minOccurs="0"/> </xs:sequence> <xs:attribute ref="libertyPrincipalIdentifier" use="optional"/> <xs:attribute name="contactType" type="attr.contactType" use="required"/> </xs:complexType> <xs:simpleType name="attr.contactType"> <xs:restriction base="xs:string"> <xs:enumeration value="technical"/> <xs:enumeration value="administrative"/> <xs:enumeration value="billing"/> <xs:enumeration value="other"/> </xs:restriction> </xs:simpleType> <xs:simpleType name="keyTypes"> <xs:restriction base="xs:string"> <xs:enumeration value="encryption"/> <xs:enumeration value="signing"/> </xs:restriction> </xs:simpleType> <xs:complexType name="providerDescriptorType"> <xs:sequence> <xs:element name="KeyDescriptor" type="keyDescriptorType" minOccurs="0" maxOccurs="unbounded"/> <xs:element name="SoapEndpoint" type="xs:anyURI" minOccurs="0"/> <xs:element name="SingleLogoutServiceURL" type="xs:anyURI" minOccurs="0"/> <xs:element name="SingleLogoutServiceReturnURL" type="xs:anyURI" minOccurs="0"/> <xs:element name="FederationTerminationServiceURL" type="xs:anyURI" minOccurs="0"/> <xs:element name="FederationTerminationServiceReturnURL" type="xs:anyURI" minOccurs="0"/> <xs:element name="FederationTerminationNotificationProtocolProfile" type="xs:anyURI" minOccurs="0" maxOccurs="unbounded"/> <xs:element name="SingleLogoutProtocolProfile" type="xs:anyURI" minOccurs="0" maxOccurs="unbounded"/> <xs:element name="RegisterNameIdentifierProtocolProfile" type="xs:anyURI" minOccurs="0" maxOccurs="unbounded"/> <xs:element name="RegisterNameIdentifierServiceURL" type="xs:anyURI" minOccurs="0"/> <xs:element name="RegisterNameIdentifierServiceReturnURL" type="xs:anyURI" minOccurs="0"/> <xs:element name="NameIdentifierMappingProtocolProfile" type="saml:AuthorityBindingType" minOccurs="0" maxOccurs="unbounded"/> <xs:element name="NameIdentifierMappingEncryptionProfile" type="xs:anyURI" minOccurs="0" maxOccurs="unbounded"/> <xs:element name="Organization" type="organizationType" minOccurs="0"/> <xs:element name="ContactPerson" type="contactType" minOccurs="0" maxOccurs="unbounded"/> <xs:element name="AdditionalMetaLocation" type="additionalMetadataLocationType" minOccurs="0" maxOccurs="unbounded"/> <xs:element ref="Extension" minOccurs="0"/> <xs:element ref="ds:Signature" minOccurs="0"/> </xs:sequence> <!--xs:attribute ref="providerID" use="required"/--> <xs:attribute name="protocolSupportEnumeration" type="xs:NMTOKENS" use="required"/> <xs:attribute name="id" type="xs:ID" use="optional"/> <xs:attribute ref="validUntil" use="optional"/> <xs:attribute ref="cacheDuration" use="optional"/> </xs:complexType> <!--added--> <xs:element name="KeyDescriptor" type="keyDescriptorType"/> <xs:complexType name="keyDescriptorType"> <xs:sequence> <xs:element name="EncryptionMethod" type="xs:anyURI" minOccurs="0"/> <xs:element name="KeySize" type="xs:integer" minOccurs="0"/> <xs:element ref="ds:KeyInfo" minOccurs="0"/> <xs:element ref="Extension" minOccurs="0"/> </xs:sequence> <xs:attribute name="use" type="keyTypes" use="optional"/> </xs:complexType> <!-- --> <xs:element name="EntityDescriptor" type="entityDescriptorType"/> <xs:group name="providerGroup"> <xs:sequence> <xs:element name="IDPDescriptor" type="IDPDescriptorType" minOccurs="0" maxOccurs="unbounded"/> <xs:element name="SPDescriptor" type="SPDescriptorType" minOccurs="0" maxOccurs="unbounded"/> </xs:sequence> </xs:group> <xs:complexType name="entityDescriptorType"> <xs:sequence> <xs:choice> <xs:group ref="providerGroup"/> <xs:element name="AffiliationDescriptor" type="affiliationDescriptorType"/> </xs:choice> <xs:element name="ContactPerson" type="contactType" minOccurs="0"/> <xs:element name="Organization" type="organizationType" minOccurs="0"/> <xs:element ref="Extension" minOccurs="0"/> <xs:element ref="ds:Signature" minOccurs="0"/> </xs:sequence> <xs:attribute ref="providerID" use="required"/> <xs:attribute name="id" type="xs:ID" use="optional"/> <xs:attribute ref="validUntil" use="optional"/> <xs:attribute ref="cacheDuration" use="optional"/> </xs:complexType> <xs:complexType name="SPDescriptorType"> <xs:complexContent> <xs:extension base="providerDescriptorType"> <xs:sequence> <xs:element name="AssertionConsumerServiceURL" maxOccurs="unbounded"> <xs:complexType> <xs:simpleContent> <xs:extension base="xs:anyURI"> <xs:attribute name="id" type="xs:ID" use="required"/> <xs:attribute name="isDefault" type="xs:boolean" default="false"/> </xs:extension> </xs:simpleContent> </xs:complexType> </xs:element> <xs:element name="AuthnRequestsSigned" type="xs:boolean"/> </xs:sequence> </xs:extension> </xs:complexContent> </xs:complexType> <xs:complexType name="IDPDescriptorType"> <xs:complexContent> <xs:extension base="providerDescriptorType"> <xs:sequence> <xs:element name="SingleSignOnServiceURL" type="xs:anyURI"/> <xs:element name="SingleSignOnProtocolProfile" type="xs:anyURI" maxOccurs="unbounded"/> <xs:element name="AuthnServiceURL" type="xs:anyURI" minOccurs="0"/> </xs:sequence> </xs:extension> </xs:complexContent> </xs:complexType> <xs:element name="EntitiesDescriptor" type="entitiesDescriptorType"/> <xs:complexType name="entitiesDescriptorType"> <xs:sequence> <xs:element ref="EntityDescriptor" minOccurs="2" maxOccurs="unbounded"/> </xs:sequence> </xs:complexType> <xs:complexType name="affiliationDescriptorType"> <xs:sequence> <xs:element name="AffiliateMember" type="entityIDType" maxOccurs="unbounded"/> <xs:element ref="Extension" minOccurs="0"/> <xs:element name="KeyDescriptor" type="keyDescriptorType" minOccurs="0" maxOccurs="unbounded"/> <xs:element ref="ds:Signature" minOccurs="0"/> </xs:sequence> <!-- <xs:attribute name="affiliationID" type="entityIDType" use="required"/> --> <xs:attribute name="affiliationOwnerID" type="entityIDType" use="required"/> <xs:attribute ref="validUntil" use="optional"/> <xs:attribute ref="cacheDuration" use="optional"/> <xs:attribute name="id" type="xs:ID" use="optional"/> </xs:complexType> </xs:schema> |