This appendix contains some of the XML Schema Definition (XSD) files that are discussed in this guide.
This appendix contains the following sections:
The purpose of an eXtensible Markup Language (XML) schema is to describe the structure of an XML document. The XML schema language is referred to as XML Schema Definition (XSD).
XSD is an XML-based alternative to the Document Type Definition (DTD). A DTD also describes the structure of an XML document, but it is not in the XML format.
The XSD files in this appendix specify the information that its corresponding service can host by defining the data and data structure. Typically, this structure is hierarchical and has one root node. Individual branches of the structure can be accessed separately, and the whole structure can be accessed by pointing to the root node. The data might be stored in implementation-specific ways, However, the data will be exposed by the service using the XML schema (specified here) and the Web Services Description Language (WSDL) definition of the service type (not specified in this documentation set). The XSD files in this appendix are reproduced here for your convenience. These files and a number of other XSD files are also available on the Liberty Alliance Project web site.
Following is a reproduction of liberty-idwsf-soap-binding-v1.1.xsd, the XSD file that accompanies the Liberty ID-WSF SOAP Binding Specification as discussed in Chapter 8, SOAP Binding Service.
<?xml version="1.0" encoding="UTF-8"?> <xs:schema targetNamespace="urn:liberty:sb:2004-04" xmlns:S="http://schemas.xmlsoap.org/soap/envelope/" xmlns:sb-ext="urn:liberty:sb:2004-04" xmlns:lib="urn:liberty:iff:2003-08" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="urn:liberty:sb:2004-04" elementFormDefault="qualified" attributeFormDefault="unqualified"> <!-- Author: John Kemp --> <!-- Last editor: $Author: dgreenspon $ --> <!-- $Date: 2004/08/02 19:25:27 $ --> <!-- $Revision: 1.1 $ --> <xs:import namespace="http://schemas.xmlsoap.org/soap/envelope/" schemaLocation="http://schemas.xmlsoap.org/soap/envelope/"/> <xs:import namespace="urn:liberty:iff:2003-08" schemaLocation="liberty-idff-protocols-schema-v1.2.xsd"/> <xs:include schemaLocation="liberty-idwsf-utility-1.0-errata-v1.0.xsd"/> <xs:annotation> <xs:documentation> Liberty ID-WSF SOAP Binding Specification Extension XSD </xs:documentation> <xs:documentation> The source code in this XSD file was excerpted verbatim from: Liberty ID-WSF SOAP Binding Specification Version 1.1 April 2004 Copyright (c) 2004 Liberty Alliance participants, see http://www.projectliberty.org/specs/idwsf_copyrights.html </xs:documentation> </xs:annotation> <xs:complexType name="CredentialsContextType"> <xs:sequence> <xs:element ref="lib:RequestAuthnContext" minOccurs="0"/> <xs:element name="SecurityMechID" type="xs:anyURI" minOccurs="0" maxOccurs="unbounded"/> </xs:sequence> <xs:attribute name="id" type="xs:ID" use="optional"/> <xs:attribute ref="S:mustUnderstand" use="optional"/> <xs:attribute ref="S:actor" use="optional"/> </xs:complexType> <xs:element name="CredentialsContext" type="CredentialsContextType"/> <xs:complexType name="ServiceInstanceUpdateType"> <xs:sequence> <xs:element name="SecurityMechID" type="xs:anyURI" minOccurs="0" maxOccurs="unbounded"/> <xs:element name="Credential" minOccurs="0" maxOccurs="unbounded"> <xs:complexType> <xs:sequence> <xs:any namespace="##any" processContents="lax"/> </xs:sequence> <xs:attribute name="notOnOrAfter" type="xs:dateTime" use="optional"/> </xs:complexType> </xs:element> <xs:element name="Endpoint" type="xs:anyURI" minOccurs="0"/> </xs:sequence> <xs:attribute name="id" type="xs:ID" use="optional"/> <xs:attribute ref="S:mustUnderstand" use="optional"/> <xs:attribute ref="S:actor" use="optional"/> </xs:complexType> <xs:element name="ServiceInstanceUpdate" type="ServiceInstanceUpdateType"/> <xs:complexType name="TimeoutType"> <xs:attribute name="maxProcessingTime" type="xs:integer" use="required"/> <xs:attribute name="id" type="xs:ID" use="optional"/> <xs:attribute ref="S:mustUnderstand" use="optional"/> <xs:attribute ref="S:actor" use="optional"/> </xs:complexType> <xs:element name="Timeout" type="TimeoutType"/> </xs:schema> |
Following is a reproduction of liberty-idsis-pp-v1.0.xsd, the XSD file that accompanies the Liberty ID-SIS Personal Profile Service Specification as discussed in Chapter 6, Data Services.
<!-- 2003-11-02--> <xs:schema targetNamespace="urn:liberty:id-sis-pp:2003-08" xmlns="urn:liberty:id-sis-pp:2003-08" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:ds="http://www.w3.org/2000/09/xmldsig#" elementFormDefault="qualified" 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:annotation> <xs:documentation>Title: Liberty ID-WSF-SIS Personal Profile Services Schema </xs:documentation> <xs:documentation>The source code in this XSD file was excerpted verbatim from: Liberty Liberty ID-SIS Personal Profile Service Specification Version 1.2 12th November 2003 Copyright (c) 2003 Liberty Alliance participants, see https://www.projectliberty.org/specs/idwsf_copyrights.html </xs:documentation> </xs:annotation> <xs:include schemaLocation="liberty-idwsf-dst-v1.0.xsd"/> <xs:include schemaLocation="liberty-idwsf-dst-dt-v1.0.xsd"/> <xs:complexType name="KeyInfoType" mixed="true"> <xs:complexContent mixed="true"> <xs:extension base="ds:KeyInfoType"> <xs:attribute ref="modificationTime"/> <xs:attribute ref="ACC"/> <xs:attribute ref="ACCTime"/> <xs:attribute ref="modifier"/> </xs:extension> </xs:complexContent> </xs:complexType> <xs:simpleType name="SelectType"> <xs:restriction base="xs:string"/> </xs:simpleType> <xs:element name="PP" type="PPType"/> <xs:complexType name="PPType"> <xs:sequence> <xs:element ref="InformalName" minOccurs="0"/> <xs:element ref="LInformalName" minOccurs="0" maxOccurs="unbounded"/> <xs:element ref="CommonName" minOccurs="0"/> <xs:element ref="LegalIdentity" minOccurs="0"/> <xs:element ref="EmploymentIdentity" minOccurs="0"/> <xs:element ref="AddressCard" minOccurs="0" maxOccurs="unbounded"/> <xs:element ref="MsgContact" minOccurs="0" maxOccurs="unbounded"/> <xs:element ref="Facade" minOccurs="0"/> <xs:element ref="Demographics" minOccurs="0"/> <xs:element ref="SignKey" minOccurs="0"/> <xs:element ref="EncryptKey" minOccurs="0"/> <xs:element ref="EmergencyContact" minOccurs="0"/> <xs:element ref="LEmergencyContact" minOccurs="0" maxOccurs="unbounded"/> <xs:element ref="Extension" minOccurs="0"/> </xs:sequence> <xs:attributeGroup ref="commonAttributes"/> </xs:complexType> <xs:element name="InformalName" type="DSTString"/> <xs:element name="LInformalName" type="DSTLocalizedString"/> <xs:element name="CommonName" type="CommonNameType"/> <xs:complexType name="CommonNameType"> <xs:sequence> <xs:element ref="CN" minOccurs="0"/> <xs:element ref="LCN" minOccurs="0" maxOccurs="unbounded"/> <xs:element ref="AltCN" minOccurs="0" maxOccurs="unbounded"/> <xs:element ref="LAltCN" minOccurs="0" maxOccurs="unbounded"/> <xs:element ref="AnalyzedName" minOccurs="0"/> <xs:element ref="Extension" minOccurs="0"/> </xs:sequence> <xs:attributeGroup ref="commonAttributes"/> </xs:complexType> <xs:element name="CN" type="DSTString"/> <xs:element name="LCN" type="DSTLocalizedString"/> <xs:element name="AltCN" type="DSTString"/> <xs:element name="LAltCN" type="DSTLocalizedString"/> <xs:element name="AnalyzedName" type="AnalyzedNameType"/> <xs:complexType name="AnalyzedNameType"> <xs:sequence> <xs:element ref="PersonalTitle" minOccurs="0"/> <xs:element ref="LPersonalTitle" minOccurs="0" maxOccurs="unbounded"/> <xs:element ref="FN" minOccurs="0"/> <xs:element ref="LFN" minOccurs="0" maxOccurs="unbounded"/> <xs:element ref="SN" minOccurs="0"/> <xs:element ref="LSN" minOccurs="0" maxOccurs="unbounded"/> <xs:element ref="MN" minOccurs="0"/> <xs:element ref="LMN" minOccurs="0" maxOccurs="unbounded"/> <xs:element ref="Extension" minOccurs="0"/> </xs:sequence> <xs:attribute name="nameScheme" type="xs:anyURI" use="optional"/> <xs:attributeGroup ref="commonAttributes"/> </xs:complexType> <xs:element name="PersonalTitle" type="DSTString"/> <xs:element name="LPersonalTitle" type="DSTLocalizedString"/> <xs:element name="FN" type="DSTString"/> <xs:element name="LFN" type="DSTLocalizedString"/> <xs:element name="SN" type="DSTString"/> <xs:element name="LSN" type="DSTLocalizedString"/> <xs:element name="MN" type="DSTString"/> <xs:element name="LMN" type="DSTLocalizedString"/> <xs:element name="LegalIdentity" type="LegalIdentityType"/> <xs:complexType name="LegalIdentityType"> <xs:sequence> <xs:element ref="LegalName" minOccurs="0"/> <xs:element ref="LLegalName" minOccurs="0" maxOccurs="unbounded"/> <xs:element ref="AnalyzedName" minOccurs="0"/> <xs:element ref="VAT" minOccurs="0"/> <xs:element ref="AltID" minOccurs="0" maxOccurs="unbounded"/> <xs:element ref="DOB" minOccurs="0"/> <xs:element ref="Gender" minOccurs="0"/> <xs:element ref="MaritalStatus" minOccurs="0"/> <xs:element ref="Extension" minOccurs="0"/> </xs:sequence> <xs:attributeGroup ref="commonAttributes"/> </xs:complexType> <xs:element name="LegalName" type="DSTString"/> <xs:element name="LLegalName" type="DSTLocalizedString"/> <xs:element name="VAT" type="VATType"/> <xs:complexType name="VATType"> <xs:sequence> <xs:element ref="IDValue"/> <xs:element ref="IDType" minOccurs="0"/> <xs:element ref="Extension" minOccurs="0"/> </xs:sequence> <xs:attributeGroup ref="commonAttributes"/> </xs:complexType> <xs:element name="IDValue" type="DSTString"/> <xs:element name="IDType" type="DSTURI"/> <xs:element name="AltID" type="AltIDType"/> <xs:complexType name="AltIDType"> <xs:sequence> <xs:element ref="IDValue"/> <xs:element ref="IDType" minOccurs="0"/> <xs:element ref="Extension" minOccurs="0"/> </xs:sequence> <xs:attributeGroup ref="commonAttributes"/> </xs:complexType> <xs:element name="DOB" type="DSTDate"/> <xs:element name="Gender" type="DSTURI"/> <xs:element name="MaritalStatus" type="DSTURI"/> <xs:element name="EmploymentIdentity" type="EmploymentIdentityType"/> <xs:complexType name="EmploymentIdentityType"> <xs:sequence> <xs:element ref="JobTitle" minOccurs="0"/> <xs:element ref="LJobTitle" minOccurs="0" maxOccurs="unbounded"/> <xs:element ref="O" minOccurs="0"/> <xs:element ref="LO" minOccurs="0"/> <xs:element ref="AltO" minOccurs="0" maxOccurs="unbounded"/> <xs:element ref="AltLO" minOccurs="0" maxOccurs="unbounded"/> <xs:element ref="Extension" minOccurs="0"/> </xs:sequence> <xs:attributeGroup ref="commonAttributes"/> </xs:complexType> <xs:element name="JobTitle" type="DSTString"/> <xs:element name="LJobTitle" type="DSTLocalizedString"/> <xs:element name="O" type="DSTString"/> <xs:element name="LO" type="DSTLocalizedString"/> <xs:element name="AltO" type="DSTString"/> <xs:element name="AltLO" type="DSTLocalizedString"/> <xs:element name="AddressCard" type="AddressCardType"/> <xs:complexType name="AddressCardType"> <xs:sequence> <xs:element ref="AddrType" minOccurs="0" maxOccurs="unbounded"/> <xs:element ref="Address" minOccurs="0"/> <xs:element ref="Nick" minOccurs="0"/> <xs:element ref="LNick" minOccurs="0" maxOccurs="unbounded"/> <xs:element ref="LComment" minOccurs="0"/> <xs:element ref="Extension" minOccurs="0"/> </xs:sequence> <xs:attributeGroup ref="commonAttributes"/> </xs:complexType> <xs:element name="AddrType" type="DSTURI"/> <xs:element name="Address" type="AddressType"/> <xs:complexType name="AddressType"> <xs:sequence> <xs:element ref="PostalAddress" minOccurs="0"/> <xs:element ref="LPostalAddress" minOccurs="0" maxOccurs="unbounded"/> <xs:element ref="PostalCode" minOccurs="0"/> <xs:element ref="L" minOccurs="0"/> <xs:element ref="LL" minOccurs="0" maxOccurs="unbounded"/> <xs:element ref="St" minOccurs="0"/> <xs:element ref="LSt" minOccurs="0" maxOccurs="unbounded"/> <xs:element ref="C" minOccurs="0"/> <xs:element ref="Extension" minOccurs="0"/> </xs:sequence> <xs:attributeGroup ref="commonAttributes"/> </xs:complexType> <xs:element name="PostalAddress" type="DSTString"/> <xs:element name="LPostalAddress" type="DSTLocalizedString"/> <xs:element name="PostalCode" type="DSTString"/> <xs:element name="L" type="DSTString"/> <xs:element name="LL" type="DSTLocalizedString"/> <xs:element name="St" type="DSTString"/> <xs:element name="LSt" type="DSTLocalizedString"/> <xs:element name="C" type="DSTString"/> <xs:element name="Nick" type="DSTString"/> <xs:element name="LNick" type="DSTLocalizedString"/> <xs:element name="LComment" type="DSTString"/> <xs:element name="MsgContact" type="MsgContactType"/> <xs:complexType name="MsgContactType"> <xs:sequence> <xs:element ref="Nick" minOccurs="0"/> <xs:element ref="LNick" minOccurs="0" maxOccurs="unbounded"/> <xs:element ref="LComment" minOccurs="0"/> <xs:element ref="MsgType" minOccurs="0" maxOccurs="unbounded"/> <xs:element ref="MsgMethod" minOccurs="0" maxOccurs="unbounded"/> <xs:element ref="MsgTechnology" minOccurs="0" maxOccurs="unbounded"/> <xs:element ref="MsgProvider" minOccurs="0"/> <xs:element ref="MsgAccount" minOccurs="0"/> <xs:element ref="MsgSubaccount" minOccurs="0"/> <xs:element ref="Extension" minOccurs="0"/> </xs:sequence> <xs:attributeGroup ref="commonAttributes"/> </xs:complexType> <xs:element name="MsgType" type="DSTURI"/> <xs:element name="MsgMethod" type="DSTURI"/> <xs:element name="MsgTechnology"> <xs:complexType> <xs:complexContent> <xs:extension base="DSTURI"> <xs:attribute name="msgLimit" type="xs:integer" use="optional"/> </xs:extension> </xs:complexContent> </xs:complexType> </xs:element> <xs:element name="MsgProvider" type="DSTString"/> <xs:element name="MsgAccount" type="DSTString"/> <xs:element name="MsgSubaccount" type="DSTString"/> <xs:element name="Facade" type="FacadeType"/> <xs:complexType name="FacadeType"> <xs:sequence> <xs:element ref="MugShot" minOccurs="0"/> <xs:element ref="WebSite" minOccurs="0"/> <xs:element ref="NamePronounced" minOccurs="0"/> <xs:element ref="GreetSound" minOccurs="0"/> <xs:element ref="GreetMeSound" minOccurs="0"/> <xs:element ref="Extension" minOccurs="0"/> </xs:sequence> <xs:attributeGroup ref="commonAttributes"/> </xs:complexType> <xs:element name="MugShot" type="DSTURI"/> <xs:element name="WebSite" type="DSTURI"/> <xs:element name="NamePronounced" type="DSTURI"/> <xs:element name="GreetSound" type="DSTURI"/> <xs:element name="GreetMeSound" type="DSTURI"/> <xs:element name="Demographics" type="DemographicsType"/> <xs:complexType name="DemographicsType"> <xs:sequence> <xs:element ref="DisplayLanguage" minOccurs="0"/> <xs:element ref="Language" minOccurs="0" maxOccurs="unbounded"/> <xs:element ref="Birthday" minOccurs="0"/> <xs:element ref="Age" minOccurs="0"/> <xs:element ref="TimeZone" minOccurs="0"/> <xs:element ref="Extension" minOccurs="0"/> </xs:sequence> <xs:attributeGroup ref="commonAttributes"/> </xs:complexType> <xs:element name="DisplayLanguage" type="DSTString"/> <xs:element name="Language" type="DSTString"/> <xs:element name="Birthday" type="DSTMonthDay"/> <xs:element name="Age" type="DSTInteger"/> <xs:element name="TimeZone" type="DSTString"/> <xs:element name="SignKey" type="KeyInfoType"/> <xs:element name="EncryptKey" type="KeyInfoType"/> <xs:element name="EmergencyContact" type="DSTString"/> <xs:element name="LEmergencyContact" type="DSTLocalizedString"/> </xs:schema> |
Following is a reproduction of liberty-idsis-ep-v1.0.xsd, the XSD file that accompanies the Liberty ID-SIS Employee Profile Service Specification as discussed in Chapter 6, Data Services.
<!-- Generated by gen-prof.pl $Id: liberty-idsis-ep-v1.0.xsd,v 1.1 2004/08/02 19:25:27 dgreenspon Exp $from $Id: liberty-idsis-ep-v1.0.xsd,v 1.1 2004/08/02 19:25:27 dgreenspon Exp $ --> <!-- adjust 2003-10-02 TDW: changed copyright --> <xs:schema targetNamespace="urn:liberty:id-sis-ep:2003-08" xmlns="urn:liberty:id-sis-ep:2003-08" xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" version="1.0"> <xs:annotation> <xs:documentation>Title: Liberty ID-SIS Employee Profile Services Schema</xs:documentation> <xs:documentation>The source code in this XSD file was excerpted verbatim from: Liberty Liberty ID-SIS Employee Profile Service Specification Version 1.2 12th November 2003 Copyright (c) 2003 Liberty Alliance participants, see https://www.projectliberty.org/specs/idwsf_copyrights.html </xs:documentation> </xs:annotation> <xs:include schemaLocation="liberty-idwsf-dst-v1.0.xsd"/> <xs:include schemaLocation="liberty-idwsf-dst-dt-v1.0.xsd"/> <xs:element name="EP" type="EPType"/> <xs:complexType name="EPType"> <xs:sequence> <xs:element ref="EmployeeID" minOccurs="0"/> <xs:element ref="AltEmployeeID" minOccurs="0" maxOccurs="unbounded"/> <xs:element ref="DateOfHire" minOccurs="0"/> <xs:element ref="JobStartDate" minOccurs="0"/> <xs:element ref="EmployeeStatus" minOccurs="0"/> <xs:element ref="EmployeeType" minOccurs="0"/> <xs:element ref="InternalJobTitle" minOccurs="0"/> <xs:element ref="LInternalJobTitle" minOccurs="0" maxOccurs="unbounded"/> <xs:element ref="OU" minOccurs="0"/> <xs:element ref="LOU" minOccurs="0" maxOccurs="unbounded"/> <xs:element ref="CorpCommonName" minOccurs="0"/> <xs:element ref="CorpLegalIdentity" minOccurs="0"/> <xs:element ref="ManagerEmployeeID" minOccurs="0"/> <xs:element ref="SubalternateEmployeeID" minOccurs="0" maxOccurs="unbounded"/> <xs:element ref="Extension" minOccurs="0"/> </xs:sequence> <xs:attributeGroup ref="commonAttributes"/> </xs:complexType> <xs:element name="EmployeeID" type="DSTString"/> <xs:element name="AltEmployeeID" type="DSTString"/> <xs:element name="DateOfHire" type="DSTDate"/> <xs:element name="JobStartDate" type="DSTDate"/> <xs:element name="EmployeeStatus" type="DSTURI"/> <xs:element name="EmployeeType" type="DSTURI"/> <xs:element name="InternalJobTitle" type="DSTString"/> <xs:element name="LInternalJobTitle" type="DSTLocalizedString"/> <xs:element name="OU" type="DSTString"/> <xs:element name="LOU" type="DSTLocalizedString"/> <xs:element name="CorpCommonName" type="CorpCommonNameType"/> <xs:complexType name="CorpCommonNameType"> <xs:sequence> <xs:element ref="CN" minOccurs="0"/> <xs:element ref="LCN" minOccurs="0" maxOccurs="unbounded"/> <xs:element ref="AltCN" minOccurs="0" maxOccurs="unbounded"/> <xs:element ref="LAltCN" minOccurs="0" maxOccurs="unbounded"/> <xs:element ref="Extension" minOccurs="0"/> </xs:sequence> <xs:attributeGroup ref="commonAttributes"/> </xs:complexType> <xs:element name="CN" type="DSTString"/> <xs:element name="LCN" type="DSTLocalizedString"/> <xs:element name="AltCN" type="DSTString"/> <xs:element name="LAltCN" type="DSTLocalizedString"/> <xs:element name="CorpLegalIdentity" type="CorpLegalIdentityType"/> <xs:complexType name="CorpLegalIdentityType"> <xs:sequence> <xs:element ref="LegalName" minOccurs="0"/> <xs:element ref="LLegalName" minOccurs="0" maxOccurs="unbounded"/> <xs:element ref="VAT" minOccurs="0"/> <xs:element ref="AltID" minOccurs="0" maxOccurs="unbounded"/> <xs:element ref="Extension" minOccurs="0"/> </xs:sequence> <xs:attributeGroup ref="commonAttributes"/> </xs:complexType> <xs:element name="LegalName" type="DSTString"/> <xs:element name="LLegalName" type="DSTLocalizedString"/> <xs:element name="VAT" type="VATType"/> <xs:complexType name="VATType"> <xs:sequence> <xs:element ref="IDValue"/> <xs:element ref="IDType" minOccurs="0"/> <xs:element ref="Extension" minOccurs="0"/> </xs:sequence> <xs:attributeGroup ref="commonAttributes"/> </xs:complexType> <xs:element name="IDValue" type="DSTString"/> <xs:element name="IDType" type="DSTURI"/> <xs:element name="AltID" type="AltIDType"/> <xs:complexType name="AltIDType"> <xs:sequence> <xs:element ref="IDValue"/> <xs:element ref="IDType" minOccurs="0"/> <xs:element ref="Extension" minOccurs="0"/> </xs:sequence> <xs:attributeGroup ref="commonAttributes"/> </xs:complexType> <xs:element name="ManagerEmployeeID" type="DSTString"/> <xs:element name="SubalternateEmployeeID" type="DSTString"/> <xs:simpleType name="SelectType"> <xs:restriction base="xs:string"/> </xs:simpleType> </xs:schema> |
Following is a reproduction of liberty-idwsf-authn-svc-v1.0.xsd, the XSD file that accompanies the Liberty ID-WSF Authentication Service Specification as discussed in Chapter 5, Authentication Web Service.
<?xml version="1.0" encoding="UTF-8"?> <xs:schema targetNamespace="urn:liberty:sa:2004-04" xmlns:S="http://schemas.xmlsoap.org/soap/envelope/" xmlns:sa="urn:liberty:sa:2004-04" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:lib="urn:liberty:iff:2003-08" xmlns:disco="urn:liberty:disco:2003-08" xmlns="urn:liberty:sa:2004-04" elementFormDefault="qualified" attributeFormDefault="unqualified" version="06"> <!-- Filename: lib-arch-authn-svc.xsd --> <!-- $Id: liberty-idwsf-authn-svc-v1.0.xsd,v 1.1 2004/08/02 19:25:27 dgreenspon Exp $ --> <!-- Author: Jeff Hodges --> <!-- Last editor: $Author: dgreenspon $ --> <!-- $Date: 2004/08/02 19:25:27 $ --> <!-- $Revision: 1.1 $ --> <xs:import namespace="urn:liberty:iff:2003-08" schemaLocation="liberty-idff-protocols-schema-v1.2.xsd"/> <xs:import namespace="urn:liberty:disco:2003-08" schemaLocation="liberty-idwsf-disco-svc-1.0-errata-v1.0.xsd"/> <xs:include schemaLocation="liberty-idwsf-utility-1.0-errata-v1.0.xsd"/> <xs:annotation> <xs:documentation> Liberty ID-WSF Authentication Service XSD </xs:documentation> <xs:documentation> The source code in this XSD file was excerpted verbatim from: Liberty ID-WSF Authentication Service Specification Version 1.0 16 Feb 2004 Copyright (c) 2003, 2004 Liberty Alliance participants, see http://www.projectliberty.org/specs/idwsf_copyrights.html </xs:documentation> </xs:annotation> <!-- SASLRequest and SASLResponse ID-* messages --> <xs:element name="SASLRequest"> <xs:complexType> <xs:sequence> <xs:element name="Data" minOccurs="0"> <xs:complexType> <xs:simpleContent> <xs:extension base="xs:base64Binary"/> </xs:simpleContent> </xs:complexType> </xs:element> <xs:element ref="lib:RequestAuthnContext" minOccurs="0"/> </xs:sequence> <xs:attribute name="mechanism" type="xs:string" use="required"/> <xs:attribute name="authzID" type="xs:string" use="optional"/> <xs:attribute name="advisoryAuthnID" type="xs:string" use="optional"/> <xs:attribute name="id" type="xs:ID" use="optional"/> </xs:complexType> </xs:element> <xs:element name="SASLResponse"> <xs:complexType> <xs:sequence> <xs:element ref="Status"/> <xs:element ref="PasswordTransforms" minOccurs="0"/> <xs:element name="Data" minOccurs="0"> <xs:complexType> <xs:simpleContent> <xs:extension base="xs:base64Binary"/> </xs:simpleContent> </xs:complexType> </xs:element> <xs:element ref="disco:ResourceOffering" minOccurs="0" maxOccurs="unbounded"/> <xs:element name="Credentials" minOccurs="0"> <xs:complexType> <xs:sequence> <xs:any namespace="##any" processContents="lax" minOccurs="0" maxOccurs="unbounded"/> </xs:sequence> </xs:complexType> </xs:element> </xs:sequence> <xs:attribute name="serverMechanism" type="xs:string" use="optional"/> <xs:attribute name="id" type="xs:ID" use="optional"/> </xs:complexType> </xs:element> <!-- Password Transformations --> <xs:element name="PasswordTransforms"> <xs:annotation> <xs:documentation> Contains ordered list of sequential password transformations </xs:documentation> </xs:annotation> <xs:complexType> <xs:sequence> <xs:element name="Transform" maxOccurs="unbounded"> <xs:complexType> <xs:sequence> <xs:element name="Parameter" minOccurs="0" maxOccurs="unbounded"> <xs:complexType> <xs:simpleContent> <xs:extension base="xs:string"> <xs:attribute name="name" type="xs:string" use="required"/> </xs:extension> </xs:simpleContent> </xs:complexType> </xs:element> </xs:sequence> <xs:attribute name="name" type="xs:anyURI" use="required"/> <xs:attribute name="id" type="xs:ID" use="optional"/> </xs:complexType> </xs:element> </xs:sequence> </xs:complexType> </xs:element> </xs:schema> |
Following is a reproduction of liberty-paos-1.0-errata-v1.0.xsd, the XSD file that accompanies the Liberty Reverse HTTP Binding for SOAP Specification. This XSD file describes the structure of PAOS requests and responses. PAOS binding is discussed in Chapter 10, Application Programming Interfaces.
<?xml version="1.0" encoding="UTF-8"?> <xs:schema targetNamespace="urn:liberty:paos:2003-08" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:S="http://schemas.xmlsoap.org/soap/envelope/" xmlns="urn:liberty:paos:2003-08" elementFormDefault="qualified" attributeFormDefault="unqualified"> <xs:annotation> <xs:documentation>The source code in this XSD file was excerpted verbatim from: Liberty Reverse HTTP Binding Version 1.0 12th November 2003 Copyright (c) 2003 Liberty Alliance participants, see https://www.projectliberty.org/specs/idwsf_copyrights.html </xs:documentation> </xs:annotation> <xs:import namespace="http://schemas.xmlsoap.org/soap/envelope/" schemaLocation="http://schemas.xmlsoap.org/soap/envelope/"/> <xs:include schemaLocation="liberty-utility-v1.0.xsd"/> <xs:element name="Request" type="RequestType"/> <xs:complexType name="RequestType"> <xs:attribute name="responseConsumerURL" type="xs:anyURI" use="required"/> <xs:attribute name="service" type="xs:anyURI" use="required"/> <xs:attribute name="messageID" type="IDType" use="optional"/> <xs:attribute ref="S:mustUnderstand" use="required"/> <xs:attribute ref="S:actor" use="required"/> </xs:complexType> <xs:element name="Response" type="ResponseType"/> <xs:complexType name="ResponseType"> <xs:attribute name="refToMessageID" type="IDType" use="optional"/> <xs:attribute ref="S:mustUnderstand" use="required"/> <xs:attribute ref="S:actor" use="required"/> </xs:complexType> </xs:schema> |
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> |