Sun Java System Access Manager 7 2005Q4 Federation and SAML Administration Guide

Personal Profile 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.


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>