Sun Java logo     Previous      Contents      Index      Next     

Sun logo
Sun Java Systems Access Manager 6 2005Q1 Federation Management Guide 

Appendix B  
Service Schema Files

This appendix contains some of the XML Schema Definition (XSD) files discussed in this document. It includes the following sections:


Overview

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).


Note

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 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 may be stored in implementation-specific ways, but will be exposed by the service using the XML schema (specified here), and the Web Services Description Language definition of the service type (not specified in this documentation set). The XSD files in this appendix are reproduced here for your convenience. They (and a number of other XSD files) are also available on the Project Liberty Web site at http://www.projectliberty.org/resources/specifications.php.


SOAP Binding Schema

Code Example B-1 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 7, “SOAP Binding Service.”

Code Example B-1  SOAP Binding XSD File  

<?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>


Personal Profile Schema

Code Example B-2 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 5, "Data Services."

Code Example B-2  Personal Profile Service XSD File  

<!-- 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>


Employee Profile Schema

Code Example B-3 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 5, "Data Services."

Code Example B-3  Employee Profile Service XSD Schema 

<!-- 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>


Authentication Web Service Schema

Code Example B-4 is a reproduction of the liberty-idwsf-authn-svc-v1.0.xsd, the XSD file that accompanies Liberty ID-WSF Authentication Service Specification as discussed in Chapter 4, "Authentication Web Service."

Code Example B-4  Authentication Web Service XSD File 

<?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>


PAOS Binding Schema

Code Example B-5 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 structure of PAOS requests and responses. PAOS Binding is discussed in Chapter 8, "Application Programming Interfaces."

Code Example B-5  Reverse HTTP Binding for SOAP XSD File 

<?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>


Metadata Description Schema

Code Example B-6 is a reproduction of liberty-metadata-1.0-errata-v2.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.

Code Example B-6  Metadata Description and Discovery XSD File  

<?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-errata-v2.0

4 June 2004

Copyright (c) 2004 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 name="libertyPrincipalIdentifier" type="entityIDType" 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="xs:anyURI" 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 name="validUntil" type="xs:dateTime"/>

<xs:attribute name="cacheDuration" type="xs:duration"/>

</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 name="providerID" type="entityIDType" use="required"/>

<xs:attribute name="id" type="xs:ID" use="optional"/>

<xs:attribute name="validUntil" type="xs:dateTime"/>

<xs:attribute name="cacheDuration" type="xs:duration"/>

</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 name="validUntil" type="xs:dateTime"/>

<xs:attribute name="cacheDuration" type="xs:duration"/>

<xs:attribute name="id" type="xs:ID" use="optional"/>

</xs:complexType>

</xs:schema>



Previous      Contents      Index      Next     


Part No: 817-7648.   Copyright 2005 Sun Microsystems, Inc. All rights reserved.