<!--
		SIF Infrastructure Specification 3.7

		(January 21, 2025)
		
		Infrastructure Version: 3.7
		
		license: 
		    name: Apache  2.0
        identifier: Apache-2.0
        url: 'https://home.a4l.org/legal/'
	-->
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="http://www.sifassociation.org/infrastructure/3.7" targetNamespace="http://www.sifassociation.org/infrastructure/3.7" elementFormDefault="qualified" version="3.7">
  <xs:complexType name="gCoreEmailListType">
    <xs:annotation>
      <xs:appinfo>
        <sifChar />
        <privacyRating />
      </xs:appinfo>
      <xs:documentation>A list of e-mail addresses associated with an individual or organization.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="email" maxOccurs="unbounded" type="gCoreEmailType">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>MR</sifChar>
            <privacyRating />
          </xs:appinfo>
          <xs:documentation>The email address.</xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:simpleType name="gCoreEmailType">
    <xs:restriction base="xs:normalizedString">
      <xs:annotation>
        <xs:appinfo>
          <sifChar>M</sifChar>
          <privacyRating />
        </xs:appinfo>
        <xs:documentation>This element represents an e-mail address of one of a number of types and occurs in objects such as
        StudentPersonal, StaffPersonal, StudentContactPersonal, etc..</xs:documentation>
      </xs:annotation>
    </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="gCorePhoneNumberListType">
    <xs:annotation>
      <xs:appinfo>
        <sifChar />
        <privacyRating />
      </xs:appinfo>
      <xs:documentation>Lists phone numbers associated with an entity.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="phoneNumber" maxOccurs="unbounded" type="gCorePhoneNumberType">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>MR</sifChar>
            <privacyRating />
          </xs:appinfo>
          <xs:documentation />
        </xs:annotation>
      </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="gCorePhoneNumberType">
    <xs:annotation>
      <xs:appinfo>
        <sifChar />
        <privacyRating />
      </xs:appinfo>
      <xs:documentation>This element represents a phone number and occurs within objects such as StudentPersonal, StaffPersonal, etc.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="number" type="xs:normalizedString">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>M</sifChar>
            <privacyRating />
          </xs:appinfo>
          <xs:documentation>Phone number.  Free-form, but typical Australian formats include:</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="extension" minOccurs="0" nillable="true" type="xs:normalizedString">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>O</sifChar>
            <privacyRating />
          </xs:appinfo>
          <xs:documentation>Phone number extension.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="listedStatus" minOccurs="0" nillable="true">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>O</sifChar>
            <privacyRating />
          </xs:appinfo>
          <xs:documentation>Indicates whether or not the phone number is available to the public.</xs:documentation>
        </xs:annotation>
        <xs:simpleType>
          <xs:restriction base="xs:token">
            <xs:enumeration value="Y" />
            <xs:enumeration value="N" />
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element name="preference" minOccurs="0" nillable="true" type="xs:unsignedInt">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>O</sifChar>
            <privacyRating />
          </xs:appinfo>
          <xs:documentation>Preference number indicating an order in which phone numbers should be used when contacting person.</xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="gCoreNameType">
    <xs:annotation>
      <xs:appinfo>
        <sifChar />
        <privacyRating />
      </xs:appinfo>
      <xs:documentation>
        Core Name Type or Name elements, primarily to allow structure to be leveraged with different Type attribute values.
      </xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="title" minOccurs="0" nillable="true" type="xs:normalizedString">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>O</sifChar>
            <privacyRating />
          </xs:appinfo>
          <xs:documentation>A title or prefix associated with the name. If any of: Mr, Mrs, Ms, Miss, Rev, Fr, Dr, Prof, Hon, Sir, Lord, Lady - these must be as shown, otherwise free text. Note that title is not applicable to learners. </xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="familyName" minOccurs="0" nillable="true" type="xs:normalizedString">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>C</sifChar>
            <privacyRating />
          </xs:appinfo>
          <xs:documentation>Family name. That part of the person`s name which is used to describe family, clan, tribal group, or marital association. Note that this element is required when known. However, it may not be possible to know the family name in which case you should add the available information to the FullName element. </xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="givenName" minOccurs="0" nillable="true" type="xs:normalizedString">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>C</sifChar>
            <privacyRating />
          </xs:appinfo>
          <xs:documentation>Given name of the person. Note that this element is required if known. However, it may not be possible to know the given name in which case you should add the available information to the FullName element. </xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="otherGivenNames" minOccurs="0" nillable="true" type="xs:normalizedString">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>O</sifChar>
            <privacyRating />
          </xs:appinfo>
          <xs:documentation>All other given or middle names, each separated with a single space character. </xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="familyNameFirst" minOccurs="0" nillable="true">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>O</sifChar>
            <privacyRating />
          </xs:appinfo>
          <xs:documentation>An indicator used to identify the naming conventions used by some predominantly non-European, ethnic or language groups and related to the display nature of a name. </xs:documentation>
        </xs:annotation>
        <xs:simpleType>
          <xs:restriction base="xs:token">
            <xs:enumeration value="Y" />
            <xs:enumeration value="N" />
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element name="preferredName" minOccurs="0" nillable="true" type="xs:normalizedString">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>O</sifChar>
            <privacyRating />
          </xs:appinfo>
          <xs:documentation>The given name preferred most by the person (as written). </xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="gCoreContactListType">
    <xs:annotation>
      <xs:appinfo>
        <sifChar />
        <privacyRating />
      </xs:appinfo>
      <xs:documentation>List of Contacts associated with an entity.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="contact" maxOccurs="unbounded" type="gCoreContactInfoType">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>MR</sifChar>
            <privacyRating />
          </xs:appinfo>
          <xs:documentation />
        </xs:annotation>
      </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="gCoreContactInfoType">
    <xs:annotation>
      <xs:appinfo>
        <sifChar />
        <privacyRating />
      </xs:appinfo>
      <xs:documentation>Common element used to supply information for a contact person at a school, LEA, or other institution.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="name" type="gCoreNameType">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>M</sifChar>
            <privacyRating />
          </xs:appinfo>
          <xs:documentation />
        </xs:annotation>
      </xs:element>
      <xs:element name="positionTitle" minOccurs="0" nillable="true" type="xs:normalizedString">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>O</sifChar>
            <privacyRating />
          </xs:appinfo>
          <xs:documentation>The contact person`s position title.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="role" minOccurs="0" nillable="true" type="xs:normalizedString">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>O</sifChar>
            <privacyRating />
          </xs:appinfo>
          <xs:documentation>Role played by this contact in this instance.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="registrationDetails" minOccurs="0" nillable="true" type="xs:normalizedString">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>O</sifChar>
            <privacyRating />
          </xs:appinfo>
          <xs:documentation>Registration Details of the Contact.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="qualifications" minOccurs="0" nillable="true" type="xs:normalizedString">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>O</sifChar>
            <privacyRating />
          </xs:appinfo>
          <xs:documentation>Qualifications of the Contact.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="address" minOccurs="0" nillable="true" type="gCoreAddressType">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>O</sifChar>
            <privacyRating />
          </xs:appinfo>
          <xs:documentation>Address of the contact.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="emailList" minOccurs="0" nillable="true" type="gCoreEmailListType">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>O</sifChar>
            <privacyRating />
          </xs:appinfo>
          <xs:documentation>List of Email elements.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="phoneNumberList" minOccurs="0" nillable="true" type="gCorePhoneNumberListType">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>O</sifChar>
            <privacyRating />
          </xs:appinfo>
          <xs:documentation>List of PhoneNumber elements.</xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="gCoreAddressType">
    <xs:annotation>
      <xs:appinfo>
        <sifChar>M</sifChar>
        <privacyRating />
      </xs:appinfo>
      <xs:documentation>This element contains address data.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="effectiveFromDate" minOccurs="0" nillable="true" type="xs:date">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>O</sifChar>
            <privacyRating />
          </xs:appinfo>
          <xs:documentation>Date the address became valid.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="effectiveToDate" minOccurs="0" nillable="true" type="xs:date">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>O</sifChar>
            <privacyRating />
          </xs:appinfo>
          <xs:documentation>Date the address ceases to be valid.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="line1" type="xs:normalizedString">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>M</sifChar>
            <privacyRating />
          </xs:appinfo>
          <xs:documentation>Address line 1.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="line2" minOccurs="0" nillable="true" type="xs:normalizedString">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>O</sifChar>
            <privacyRating />
          </xs:appinfo>
          <xs:documentation>Address line 2.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="line3" minOccurs="0" nillable="true" type="xs:normalizedString">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>O</sifChar>
            <privacyRating />
          </xs:appinfo>
          <xs:documentation>Address line 3.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="city" type="xs:normalizedString">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>M</sifChar>
            <privacyRating />
          </xs:appinfo>
          <xs:documentation>The city or Suburb part of the address.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="stateProvince" minOccurs="0" nillable="true" type="gCoreStateProvinceType">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>C</sifChar>
            <privacyRating />
          </xs:appinfo>
          <xs:documentation>The state or province  or county.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="country" minOccurs="0" nillable="true" type="gCoreCountryType">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>O</sifChar>
            <privacyRating />
          </xs:appinfo>
          <xs:documentation>The country code.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="postalCode" type="xs:normalizedString">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>M</sifChar>
            <privacyRating />
          </xs:appinfo>
          <xs:documentation>The ZIP/postal code.</xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="gCoreAddressListType">
    <xs:annotation>
      <xs:appinfo>
        <sifChar />
        <privacyRating />
      </xs:appinfo>
      <xs:documentation>A list of Address elements.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="address" maxOccurs="unbounded" type="gCoreAddressType">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>MR</sifChar>
            <privacyRating />
          </xs:appinfo>
          <xs:documentation />
        </xs:annotation>
      </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:simpleType name="gCoreCountryType">
    <xs:restriction base="xs:normalizedString">
      <xs:annotation>
        <xs:appinfo>
          <sifChar />
          <privacyRating />
        </xs:appinfo>
        <xs:documentation>A country code or name.</xs:documentation>
      </xs:annotation>
    </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="gCoreLocalIdType">
    <xs:restriction base="xs:normalizedString">
      <xs:annotation>
        <xs:appinfo>
          <sifChar />
          <privacyRating />
        </xs:appinfo>
        <xs:documentation>
        This is a common element used to define the locally assigned identifier associated with an entity. 
      </xs:documentation>
      </xs:annotation>
    </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="gCoreStateProvinceIdType">
    <xs:restriction base="xs:normalizedString">
      <xs:annotation>
        <xs:appinfo>
          <sifChar />
          <privacyRating />
        </xs:appinfo>
        <xs:documentation>The identifier for this entity as assigned by the state or province.</xs:documentation>
      </xs:annotation>
    </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="gCoreStateProvinceType">
    <xs:restriction base="xs:normalizedString">
      <xs:annotation>
        <xs:appinfo>
          <sifChar />
          <privacyRating />
        </xs:appinfo>
        <xs:documentation>A state or province code. Note: When dealing with countries other than Australia, state/province codes/values other than those referenced here can be used.</xs:documentation>
      </xs:annotation>
    </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="gCoreGenderType">
    <xs:restriction base="xs:token">
      <xs:annotation>
        <xs:appinfo>
          <sifChar />
          <privacyRating />
        </xs:appinfo>
        <xs:documentation />
      </xs:annotation>
      <xs:enumeration value="M" />
      <xs:enumeration value="F" />
      <xs:enumeration value="X" />
      <xs:enumeration value="U" />
    </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="privacyListType">
    <xs:annotation>
      <xs:appinfo>
        <sifChar />
        <privacyRating />
      </xs:appinfo>
      <xs:documentation />
    </xs:annotation>
    <xs:sequence>
      <xs:element name="privacy" minOccurs="0" maxOccurs="unbounded" type="privacyType">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>OR</sifChar>
            <privacyRating />
          </xs:appinfo>
          <xs:documentation />
        </xs:annotation>
      </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="privacyType">
    <xs:annotation>
      <xs:appinfo>
        <sifChar />
        <privacyRating />
      </xs:appinfo>
      <xs:documentation>.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="default">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>M</sifChar>
            <privacyRating />
          </xs:appinfo>
          <xs:documentation>Is this the default privacy template?</xs:documentation>
        </xs:annotation>
        <xs:simpleType>
          <xs:restriction base="xs:token">
            <xs:enumeration value="Y" />
            <xs:enumeration value="N" />
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element name="appIDList" minOccurs="0" nillable="true" type="appIDListType">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>O</sifChar>
            <privacyRating />
          </xs:appinfo>
          <xs:documentation>The list of applications in this contract.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="adapterFingerprintList" minOccurs="0" nillable="true" type="adapterFingerprintListType">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>O</sifChar>
            <privacyRating />
          </xs:appinfo>
          <xs:documentation>A list of fingerprints.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="zoneContextList" minOccurs="0" nillable="true" type="zoneContextListType">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>O</sifChar>
            <privacyRating />
          </xs:appinfo>
          <xs:documentation>A list zones and contexts where this POD applies.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="endpointList" minOccurs="0" nillable="true" type="endpointListType">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>O</sifChar>
            <privacyRating />
          </xs:appinfo>
          <xs:documentation>A list of endpoints that are covered by this POD.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="dataModelNamespace" minOccurs="0" nillable="true" type="xs:anyURI">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>O</sifChar>
            <privacyRating />
          </xs:appinfo>
          <xs:documentation>Namespace associated with the relevant datamodel.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="dataModelVersionMin" minOccurs="0" nillable="true" type="xs:normalizedString">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>O</sifChar>
            <privacyRating />
          </xs:appinfo>
          <xs:documentation>Minimum data model version.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="dataModelVersionMax" minOccurs="0" nillable="true" type="xs:normalizedString">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>O</sifChar>
            <privacyRating />
          </xs:appinfo>
          <xs:documentation>Maximum data model version.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="privacyObligationsDocument" minOccurs="0" nillable="true" type="privacyObligationsDocumentType">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>O</sifChar>
            <privacyRating />
          </xs:appinfo>
          <xs:documentation>The legal and technical requirements that are required to be met to satisfy privacy and security concerns.</xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="privacyObligationsDocumentType">
    <xs:annotation>
      <xs:appinfo>
        <sifChar />
        <privacyRating />
      </xs:appinfo>
      <xs:documentation />
    </xs:annotation>
    <xs:sequence>
      <xs:element name="contract" minOccurs="0" nillable="true" type="contractType">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>O</sifChar>
            <privacyRating />
          </xs:appinfo>
          <xs:documentation>The details of the contract the POD has been derived from.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="legalRequirements" minOccurs="0" nillable="true" type="legalRequirementsType">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>O</sifChar>
            <privacyRating />
          </xs:appinfo>
          <xs:documentation>Legal Requirements Container.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="technicalRequirements" minOccurs="0" nillable="true" type="technicalRequirementsType">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>O</sifChar>
            <privacyRating />
          </xs:appinfo>
          <xs:documentation>Technical Requirements Container.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="dataController" minOccurs="0" nillable="true" type="dataControllerType">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>O</sifChar>
            <privacyRating />
          </xs:appinfo>
          <xs:documentation>The data controller, means the natural or legal person, public authority, agency or other body which, alone or jointly with others, determines the purposes and means of the processing of personal data, see GDPR.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="dataProcessor" minOccurs="0" nillable="true" type="dataProcessorType">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>O</sifChar>
            <privacyRating />
          </xs:appinfo>
          <xs:documentation>The data processor, means a natural or legal person, public authority, agency or other body which processes personal data on behalf of the controller, see GDPR.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="dataSubProcessorList" minOccurs="0" nillable="true" type="dataSubProcessorListType">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>O</sifChar>
            <privacyRating />
          </xs:appinfo>
          <xs:documentation>The list of data sub-Processors who are the bodies that process data on behalf of the Data Processor.</xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="contractType">
    <xs:annotation>
      <xs:appinfo>
        <sifChar>O</sifChar>
        <privacyRating />
      </xs:appinfo>
      <xs:documentation>The details of the contract the POD has been derived from.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="contractURI" type="xs:anyURI">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>M</sifChar>
            <privacyRating />
          </xs:appinfo>
          <xs:documentation>URI associated with contract.  This may be a resolvable URL or just a unique identifier.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="contractName" type="xs:normalizedString">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>M</sifChar>
            <privacyRating />
          </xs:appinfo>
          <xs:documentation>Name associated with contract</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="dateValidFrom" type="xs:date">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>M</sifChar>
            <privacyRating />
          </xs:appinfo>
          <xs:documentation>The initial date that the contract is enforceable.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="dateValidTo" minOccurs="0" nillable="true" type="xs:date">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>O</sifChar>
            <privacyRating />
          </xs:appinfo>
          <xs:documentation>The date the contract expires and is no longer enforcable.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="contractVersion" minOccurs="0" nillable="true" type="xs:normalizedString">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>O</sifChar>
            <privacyRating />
          </xs:appinfo>
          <xs:documentation>The version of the contract being represented by the associated elements.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="lawList" type="lawListType">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>M</sifChar>
            <privacyRating />
          </xs:appinfo>
          <xs:documentation>List of laws covered referenced by the contract.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="studentDataIPRights" minOccurs="0" nillable="true" type="xs:normalizedString">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>O</sifChar>
            <privacyRating />
          </xs:appinfo>
          <xs:documentation>Who owns the intellectual property for any student under this contract.</xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="lawListType">
    <xs:annotation>
      <xs:appinfo>
        <sifChar />
        <privacyRating />
      </xs:appinfo>
      <xs:documentation>A list of parties and data sharing permissions.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="law" minOccurs="0" maxOccurs="unbounded" type="lawType">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>OR</sifChar>
            <privacyRating />
          </xs:appinfo>
          <xs:documentation>A law that applies to this contract.</xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="lawType">
    <xs:annotation>
      <xs:appinfo>
        <sifChar />
        <privacyRating />
      </xs:appinfo>
      <xs:documentation>Information about the specific law.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="lawName" type="xs:normalizedString">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>M</sifChar>
            <privacyRating />
          </xs:appinfo>
          <xs:documentation>The name of the law support is being included for.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="lawDescription" type="xs:normalizedString">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>M</sifChar>
            <privacyRating />
          </xs:appinfo>
          <xs:documentation>A simplified representation of a law, designed to communicate its intent to any member of the public.</xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="legalRequirementsType">
    <xs:annotation>
      <xs:appinfo>
        <sifChar />
        <privacyRating />
      </xs:appinfo>
      <xs:documentation>Contains a list of the legal clauses within the contract.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="clauseList" type="clauseListType">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>M</sifChar>
            <privacyRating />
          </xs:appinfo>
          <xs:documentation>A list of the legal clauses within the contract.</xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="clauseListType">
    <xs:annotation>
      <xs:appinfo>
        <sifChar />
        <privacyRating />
      </xs:appinfo>
      <xs:documentation>A list of the legal clauses within the contract.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="clause" minOccurs="0" maxOccurs="unbounded" type="clauseType">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>OR</sifChar>
            <privacyRating />
          </xs:appinfo>
          <xs:documentation>Details of a legal clause within the contract.</xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="clauseType">
    <xs:annotation>
      <xs:appinfo>
        <sifChar />
        <privacyRating />
      </xs:appinfo>
      <xs:documentation>Details of a legal clause within the contract.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="clauseLabel" minOccurs="0" nillable="true" type="xs:normalizedString">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>O</sifChar>
            <privacyRating />
          </xs:appinfo>
          <xs:documentation>A human friendly handle for refering to the associated clause.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="clauseReference" minOccurs="0" nillable="true" type="xs:normalizedString">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>O</sifChar>
            <privacyRating />
          </xs:appinfo>
          <xs:documentation>An exact reference within the contract to a specific clause.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="clauseContent" minOccurs="0" nillable="true" type="xs:normalizedString">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>O</sifChar>
            <privacyRating />
          </xs:appinfo>
          <xs:documentation>The actual detailed content of the clause.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="obligationList" minOccurs="0" nillable="true" type="obligationListType">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>O</sifChar>
            <privacyRating />
          </xs:appinfo>
          <xs:documentation>List of obligations.</xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="benchmarkListType">
    <xs:annotation>
      <xs:appinfo>
        <sifChar />
        <privacyRating />
      </xs:appinfo>
      <xs:documentation>A List of benchmarks - where a benchmark is a set of technical or process standards to ensure the clause is met.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="benchmark" minOccurs="0" maxOccurs="unbounded" type="benchmarkType">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>OR</sifChar>
            <privacyRating />
          </xs:appinfo>
          <xs:documentation>A benchmark is a set of technical or process standards to ensure the clause is met.</xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="benchmarkType">
    <xs:annotation>
      <xs:appinfo>
        <sifChar />
        <privacyRating />
      </xs:appinfo>
      <xs:documentation>A set of technical or process standards to ensure the clause is met.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="benchmarkName" minOccurs="0" nillable="true" type="xs:normalizedString">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>O</sifChar>
            <privacyRating />
          </xs:appinfo>
          <xs:documentation>A name given to the evidence against which privacy obligations or requirements may be  assessed or measured.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="benchmarkId" minOccurs="0" nillable="true" type="gCoreLocalIdType">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>O</sifChar>
            <privacyRating />
          </xs:appinfo>
          <xs:documentation>A unique identifier assigned to an instance of the evidence against which privacy obligations or requirements may be assessed or measured.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="benchmarkDescription" minOccurs="0" nillable="true" type="xs:normalizedString">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>O</sifChar>
            <privacyRating />
          </xs:appinfo>
          <xs:documentation>A description of the evidence against which privacy obligations or requirements may be  assessed or measured.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="benchmarkURL" minOccurs="0" nillable="true" type="xs:anyURI">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>O</sifChar>
            <privacyRating />
          </xs:appinfo>
          <xs:documentation>A URL pointing to the evidence against which privacy obligations or requirements may be  assessed or measured.</xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="obligationListType">
    <xs:annotation>
      <xs:appinfo>
        <sifChar />
        <privacyRating />
      </xs:appinfo>
      <xs:documentation>A list of requirements imposed by the contract.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="obligation" minOccurs="0" maxOccurs="unbounded" type="obligationType">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>OR</sifChar>
            <privacyRating />
          </xs:appinfo>
          <xs:documentation>A requirement imposed by the contract.</xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="obligationType">
    <xs:annotation>
      <xs:appinfo>
        <sifChar />
        <privacyRating />
      </xs:appinfo>
      <xs:documentation>A requirement imposed by the contract.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="obligationDescription" minOccurs="0" nillable="true" type="xs:normalizedString">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>O</sifChar>
            <privacyRating />
          </xs:appinfo>
          <xs:documentation>The narrative of an individual requirement imposed by the contract.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="obligationURL" minOccurs="0" nillable="true" type="xs:anyURI">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>O</sifChar>
            <privacyRating />
          </xs:appinfo>
          <xs:documentation>The URL pointing to the official definition of a requirment imposed by the contract.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="benchmarkList" minOccurs="0" nillable="true" type="benchmarkListType">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>O</sifChar>
            <privacyRating />
          </xs:appinfo>
          <xs:documentation>A list of benchmarks associated with the obligation.</xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="technicalRequirementsType">
    <xs:annotation>
      <xs:appinfo>
        <sifChar />
        <privacyRating />
      </xs:appinfo>
      <xs:documentation>Details of technical requirements that need to be met to achieve the POD.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="dataAccess" minOccurs="0" nillable="true" type="dataAccessType">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>O</sifChar>
            <privacyRating />
          </xs:appinfo>
          <xs:documentation>A list of the data that can be accessed and any rules that specifically apply.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="conditionList" minOccurs="0" nillable="true" type="conditionListType">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>O</sifChar>
            <privacyRating />
          </xs:appinfo>
          <xs:documentation />
        </xs:annotation>
      </xs:element>
      <xs:element name="dataSubject" minOccurs="0" nillable="true" type="dataSubjectType">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>O</sifChar>
            <privacyRating />
          </xs:appinfo>
          <xs:documentation>The specific clauses obligations and benchmarks that applies to the subject - teacher, student or parent.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="dataDeletion" minOccurs="0" nillable="true" type="dataDeletionType">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>O</sifChar>
            <privacyRating />
          </xs:appinfo>
          <xs:documentation>Details and requirements for data deletion.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="securityTechnologyList" minOccurs="0" nillable="true" type="securityTechnologyListType">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>O</sifChar>
            <privacyRating />
          </xs:appinfo>
          <xs:documentation />
        </xs:annotation>
      </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="dataAccessType">
    <xs:annotation>
      <xs:appinfo>
        <sifChar />
        <privacyRating />
      </xs:appinfo>
      <xs:documentation>A list of the data that can be accessed and any rules that specifically apply.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="clauseList" minOccurs="0" nillable="true" type="clauseListType">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>O</sifChar>
            <privacyRating />
          </xs:appinfo>
          <xs:documentation>A list of clauses that specifically apply to these technical requirements.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="fieldList" minOccurs="0" nillable="true" type="fieldListType">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>O</sifChar>
            <privacyRating />
          </xs:appinfo>
          <xs:documentation>A list of fields that can be accessed under this POD.  Equivalent to a green list.</xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="dataSubjectType">
    <xs:annotation>
      <xs:appinfo>
        <sifChar />
        <privacyRating />
      </xs:appinfo>
      <xs:documentation>The specific clauses obligations and benchmarks that applies to the subject - teacher, student or parent.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="clauseList" minOccurs="0" nillable="true" type="clauseListType">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>O</sifChar>
            <privacyRating />
          </xs:appinfo>
          <xs:documentation />
        </xs:annotation>
      </xs:element>
      <xs:element name="benchmarkList" minOccurs="0" nillable="true" type="benchmarkListType">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>O</sifChar>
            <privacyRating />
          </xs:appinfo>
          <xs:documentation />
        </xs:annotation>
      </xs:element>
      <xs:element name="fieldList" minOccurs="0" nillable="true" type="fieldListType">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>O</sifChar>
            <privacyRating />
          </xs:appinfo>
          <xs:documentation>A list of fields that can be accessed under this POD.  Equivalent to a green list.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="respondInDays" minOccurs="0" nillable="true" type="xs:integer">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>O</sifChar>
            <privacyRating />
          </xs:appinfo>
          <xs:documentation>Maximum response time, number of days, for information regarding this data.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="requirePortability" minOccurs="0" nillable="true">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>O</sifChar>
            <privacyRating />
          </xs:appinfo>
          <xs:documentation>Flag indicating that the rules surrounding this data must be ported with applicable data that is transmitted.</xs:documentation>
        </xs:annotation>
        <xs:simpleType>
          <xs:restriction base="xs:token">
            <xs:enumeration value="Y" />
            <xs:enumeration value="N" />
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="dataDeletionType">
    <xs:annotation>
      <xs:appinfo>
        <sifChar />
        <privacyRating />
      </xs:appinfo>
      <xs:documentation>Details and requirements for data deletion.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="deleteData" minOccurs="0" nillable="true">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>O</sifChar>
            <privacyRating />
          </xs:appinfo>
          <xs:documentation>Flag indicating that the data must be deleted when no longer requred for the primary purpose.</xs:documentation>
        </xs:annotation>
        <xs:simpleType>
          <xs:restriction base="xs:token">
            <xs:enumeration value="Y" />
            <xs:enumeration value="N" />
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element name="dataRetention" minOccurs="0" nillable="true" type="xs:integer">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>O</sifChar>
            <privacyRating />
          </xs:appinfo>
          <xs:documentation>If allowed, the length of time the data be retained when no longer required for the primary purpose.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="deleteBy" minOccurs="0" nillable="true" type="xs:date">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>O</sifChar>
            <privacyRating />
          </xs:appinfo>
          <xs:documentation>The specific date should this data be removed from the systems.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="partyToDeleteData" minOccurs="0" nillable="true" type="partyToDeleteDataType">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>O</sifChar>
            <privacyRating />
          </xs:appinfo>
          <xs:documentation>Who is responsible for deletion of this data?</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="respondInDays" minOccurs="0" nillable="true" type="xs:integer">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>O</sifChar>
            <privacyRating />
          </xs:appinfo>
          <xs:documentation>Maximum response time, number of days, for information regarding this data.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="requirePortability" minOccurs="0" nillable="true">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>O</sifChar>
            <privacyRating />
          </xs:appinfo>
          <xs:documentation>Flag indicating that the rules surrounding this data must be ported with applicable data that is transmitted.</xs:documentation>
        </xs:annotation>
        <xs:simpleType>
          <xs:restriction base="xs:token">
            <xs:enumeration value="Y" />
            <xs:enumeration value="N" />
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="partyToDeleteDataType">
    <xs:annotation>
      <xs:appinfo>
        <sifChar />
        <privacyRating />
      </xs:appinfo>
      <xs:documentation>Who is responsible for deletion of this data?</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="organisation" minOccurs="0" nillable="true" type="gCoreLocalIdType">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>O</sifChar>
            <privacyRating />
          </xs:appinfo>
          <xs:documentation>The group responsible for ensuring the data is removed when required.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="deletecontactInfo" minOccurs="0" nillable="true" type="gCoreContactInfoType">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>O</sifChar>
            <privacyRating />
          </xs:appinfo>
          <xs:documentation />
        </xs:annotation>
      </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="securityTechnologyListType">
    <xs:annotation>
      <xs:appinfo>
        <sifChar />
        <privacyRating />
      </xs:appinfo>
      <xs:documentation />
    </xs:annotation>
    <xs:sequence>
      <xs:element name="securityTechnology" minOccurs="0" maxOccurs="unbounded" type="securityTechnologyType">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>OR</sifChar>
            <privacyRating />
          </xs:appinfo>
          <xs:documentation />
        </xs:annotation>
      </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="securityTechnologyType">
    <xs:annotation>
      <xs:appinfo>
        <sifChar />
        <privacyRating />
      </xs:appinfo>
      <xs:documentation />
    </xs:annotation>
    <xs:sequence>
      <xs:element name="clauseList" minOccurs="0" nillable="true" type="clauseListType">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>O</sifChar>
            <privacyRating />
          </xs:appinfo>
          <xs:documentation />
        </xs:annotation>
      </xs:element>
      <xs:element name="technologyName" minOccurs="0" nillable="true" type="xs:normalizedString">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>O</sifChar>
            <privacyRating />
          </xs:appinfo>
          <xs:documentation>The name of the technology being utilized.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="technologyDescription" minOccurs="0" nillable="true" type="xs:normalizedString">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>O</sifChar>
            <privacyRating />
          </xs:appinfo>
          <xs:documentation>The narrative as to what the technology`s role is in providing security.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="referenceURL" minOccurs="0" nillable="true" type="xs:anyURI">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>O</sifChar>
            <privacyRating />
          </xs:appinfo>
          <xs:documentation />
        </xs:annotation>
      </xs:element>
      <xs:element name="versionMin" minOccurs="0" nillable="true" type="xs:normalizedString">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>O</sifChar>
            <privacyRating />
          </xs:appinfo>
          <xs:documentation>The version at which the technology is considered sufficient to supply security for its applicable area.</xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="fieldListType">
    <xs:annotation>
      <xs:appinfo>
        <sifChar />
        <privacyRating />
      </xs:appinfo>
      <xs:documentation>A list of fields that can be accessed under this POD.  Equivalent to a green list.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="field" minOccurs="0" maxOccurs="unbounded" type="fieldType">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>OR</sifChar>
            <privacyRating />
          </xs:appinfo>
          <xs:documentation>Details of a field that can be accessed under this POD, equivalent to an element in a green list.</xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="fieldType">
    <xs:annotation>
      <xs:appinfo>
        <sifChar />
        <privacyRating />
      </xs:appinfo>
      <xs:documentation>Details of a field that can be accessed under this POD, equivalent to an element in a green list.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="fieldName" minOccurs="0" nillable="true" type="xs:normalizedString">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>O</sifChar>
            <privacyRating />
          </xs:appinfo>
          <xs:documentation>The full unique path for the data field being granted access to.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="controlrights" minOccurs="0" nillable="true">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>O</sifChar>
            <privacyRating />
          </xs:appinfo>
          <xs:documentation>The level of access being granted to the data.</xs:documentation>
        </xs:annotation>
        <xs:simpleType>
          <xs:restriction base="xs:token">
            <xs:enumeration value="R" />
            <xs:enumeration value="RW" />
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="dataControllerType">
    <xs:annotation>
      <xs:appinfo>
        <sifChar />
        <privacyRating />
      </xs:appinfo>
      <xs:documentation>The data controller, means the natural or legal person, public authority, agency or other body which, alone or jointly with others, determines the purposes and means of the processing of personal data, see GDPR.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="dataControllerName" minOccurs="0" nillable="true" type="xs:normalizedString">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>O</sifChar>
            <privacyRating />
          </xs:appinfo>
          <xs:documentation>The name of the natural or legal person, public authority, agency or other body which, alone or jointly with others, determines the purposes and means of the processing of personal data.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="privacyPolicyURL" type="xs:anyURI">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>M</sifChar>
            <privacyRating />
          </xs:appinfo>
          <xs:documentation>URL Associated with contract</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="privacyContactList" minOccurs="0" nillable="true" type="gCoreContactListType">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>O</sifChar>
            <privacyRating />
          </xs:appinfo>
          <xs:documentation>The details of the privacy contact.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="issuesNotificationContactList" minOccurs="0" nillable="true" type="gCoreContactListType">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>O</sifChar>
            <privacyRating />
          </xs:appinfo>
          <xs:documentation>The details of the individual to be contacted if there are issues in fulfilling the obligations of the contract.</xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="dataSubProcessorListType">
    <xs:annotation>
      <xs:appinfo>
        <sifChar />
        <privacyRating />
      </xs:appinfo>
      <xs:documentation>The list of data sub-Processors who are the bodies that process data on behalf of the Data Processor.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="dataSubProcessor" minOccurs="0" maxOccurs="unbounded" type="dataSubProcessorType">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>OR</sifChar>
            <privacyRating />
          </xs:appinfo>
          <xs:documentation>A data sub-Processors who are the bodies that process data on behalf of the Data Processor.</xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="dataProcessorType">
    <xs:annotation>
      <xs:appinfo>
        <sifChar />
        <privacyRating />
      </xs:appinfo>
      <xs:documentation>The data processor, means a natural or legal person, public authority, agency or other body which processes personal data on behalf of the controller, see GDPR.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="dataProcessorName" minOccurs="0" nillable="true" type="xs:normalizedString">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>O</sifChar>
            <privacyRating />
          </xs:appinfo>
          <xs:documentation>The label for the vendor who will be accessing, consuming and/or providing information back to the controller.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="privacyPolicyURL" type="xs:anyURI">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>M</sifChar>
            <privacyRating />
          </xs:appinfo>
          <xs:documentation>URL Associated with contract</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="privacyContactList" minOccurs="0" nillable="true" type="gCoreContactListType">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>O</sifChar>
            <privacyRating />
          </xs:appinfo>
          <xs:documentation>The details of the privacy contact.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="notifyDataControllerOnAccessRequests" minOccurs="0" nillable="true">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>O</sifChar>
            <privacyRating />
          </xs:appinfo>
          <xs:documentation>Indicates if the processor needs to advise the controller of access requests.</xs:documentation>
        </xs:annotation>
        <xs:simpleType>
          <xs:restriction base="xs:token">
            <xs:enumeration value="Y" />
            <xs:enumeration value="N" />
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element name="dataProcessorContactForAccessRequestsList" minOccurs="0" nillable="true" type="gCoreContactListType">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>O</sifChar>
            <privacyRating />
          </xs:appinfo>
          <xs:documentation>The details of the person to contact for access requests.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="purposeList" minOccurs="0" nillable="true" type="purposeListType">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>O</sifChar>
            <privacyRating />
          </xs:appinfo>
          <xs:documentation>A list or purposes for which the data may be used.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="alternatePurposeList" minOccurs="0" nillable="true" type="alternatePurposeListType">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>O</sifChar>
            <privacyRating />
          </xs:appinfo>
          <xs:documentation>A purpose for which the data may be shared beyond its orginal uses.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="deidentifiedPurposeList" minOccurs="0" nillable="true" type="deidentifiedPurposeListType">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>O</sifChar>
            <privacyRating />
          </xs:appinfo>
          <xs:documentation>The purposes for which deidentified data is able to be used (if any).</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="dataUsageMarketingAllowed" minOccurs="0" nillable="true">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>O</sifChar>
            <privacyRating />
          </xs:appinfo>
          <xs:documentation>Determines whether the data may be used for marketing purposes.</xs:documentation>
        </xs:annotation>
        <xs:simpleType>
          <xs:restriction base="xs:token">
            <xs:enumeration value="Y" />
            <xs:enumeration value="N" />
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element name="personalInformationUpdatedFromSource" minOccurs="0" nillable="true" type="xs:integer">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>O</sifChar>
            <privacyRating />
          </xs:appinfo>
          <xs:documentation>The frequency at which personal information is to be updated from source systems, including deletions.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="dataBreachNotification" minOccurs="0" nillable="true">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>O</sifChar>
            <privacyRating />
          </xs:appinfo>
          <xs:documentation>Determines if notification of those in the breach contact list is required.</xs:documentation>
        </xs:annotation>
        <xs:simpleType>
          <xs:restriction base="xs:token">
            <xs:enumeration value="Y" />
            <xs:enumeration value="N" />
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element name="dataBreachContactList" minOccurs="0" nillable="true" type="gCoreContactListType">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>O</sifChar>
            <privacyRating />
          </xs:appinfo>
          <xs:documentation>Contact details for the individual/s to be notified in the event of a data breach.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="employeesMustComplyWithAgreement" minOccurs="0" nillable="true">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>O</sifChar>
            <privacyRating />
          </xs:appinfo>
          <xs:documentation>Determines whether the data controller and their staff must also comply with the privacy agreement.</xs:documentation>
        </xs:annotation>
        <xs:simpleType>
          <xs:restriction base="xs:token">
            <xs:enumeration value="Y" />
            <xs:enumeration value="N" />
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element name="employeeConfidentialityAgreement" minOccurs="0" nillable="true">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>O</sifChar>
            <privacyRating />
          </xs:appinfo>
          <xs:documentation>Determines whether the data controller and their staff must also comply with the confidentiality agreement.</xs:documentation>
        </xs:annotation>
        <xs:simpleType>
          <xs:restriction base="xs:token">
            <xs:enumeration value="Y" />
            <xs:enumeration value="N" />
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element name="employeeTrainingList" minOccurs="0" nillable="true" type="employeeTrainingListType">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>O</sifChar>
            <privacyRating />
          </xs:appinfo>
          <xs:documentation>A list of the data controller employee’s training requirements.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="passwordEmployeeAccessStandard" minOccurs="0" nillable="true" type="passwordEmployeeAccessStandardType">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>O</sifChar>
            <privacyRating />
          </xs:appinfo>
          <xs:documentation>A list of the data controller employee’s password access standards.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="securityTestRequiredList" minOccurs="0" nillable="true" type="securityTestRequiredListType">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>O</sifChar>
            <privacyRating />
          </xs:appinfo>
          <xs:documentation>A list of security testing required to be completed by the data controller.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="countryImpactedList" minOccurs="0" nillable="true" type="countryImpactedListType">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>O</sifChar>
            <privacyRating />
          </xs:appinfo>
          <xs:documentation>List of impacted countries in or through which the data transits or is stored.</xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="dataSubProcessorType">
    <xs:annotation>
      <xs:appinfo>
        <sifChar />
        <privacyRating />
      </xs:appinfo>
      <xs:documentation>Details of organisations who process data on behalf of the data processor.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="subProcessorName" minOccurs="0" nillable="true" type="xs:normalizedString">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>O</sifChar>
            <privacyRating />
          </xs:appinfo>
          <xs:documentation>The name of the natural or legal person, public authority, agency or other body which processes personal data on behalf of the controller.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="privacyPolicyURL" type="xs:anyURI">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>M</sifChar>
            <privacyRating />
          </xs:appinfo>
          <xs:documentation>URL Associated with contract</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="privacyContactList" minOccurs="0" nillable="true" type="gCoreContactListType">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>O</sifChar>
            <privacyRating />
          </xs:appinfo>
          <xs:documentation>Details of the data sub processor`s privacy contact.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="purposeList" minOccurs="0" nillable="true" type="purposeListType">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>O</sifChar>
            <privacyRating />
          </xs:appinfo>
          <xs:documentation>The purpose for which data is supplied to the data sub processor by the data processor.</xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="appIDListType">
    <xs:annotation>
      <xs:appinfo>
        <sifChar />
        <privacyRating />
      </xs:appinfo>
      <xs:documentation>List of application identifiers.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="appID" minOccurs="0" maxOccurs="unbounded" type="xs:normalizedString">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>OR</sifChar>
            <privacyRating />
          </xs:appinfo>
          <xs:documentation>The name of the software providing the services for a particular data source.</xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="adapterFingerprintListType">
    <xs:annotation>
      <xs:appinfo>
        <sifChar />
        <privacyRating />
      </xs:appinfo>
      <xs:documentation />
    </xs:annotation>
    <xs:sequence>
      <xs:element name="adapterFingerprint" minOccurs="0" maxOccurs="unbounded" type="xs:normalizedString">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>OR</sifChar>
            <privacyRating />
          </xs:appinfo>
          <xs:documentation>An opaque marker that represents the amalgam of all underlying PODs tied to a specific DataProcessor-DataController relationship.</xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="deidentifiedPurposeListType">
    <xs:annotation>
      <xs:appinfo>
        <sifChar />
        <privacyRating />
      </xs:appinfo>
      <xs:documentation>A purposes for which deidentified data may be used.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="deidentifiedPurpose" minOccurs="0" maxOccurs="unbounded" type="xs:normalizedString">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>OR</sifChar>
            <privacyRating />
          </xs:appinfo>
          <xs:documentation>A purpose for which deidentified data may be used.</xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="purposeListType">
    <xs:annotation>
      <xs:appinfo>
        <sifChar />
        <privacyRating />
      </xs:appinfo>
      <xs:documentation>A list of the purposes for which data is may be used.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="purpose" minOccurs="0" maxOccurs="unbounded" type="xs:normalizedString">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>OR</sifChar>
            <privacyRating />
          </xs:appinfo>
          <xs:documentation>The purpose for which data may be used.</xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="alternatePurposeListType">
    <xs:annotation>
      <xs:appinfo>
        <sifChar />
        <privacyRating />
      </xs:appinfo>
      <xs:documentation>Purposes for which the data may be shared beyond its orginal uses.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="alternatePurpose" minOccurs="0" maxOccurs="unbounded" type="xs:normalizedString">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>OR</sifChar>
            <privacyRating />
          </xs:appinfo>
          <xs:documentation>A purpose for which the data may be shared beyond its orginal uses.</xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="conditionListType">
    <xs:annotation>
      <xs:appinfo>
        <sifChar />
        <privacyRating />
      </xs:appinfo>
      <xs:documentation />
    </xs:annotation>
    <xs:sequence>
      <xs:element name="condition" minOccurs="0" maxOccurs="unbounded" type="conditionType">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>OR</sifChar>
            <privacyRating />
          </xs:appinfo>
          <xs:documentation />
        </xs:annotation>
      </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="conditionType">
    <xs:annotation>
      <xs:appinfo>
        <sifChar />
        <privacyRating />
      </xs:appinfo>
      <xs:documentation />
    </xs:annotation>
    <xs:sequence>
      <xs:element name="typeOfCondition" minOccurs="0" nillable="true" type="xs:normalizedString">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>O</sifChar>
            <privacyRating />
          </xs:appinfo>
          <xs:documentation>The name of the parameter used fo enforce the privacy condition.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="conditionName" minOccurs="0" nillable="true" type="xs:normalizedString">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>O</sifChar>
            <privacyRating />
          </xs:appinfo>
          <xs:documentation>The name of the parameter used to enforce the privacy condition.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="conditionDescription" minOccurs="0" nillable="true" type="xs:normalizedString">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>O</sifChar>
            <privacyRating />
          </xs:appinfo>
          <xs:documentation>The explanation of what the related privacy conditions combine to do in plain terms.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="propertyList" minOccurs="0" nillable="true" type="propertyNVListType">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>O</sifChar>
            <privacyRating />
          </xs:appinfo>
          <xs:documentation />
        </xs:annotation>
      </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="zoneContextListType">
    <xs:annotation>
      <xs:appinfo>
        <sifChar />
        <privacyRating />
      </xs:appinfo>
      <xs:documentation />
    </xs:annotation>
    <xs:sequence>
      <xs:element name="zoneContext" minOccurs="0" maxOccurs="unbounded" type="zoneContextType">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>OR</sifChar>
            <privacyRating />
          </xs:appinfo>
          <xs:documentation />
        </xs:annotation>
      </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="zoneContextType">
    <xs:annotation>
      <xs:appinfo>
        <sifChar />
        <privacyRating />
      </xs:appinfo>
      <xs:documentation>A Zone and/or Context related to a POD.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="zoneId" minOccurs="0" nillable="true" type="gCoreLocalIdType">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>O</sifChar>
            <privacyRating />
          </xs:appinfo>
          <xs:documentation>Identifies the collection of appropriate data providers.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="contextId" minOccurs="0" nillable="true" type="gCoreLocalIdType">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>O</sifChar>
            <privacyRating />
          </xs:appinfo>
          <xs:documentation>Identifies the data scope within the zone.</xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="endpointListType">
    <xs:annotation>
      <xs:appinfo>
        <sifChar />
        <privacyRating />
      </xs:appinfo>
      <xs:documentation />
    </xs:annotation>
    <xs:sequence>
      <xs:element name="endpoint" minOccurs="0" maxOccurs="unbounded" type="endpointType">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>OR</sifChar>
            <privacyRating />
          </xs:appinfo>
          <xs:documentation>An endpoint covered by the POD.</xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="endpointType">
    <xs:annotation>
      <xs:appinfo>
        <sifChar />
        <privacyRating />
      </xs:appinfo>
      <xs:documentation>A type of endpoint.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="endpointURL" minOccurs="0" nillable="true" type="xs:anyURI">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>O</sifChar>
            <privacyRating />
          </xs:appinfo>
          <xs:documentation>The url of the endpoint.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="endpointProviderName" minOccurs="0" nillable="true" type="xs:normalizedString">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>O</sifChar>
            <privacyRating />
          </xs:appinfo>
          <xs:documentation>The name of the provider of the endpoint.</xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="employeeTrainingListType">
    <xs:annotation>
      <xs:appinfo>
        <sifChar />
        <privacyRating />
      </xs:appinfo>
      <xs:documentation />
    </xs:annotation>
    <xs:sequence>
      <xs:element name="employeeTraining" minOccurs="0" maxOccurs="unbounded" type="employeeTrainingType">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>OR</sifChar>
            <privacyRating />
          </xs:appinfo>
          <xs:documentation />
        </xs:annotation>
      </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="employeeTrainingType">
    <xs:annotation>
      <xs:appinfo>
        <sifChar />
        <privacyRating />
      </xs:appinfo>
      <xs:documentation />
    </xs:annotation>
    <xs:sequence>
      <xs:element name="trainingName" minOccurs="0" nillable="true" type="xs:normalizedString">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>O</sifChar>
            <privacyRating />
          </xs:appinfo>
          <xs:documentation>The label of the training being given to employees to teach privacy requirements and practices.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="trainingURL" minOccurs="0" nillable="true" type="xs:anyURI">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>O</sifChar>
            <privacyRating />
          </xs:appinfo>
          <xs:documentation>The URL of the training being given to employees to teach privacy requirements and practices.</xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="passwordEmployeeAccessStandardType">
    <xs:annotation>
      <xs:appinfo>
        <sifChar />
        <privacyRating />
      </xs:appinfo>
      <xs:documentation />
    </xs:annotation>
    <xs:sequence>
      <xs:element name="standardName" minOccurs="0" nillable="true" type="xs:normalizedString">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>O</sifChar>
            <privacyRating />
          </xs:appinfo>
          <xs:documentation>The label of rule set for the proceessor used to define valid passwords.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="standardURL" minOccurs="0" nillable="true" type="xs:anyURI">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>O</sifChar>
            <privacyRating />
          </xs:appinfo>
          <xs:documentation>A link to an authoritative source for this standard.</xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="countryImpactedListType">
    <xs:annotation>
      <xs:appinfo>
        <sifChar />
        <privacyRating />
      </xs:appinfo>
      <xs:documentation>List of impacted countries in or through which the data transits or is stored.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="countryImpacted" minOccurs="0" maxOccurs="unbounded" type="countryImpactedType">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>OR</sifChar>
            <privacyRating />
          </xs:appinfo>
          <xs:documentation>Name of a country impacted in or through which the data transits or is stored.</xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="countryImpactedType">
    <xs:annotation>
      <xs:appinfo>
        <sifChar />
        <privacyRating />
      </xs:appinfo>
      <xs:documentation />
    </xs:annotation>
    <xs:sequence>
      <xs:element name="country" minOccurs="0" nillable="true" type="gCoreCountryType">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>O</sifChar>
            <privacyRating />
          </xs:appinfo>
          <xs:documentation>Name of a country impacted in or through which the data transits or is stored.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="usage" minOccurs="0" nillable="true" type="xs:normalizedString">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>O</sifChar>
            <privacyRating />
          </xs:appinfo>
          <xs:documentation>Country specific details about how the processor handles the data.</xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="securityTestRequiredListType">
    <xs:annotation>
      <xs:appinfo>
        <sifChar />
        <privacyRating />
      </xs:appinfo>
      <xs:documentation />
    </xs:annotation>
    <xs:sequence>
      <xs:element name="securityTestRequired" minOccurs="0" maxOccurs="unbounded" type="securityTestRequiredType">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>OR</sifChar>
            <privacyRating />
          </xs:appinfo>
          <xs:documentation>Details of the security test required.</xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="securityTestRequiredType">
    <xs:annotation>
      <xs:appinfo>
        <sifChar />
        <privacyRating />
      </xs:appinfo>
      <xs:documentation>Details of the security test required.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="testType" minOccurs="0" nillable="true" type="xs:normalizedString">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>O</sifChar>
            <privacyRating />
          </xs:appinfo>
          <xs:documentation>Type of the test.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="testFrequency" minOccurs="0" nillable="true" type="xs:normalizedString">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>O</sifChar>
            <privacyRating />
          </xs:appinfo>
          <xs:documentation>How often does this test need to be performed?</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="remediationRequiredIn" minOccurs="0" nillable="true" type="xs:normalizedString">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>O</sifChar>
            <privacyRating />
          </xs:appinfo>
          <xs:documentation>Number of days allowed to remediate any inadequacies discovered during testing.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="shareResults" minOccurs="0" nillable="true">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>O</sifChar>
            <privacyRating />
          </xs:appinfo>
          <xs:documentation>Determines whether the results of a security test may be made publicly known.</xs:documentation>
        </xs:annotation>
        <xs:simpleType>
          <xs:restriction base="xs:token">
            <xs:enumeration value="Y" />
            <xs:enumeration value="N" />
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="propertyNVListType">
    <xs:annotation>
      <xs:appinfo>
        <sifChar />
        <privacyRating />
      </xs:appinfo>
      <xs:documentation />
    </xs:annotation>
    <xs:sequence>
      <xs:element name="property" minOccurs="0" maxOccurs="unbounded" type="propertyNVType">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>OR</sifChar>
            <privacyRating />
          </xs:appinfo>
          <xs:documentation />
        </xs:annotation>
      </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="propertyNVType">
    <xs:annotation>
      <xs:appinfo>
        <sifChar />
        <privacyRating />
      </xs:appinfo>
      <xs:documentation />
    </xs:annotation>
    <xs:sequence>
      <xs:element name="propertyName" minOccurs="0" nillable="true" type="xs:normalizedString">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>O</sifChar>
            <privacyRating />
          </xs:appinfo>
          <xs:documentation>A short label meant to convey quick meaning of the machine readable expression.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="propertyValue" minOccurs="0" nillable="true" type="xs:normalizedString">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>O</sifChar>
            <privacyRating />
          </xs:appinfo>
          <xs:documentation>A machine readable expression designed to specify one aspect of the condition for machine enforcement.</xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:simpleType name="DefinedProtocolsType">
    <xs:restriction base="xs:token">
      <xs:annotation>
        <xs:appinfo>
          <sifChar />
          <privacyRating />
        </xs:appinfo>
        <xs:documentation>The transport protocols defined in SIF.</xs:documentation>
      </xs:annotation>
      <xs:enumeration value="HTTPS" />
      <xs:enumeration value="HTTP" />
    </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="ExtendedContentType">
    <xs:complexContent mixed="true" xmlns:xs="http://www.w3.org/2001/XMLSchema">
      <xs:restriction base="xs:anyType">
        <xs:sequence>
          <xs:any processContents="lax" minOccurs="0" maxOccurs="unbounded" />
        </xs:sequence>
      </xs:restriction>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="SelectedContentType">
    <xs:complexContent mixed="true" xmlns:xs="http://www.w3.org/2001/XMLSchema">
      <xs:restriction base="xs:anyType">
        <xs:sequence>
          <xs:any processContents="skip" minOccurs="0" maxOccurs="unbounded" />
        </xs:sequence>
      </xs:restriction>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="provisionedZonesType">
    <xs:annotation>
      <xs:appinfo>
        <sifChar />
        <privacyRating />
      </xs:appinfo>
      <xs:documentation />
    </xs:annotation>
    <xs:sequence>
      <xs:element name="provisionedZone" maxOccurs="unbounded" type="provisionedZoneType">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>MR</sifChar>
            <privacyRating />
          </xs:appinfo>
          <xs:documentation>A specific Zone defined for this environment.</xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="provisionedZoneType">
    <xs:annotation>
      <xs:appinfo>
        <sifChar />
        <privacyRating />
      </xs:appinfo>
      <xs:documentation />
    </xs:annotation>
    <xs:sequence>
      <xs:element name="services" minOccurs="0" type="servicesType">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>O</sifChar>
            <privacyRating />
          </xs:appinfo>
          <xs:documentation />
        </xs:annotation>
      </xs:element>
    </xs:sequence>
    <xs:attribute name="id" use="required" type="xs:string">
      <xs:annotation>
        <xs:appinfo>
          <sifChar>M</sifChar>
          <privacyRating />
        </xs:appinfo>
        <xs:documentation>The unique id of the Zone, and the key to the Zone element in the Zone Registry.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:complexType>

  <xs:complexType name="createsType">
    <xs:annotation>
      <xs:appinfo>
        <sifChar />
        <privacyRating />
      </xs:appinfo>
      <xs:documentation />
    </xs:annotation>
    <xs:sequence>
      <xs:element name="create" maxOccurs="unbounded" type="createType">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>MR</sifChar>
            <privacyRating />
          </xs:appinfo>
          <xs:documentation />
        </xs:annotation>
      </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="createType">
    <xs:annotation>
      <xs:appinfo>
        <sifChar />
        <privacyRating />
      </xs:appinfo>
      <xs:documentation />
    </xs:annotation>
    <xs:sequence>
      <xs:element name="error" minOccurs="0" type="errorCommonType">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>O</sifChar>
            <privacyRating />
          </xs:appinfo>
          <xs:documentation />
        </xs:annotation>
      </xs:element>
    </xs:sequence>
    <xs:attribute name="id" use="optional" type="xs:token">
      <xs:annotation>
        <xs:appinfo>
          <sifChar>O</sifChar>
          <privacyRating />
        </xs:appinfo>
        <xs:documentation />
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="advisoryId" use="required" type="xs:token">
      <xs:annotation>
        <xs:appinfo>
          <sifChar>M</sifChar>
          <privacyRating />
        </xs:appinfo>
        <xs:documentation />
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="statusCode" use="optional">
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:annotation>
            <xs:appinfo>
              <sifChar>O</sifChar>
              <privacyRating />
            </xs:appinfo>
            <xs:documentation />
          </xs:annotation>
          <xs:pattern value="[24-5][0-9]{2}" xmlns:xs="http://www.w3.org/2001/XMLSchema" />
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
  </xs:complexType>

  <xs:complexType name="errorCommonType">
    <xs:annotation>
      <xs:appinfo>
        <sifChar />
        <privacyRating />
      </xs:appinfo>
      <xs:documentation />
    </xs:annotation>
    <xs:sequence>
      <xs:element name="code" type="xs:unsignedInt">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>M</sifChar>
            <privacyRating />
          </xs:appinfo>
          <xs:documentation>Corresponds to the value contained in the HTTPS Header Status-Code" field in which the Error Object is the payload.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="scope" type="xs:string">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>M</sifChar>
            <privacyRating />
          </xs:appinfo>
          <xs:documentation>Attempted operation. Ex: "Modify Student"</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="type" minOccurs="0" nillable="true" type="errorTypeType">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>O</sifChar>
            <privacyRating />
          </xs:appinfo>
          <xs:documentation>Indicator if the error relates to infrastructure or data.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="subCode" minOccurs="0" nillable="true" type="xs:string">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>O</sifChar>
            <privacyRating />
          </xs:appinfo>
          <xs:documentation>Machine readable second code used to eliminate ambiguity.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="message" type="xs:string">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>M</sifChar>
            <privacyRating />
          </xs:appinfo>
          <xs:documentation>A simple, easy to understand, compact description of the error. The primary consumer of this message is the application user. Example: "Unable to open database."</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="description" minOccurs="0" type="xs:string">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>O</sifChar>
            <privacyRating />
          </xs:appinfo>
          <xs:documentation>An optional error description that is more complete and technical in nature. It is to be used as a diagnostic message in trouble-shooting procedures. Example: "The 'Students' table is opened in exclusive mode by user 'ADM1' (dbm.cpp, line 300)."</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="errorDetails" minOccurs="0" nillable="true" type="errorDetailsType">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>O</sifChar>
            <privacyRating />
          </xs:appinfo>
          <xs:documentation />
        </xs:annotation>
      </xs:element>
    </xs:sequence>
    <xs:attribute name="id" use="optional" type="xs:token">
      <xs:annotation>
        <xs:appinfo>
          <sifChar>O</sifChar>
          <privacyRating />
        </xs:appinfo>
        <xs:documentation />
      </xs:annotation>
    </xs:attribute>
  </xs:complexType>

  <xs:complexType name="errorDetailType">
    <xs:annotation>
      <xs:appinfo>
        <sifChar />
        <privacyRating />
      </xs:appinfo>
      <xs:documentation />
    </xs:annotation>
    <xs:sequence>
      <xs:element name="type" minOccurs="0" nillable="true" type="errorTypeType">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>O</sifChar>
            <privacyRating />
          </xs:appinfo>
          <xs:documentation>Indicator if the error relates to infrastructure or data.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="subCode" minOccurs="0" nillable="true" type="xs:string">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>O</sifChar>
            <privacyRating />
          </xs:appinfo>
          <xs:documentation>Machine readable second code used to eliminate ambiguity.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="message" type="xs:string">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>M</sifChar>
            <privacyRating />
          </xs:appinfo>
          <xs:documentation>A simple, easy to understand, compact description of the error. The primary consumer of this message is the application user. Example: "Unable to open database."</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="description" minOccurs="0" type="xs:string">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>O</sifChar>
            <privacyRating />
          </xs:appinfo>
          <xs:documentation>An optional error description that is more complete and technical in nature. It is to be used as a diagnostic message in trouble-shooting procedures. Example: "The 'Students' table is opened in exclusive mode by user 'ADM1' (dbm.cpp, line 300)."</xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:sequence>
    <xs:attribute name="id" use="optional" type="xs:token">
      <xs:annotation>
        <xs:appinfo>
          <sifChar>O</sifChar>
          <privacyRating />
        </xs:appinfo>
        <xs:documentation />
      </xs:annotation>
    </xs:attribute>
  </xs:complexType>

  <xs:simpleType name="errorTypeType">
    <xs:restriction base="xs:token">
      <xs:annotation>
        <xs:appinfo>
          <sifChar>O</sifChar>
          <privacyRating />
        </xs:appinfo>
        <xs:documentation />
      </xs:annotation>
      <xs:enumeration value="INFRASTRUCTURE" />
      <xs:enumeration value="DATA" />
    </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="errorDetailsType">
    <xs:annotation>
      <xs:appinfo>
        <sifChar />
        <privacyRating />
      </xs:appinfo>
      <xs:documentation />
    </xs:annotation>
    <xs:sequence>
      <xs:element name="errorDetail" minOccurs="0" maxOccurs="unbounded" type="errorDetailType">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>OR</sifChar>
            <privacyRating />
          </xs:appinfo>
          <xs:documentation />
        </xs:annotation>
      </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="stateListType">
    <xs:annotation>
      <xs:appinfo>
        <sifChar />
        <privacyRating />
      </xs:appinfo>
      <xs:documentation />
    </xs:annotation>
    <xs:sequence>
      <xs:element name="state" maxOccurs="unbounded" type="stateCommonType">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>MR</sifChar>
            <privacyRating />
          </xs:appinfo>
          <xs:documentation />
        </xs:annotation>
      </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="stateCommonType">
    <xs:annotation>
      <xs:appinfo>
        <sifChar />
        <privacyRating />
      </xs:appinfo>
      <xs:documentation />
    </xs:annotation>
    <xs:sequence>
      <xs:element name="type" type="phaseStateType">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>M</sifChar>
            <privacyRating />
          </xs:appinfo>
          <xs:documentation>The type of this State object.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="created" minOccurs="0" type="xs:dateTime">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>O</sifChar>
            <privacyRating />
          </xs:appinfo>
          <xs:documentation>The datetime this job was created.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="lastModified" minOccurs="0" type="xs:dateTime">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>O</sifChar>
            <privacyRating />
          </xs:appinfo>
          <xs:documentation>The datetime this job was last modified.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="description" minOccurs="0" type="xs:string">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>O</sifChar>
            <privacyRating />
          </xs:appinfo>
          <xs:documentation>A descriptive message ellaborating the condition of this state, e.g. if the state is "FAILED" the stateDescription may be "Timeout occured".</xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:sequence>
    <xs:attribute name="id" use="optional" type="uuidType">
      <xs:annotation>
        <xs:appinfo>
          <sifChar>O</sifChar>
          <privacyRating />
        </xs:appinfo>
        <xs:documentation />
      </xs:annotation>
    </xs:attribute>
  </xs:complexType>

  <xs:complexType name="deleteIdCollectionType">
    <xs:annotation>
      <xs:appinfo>
        <sifChar />
        <privacyRating />
      </xs:appinfo>
      <xs:documentation />
    </xs:annotation>
    <xs:sequence>
      <xs:element name="delete" maxOccurs="unbounded" type="deleteIdType">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>MR</sifChar>
            <privacyRating />
          </xs:appinfo>
          <xs:documentation />
        </xs:annotation>
      </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="defaultZoneType">
    <xs:annotation>
      <xs:appinfo>
        <sifChar />
        <privacyRating />
      </xs:appinfo>
      <xs:documentation>Zone identifiers are chosen by the administrator and can follow any convention that best meets the needs of the deploying organization. The Zone in which the Service is to be found always qualifies every Consumer request for any Provider Service. Each Service Consumer is assigned a "default" Zone at Registration time, which is used whenever a specific Zone is not explicitly included in one of its Provider Service Requests.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="description" minOccurs="0" type="xs:normalizedString">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>O</sifChar>
            <privacyRating />
          </xs:appinfo>
          <xs:documentation>A short (possibly multi-sentence) description of the Zone</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="properties" minOccurs="0" type="propertiesType">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>O</sifChar>
            <privacyRating />
          </xs:appinfo>
          <xs:documentation />
        </xs:annotation>
      </xs:element>
    </xs:sequence>
    <xs:attribute name="id" use="optional" type="xs:token">
      <xs:annotation>
        <xs:appinfo>
          <sifChar>O</sifChar>
          <privacyRating />
        </xs:appinfo>
        <xs:documentation />
      </xs:annotation>
    </xs:attribute>
  </xs:complexType>

  <xs:simpleType name="environmentTypeType">
    <xs:restriction base="xs:token">
      <xs:annotation>
        <xs:appinfo>
          <sifChar>O</sifChar>
          <privacyRating />
        </xs:appinfo>
        <xs:documentation />
      </xs:annotation>
      <xs:enumeration value="DIRECT" />
      <xs:enumeration value="BROKERED" />
    </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="jobStateType">
    <xs:restriction base="xs:token">
      <xs:annotation>
        <xs:appinfo>
          <sifChar>O</sifChar>
          <privacyRating />
        </xs:appinfo>
        <xs:documentation />
      </xs:annotation>
      <xs:enumeration value="NOTSTARTED" />
      <xs:enumeration value="INPROGRESS" />
      <xs:enumeration value="COMPLETED" />
      <xs:enumeration value="FAILED" />
    </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="phaseCollectionType">
    <xs:annotation>
      <xs:appinfo>
        <sifChar />
        <privacyRating />
      </xs:appinfo>
      <xs:documentation />
    </xs:annotation>
    <xs:sequence>
      <xs:element name="phase" maxOccurs="unbounded" type="phaseType">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>MR</sifChar>
            <privacyRating />
          </xs:appinfo>
          <xs:documentation />
        </xs:annotation>
      </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="phaseType">
    <xs:annotation>
      <xs:appinfo>
        <sifChar />
        <privacyRating />
      </xs:appinfo>
      <xs:documentation />
    </xs:annotation>
    <xs:sequence>
      <xs:element name="name" type="xs:token">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>M</sifChar>
            <privacyRating />
          </xs:appinfo>
          <xs:documentation>The name of the Phase unique within the context of the owning job.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="states" type="stateListType">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>M</sifChar>
            <privacyRating />
          </xs:appinfo>
          <xs:documentation>A collection of the states the Phase has been through, must initially contain a NOTAPPLICABLE or NOTSTARTED state.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="required" type="xs:boolean">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>M</sifChar>
            <privacyRating />
          </xs:appinfo>
          <xs:documentation>Whether or not this phase is required for the job to complete successfully.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="rights" type="rightsType">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>M</sifChar>
            <privacyRating />
          </xs:appinfo>
          <xs:documentation>Access rights given to the consumer for this phase.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="statesRights" type="rightsType">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>M</sifChar>
            <privacyRating />
          </xs:appinfo>
          <xs:documentation>Access rights given to the consumer for each state.</xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="initializationType">
    <xs:annotation>
      <xs:appinfo>
        <sifChar />
        <privacyRating />
      </xs:appinfo>
      <xs:documentation />
    </xs:annotation>
    <xs:sequence>
      <xs:element name="phaseName" minOccurs="0" type="xs:token">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>O</sifChar>
            <privacyRating />
          </xs:appinfo>
          <xs:documentation>Name of initialization phase the payload corresponds to.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="payload" type="xs:anyType">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>M</sifChar>
            <privacyRating />
          </xs:appinfo>
          <xs:documentation>Information matching the initialization phase, should result in corresponding phase having an INPROGRESS, COMPLETED, or FAILED state.</xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:simpleType name="phaseStateType">
    <xs:restriction base="xs:token">
      <xs:annotation>
        <xs:appinfo>
          <sifChar>O</sifChar>
          <privacyRating />
        </xs:appinfo>
        <xs:documentation />
      </xs:annotation>
      <xs:enumeration value="NOTAPPLICABLE" />
      <xs:enumeration value="NOTSTARTED" />
      <xs:enumeration value="PENDING" />
      <xs:enumeration value="SKIPPED" />
      <xs:enumeration value="INPROGRESS" />
      <xs:enumeration value="COMPLETED" />
      <xs:enumeration value="FAILED" />
    </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="enumerationsType">
    <xs:annotation>
      <xs:appinfo>
        <sifChar />
        <privacyRating />
      </xs:appinfo>
      <xs:documentation />
    </xs:annotation>
    <xs:sequence>
      <xs:element name="enumeration" maxOccurs="unbounded" type="enumerationType">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>MR</sifChar>
            <privacyRating />
          </xs:appinfo>
          <xs:documentation>Individual setting</xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="enumerationType">
    <xs:annotation>
      <xs:appinfo>
        <sifChar />
        <privacyRating />
      </xs:appinfo>
      <xs:documentation />
    </xs:annotation>
    <xs:sequence>
      <xs:element name="value" type="xs:token">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>M</sifChar>
            <privacyRating />
          </xs:appinfo>
          <xs:documentation>An acceptable parameter value for this query.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="code" minOccurs="0" type="xs:token">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>C</sifChar>
            <privacyRating />
          </xs:appinfo>
          <xs:documentation>If enumerated value has an equivalent code, this field may be used for conversion.</xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="parametersType">
    <xs:annotation>
      <xs:appinfo>
        <sifChar />
        <privacyRating />
      </xs:appinfo>
      <xs:documentation />
    </xs:annotation>
    <xs:sequence>
      <xs:element name="parameter" minOccurs="0" maxOccurs="unbounded" type="parameterType">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>OR</sifChar>
            <privacyRating />
          </xs:appinfo>
          <xs:documentation>Individual setting</xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="parameterType">
    <xs:annotation>
      <xs:appinfo>
        <sifChar />
        <privacyRating />
      </xs:appinfo>
      <xs:documentation />
    </xs:annotation>
    <xs:sequence>
      <xs:element name="name" type="xs:token">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>M</sifChar>
            <privacyRating />
          </xs:appinfo>
          <xs:documentation>The name of the query parameter to be passed in.  Note:  Must not conflict with any other query parameter name.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="type" minOccurs="0" type="xs:token">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>O</sifChar>
            <privacyRating />
          </xs:appinfo>
          <xs:documentation>A well understood type that MAY be used for parameter validation.  Example:  xs:unsignedInt.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="default" minOccurs="0" type="xs:token">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>O</sifChar>
            <privacyRating />
          </xs:appinfo>
          <xs:documentation>Value to be supplied for this parameter if the submitter omits it.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="description" minOccurs="0">
        <xs:simpleType>
          <xs:restriction base="xs:normalizedString">
            <xs:annotation>
              <xs:appinfo>
                <sifChar>O</sifChar>
                <privacyRating />
              </xs:appinfo>
              <xs:documentation>An explanation of what this parameter represents.</xs:documentation>
            </xs:annotation>
            <xs:minLength value="0" xmlns:xs="http://www.w3.org/2001/XMLSchema" />
            <xs:maxLength value="1024" xmlns:xs="http://www.w3.org/2001/XMLSchema" />
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element name="required" minOccurs="0" type="xs:boolean">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>O</sifChar>
            <privacyRating />
          </xs:appinfo>
          <xs:documentation>Indicator as to if this parameter is required.  If omitted, the parameter is assumed to be required!.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="enumerations" minOccurs="0" type="enumerationsType">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>O</sifChar>
            <privacyRating />
          </xs:appinfo>
          <xs:documentation />
        </xs:annotation>
      </xs:element>
      <xs:element name="range" minOccurs="0" type="rangeType">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>O</sifChar>
            <privacyRating />
          </xs:appinfo>
          <xs:documentation />
        </xs:annotation>
      </xs:element>
      <xs:element name="minLength" minOccurs="0" type="xs:unsignedInt">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>O</sifChar>
            <privacyRating />
          </xs:appinfo>
          <xs:documentation>The minimum length for values of this parameter.  If omitted, zero.  May be functionally different because of other restrictions.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="maxLength" minOccurs="0" type="xs:unsignedInt">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>O</sifChar>
            <privacyRating />
          </xs:appinfo>
          <xs:documentation>The maximum length for values of this parameter.  If omitted, unbounded.  May be functionally different because of other restrictions.</xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="propertiesType">
    <xs:annotation>
      <xs:appinfo>
        <sifChar />
        <privacyRating />
      </xs:appinfo>
      <xs:documentation />
    </xs:annotation>
    <xs:sequence>
      <xs:element name="property" maxOccurs="unbounded" type="propertyType">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>MR</sifChar>
            <privacyRating />
          </xs:appinfo>
          <xs:documentation>Individual setting</xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="rangeType">
    <xs:annotation>
      <xs:appinfo>
        <sifChar />
        <privacyRating />
      </xs:appinfo>
      <xs:documentation />
    </xs:annotation>
    <xs:sequence>
      <xs:element name="start" type="xs:long">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>M</sifChar>
            <privacyRating />
          </xs:appinfo>
          <xs:documentation>If a numeric range is used, this holds the inclusive starting value.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="end" type="xs:long">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>M</sifChar>
            <privacyRating />
          </xs:appinfo>
          <xs:documentation>If a numeric range is used, this holds the inclusive ending value.</xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="propertyType">
    <xs:annotation>
      <xs:appinfo>
        <sifChar />
        <privacyRating />
      </xs:appinfo>
      <xs:documentation />
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="xs:normalizedString">
        <xs:attribute name="name" use="required" type="xs:string">
          <xs:annotation>
            <xs:appinfo>
              <sifChar>M</sifChar>
              <privacyRating />
            </xs:appinfo>
            <xs:documentation>Name/Value pair.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:complexType name="applicationInfoType">
    <xs:annotation>
      <xs:appinfo>
        <sifChar />
        <privacyRating />
      </xs:appinfo>
      <xs:documentation />
    </xs:annotation>
    <xs:sequence>
      <xs:element name="applicationKey" minOccurs="0" type="xs:string">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>O</sifChar>
            <privacyRating />
          </xs:appinfo>
          <xs:documentation>An opaque (to the SIF standard) element which contains any required Consumer authentication information. The content of this element is site-specific. For a Direct Environment which accepts Consumer Registration Requests from a mobile application, this element might contain a combination of the User ID and Password.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="supportedInfrastructureVersion" minOccurs="0" type="xs:string">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>O</sifChar>
            <privacyRating />
          </xs:appinfo>
          <xs:documentation>The version of the SIF infrastructure which the Consumer supports.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="dataModelNamespace" minOccurs="0" type="xs:anyURI">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>O</sifChar>
            <privacyRating />
          </xs:appinfo>
          <xs:documentation>The namespace of the data payloads conveyed by this environment. Returns may be of a diffrent minor version. Utility payloads will be of the infrastructure namespace.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="transport" minOccurs="0" type="xs:string">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>O</sifChar>
            <privacyRating />
          </xs:appinfo>
          <xs:documentation>The transport which the Consumer expects the infrastructure to use to interoperate with it. The default is whichever transport the create request was issued on</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="applicationProduct" minOccurs="0" type="productIdentityType">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>O</sifChar>
            <privacyRating />
          </xs:appinfo>
          <xs:documentation />
        </xs:annotation>
      </xs:element>
      <xs:element name="adapterProduct" minOccurs="0" type="productIdentityType">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>O</sifChar>
            <privacyRating />
          </xs:appinfo>
          <xs:documentation />
        </xs:annotation>
      </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="productIdentityType">
    <xs:annotation>
      <xs:appinfo>
        <sifChar />
        <privacyRating />
      </xs:appinfo>
      <xs:documentation />
    </xs:annotation>
    <xs:sequence>
      <xs:element name="vendorName" minOccurs="0" type="xs:string">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>O</sifChar>
            <privacyRating />
          </xs:appinfo>
          <xs:documentation>The name of the company supplying this Product.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="productName" type="xs:string">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>M</sifChar>
            <privacyRating />
          </xs:appinfo>
          <xs:documentation>The name of the Product</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="productVersion" minOccurs="0" type="xs:string">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>O</sifChar>
            <privacyRating />
          </xs:appinfo>
          <xs:documentation>The format of this field is undefined, but it should match the format used in the agent's conformance statement, if the agent is SIF Certified.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="iconURI" minOccurs="0" type="xs:anyURI">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>O</sifChar>
            <privacyRating />
          </xs:appinfo>
          <xs:documentation>HTTP URL referencing an icon for graphical representation of the application/agent. Should range from 16x16 pixels to 128x128 pixels and be of an image MIME type commonly supported by Web browsers (e.g. PNG, JPEG, GIF).</xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="servicesType">
    <xs:annotation>
      <xs:appinfo>
        <sifChar />
        <privacyRating />
      </xs:appinfo>
      <xs:documentation />
    </xs:annotation>
    <xs:sequence>
      <xs:element name="service" maxOccurs="unbounded" type="serviceType">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>MR</sifChar>
            <privacyRating />
          </xs:appinfo>
          <xs:documentation />
        </xs:annotation>
      </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="serviceType">
    <xs:annotation>
      <xs:appinfo>
        <sifChar />
        <privacyRating />
      </xs:appinfo>
      <xs:documentation />
    </xs:annotation>
    <xs:sequence>
      <xs:element name="rights" type="rightsType">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>M</sifChar>
            <privacyRating />
          </xs:appinfo>
          <xs:documentation />
        </xs:annotation>
      </xs:element>
    </xs:sequence>
    <xs:attribute name="type" use="required" type="serviceTypeType">
      <xs:annotation>
        <xs:appinfo>
          <sifChar>M</sifChar>
          <privacyRating />
        </xs:appinfo>
        <xs:documentation />
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="subType" use="optional" type="serviceSubTypeType">
      <xs:annotation>
        <xs:appinfo>
          <sifChar>O</sifChar>
          <privacyRating />
        </xs:appinfo>
        <xs:documentation />
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="name" use="required" type="xs:string">
      <xs:annotation>
        <xs:appinfo>
          <sifChar>M</sifChar>
          <privacyRating />
        </xs:appinfo>
        <xs:documentation>The name of the Service. For utilities, this is fixed to one of the defined set of Utility Service Names. For objects and functions, it is defined by the Data Model.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="contextId" use="required" type="xs:string">
      <xs:annotation>
        <xs:appinfo>
          <sifChar>M</sifChar>
          <privacyRating />
        </xs:appinfo>
        <xs:documentation>The unique identity of a context element, which is associated with a Provider of this name and type operating in a Zone with this ID. All Services with the same name in the same Zone must have different Context IDs. Only one such Service can have no Context.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:complexType>

  <xs:complexType name="rightsType">
    <xs:annotation>
      <xs:appinfo>
        <sifChar />
        <privacyRating />
      </xs:appinfo>
      <xs:documentation />
    </xs:annotation>
    <xs:sequence>
      <xs:element name="right" maxOccurs="unbounded" type="rightType">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>MR</sifChar>
            <privacyRating />
          </xs:appinfo>
          <xs:documentation />
        </xs:annotation>
      </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:simpleType name="rightValueType">
    <xs:restriction base="xs:token">
      <xs:annotation>
        <xs:appinfo>
          <sifChar />
          <privacyRating />
        </xs:appinfo>
        <xs:documentation />
      </xs:annotation>
      <xs:enumeration value="APPROVED" />
      <xs:enumeration value="SUPPORTED" />
      <xs:enumeration value="REJECTED" />
      <xs:enumeration value="UNSUPPORTED" />
      <xs:enumeration value="REQUESTED" />
    </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="rightTypeType">
    <xs:restriction base="xs:token">
      <xs:annotation>
        <xs:appinfo>
          <sifChar />
          <privacyRating />
        </xs:appinfo>
        <xs:documentation />
      </xs:annotation>
      <xs:enumeration value="QUERY" />
      <xs:enumeration value="CREATE" />
      <xs:enumeration value="UPDATE" />
      <xs:enumeration value="DELETE" />
      <xs:enumeration value="SUBSCRIBE" />
      <xs:enumeration value="PROVIDE" />
    </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="rightType">
    <xs:annotation>
      <xs:appinfo>
        <sifChar />
        <privacyRating />
      </xs:appinfo>
      <xs:documentation />
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="rightValueType">
        <xs:attribute name="type" use="required" type="rightTypeType">
          <xs:annotation>
            <xs:appinfo>
              <sifChar>M</sifChar>
              <privacyRating />
            </xs:appinfo>
            <xs:documentation>The type of the requested Access Right</xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:simpleType name="serviceTypeType">
    <xs:restriction base="xs:token">
      <xs:annotation>
        <xs:appinfo>
          <sifChar>O</sifChar>
          <privacyRating />
        </xs:appinfo>
        <xs:documentation />
      </xs:annotation>
      <xs:enumeration value="UTILITY" />
      <xs:enumeration value="OBJECT" />
      <xs:enumeration value="FUNCTIONAL" />
      <xs:enumeration value="SERVICEPATH" />
      <xs:enumeration value="XQUERYTEMPLATE" />
      <xs:enumeration value="SERVICE" />
    </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="serviceSubTypeType">
    <xs:restriction base="xs:token">
      <xs:annotation>
        <xs:appinfo>
          <sifChar>O</sifChar>
          <privacyRating />
        </xs:appinfo>
        <xs:documentation />
      </xs:annotation>
      <xs:enumeration value="adminDirective" />
    </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="infrastructureServicesType">
    <xs:annotation>
      <xs:appinfo>
        <sifChar />
        <privacyRating />
      </xs:appinfo>
      <xs:documentation />
    </xs:annotation>
    <xs:sequence>
      <xs:element name="infrastructureService" minOccurs="2" maxOccurs="unbounded" type="infrastructureServiceType">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>MR</sifChar>
            <privacyRating />
          </xs:appinfo>
          <xs:documentation>There must be an InfrastructureService element present for each defined Infrastructure Service. The value of each InfrastructureService Property value subelement defines the URL location of that Infrastructure Service.</xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="infrastructureServiceType">
    <xs:annotation>
      <xs:appinfo>
        <sifChar />
        <privacyRating />
      </xs:appinfo>
      <xs:documentation />
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="xs:normalizedString">
        <xs:attribute name="name" use="optional" type="infrastructureServiceNamesType">
          <xs:annotation>
            <xs:appinfo>
              <sifChar>O</sifChar>
              <privacyRating />
            </xs:appinfo>
            <xs:documentation />
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:simpleType name="infrastructureServiceNamesType">
    <xs:restriction base="xs:token">
      <xs:annotation>
        <xs:appinfo>
          <sifChar>O</sifChar>
          <privacyRating />
        </xs:appinfo>
        <xs:documentation />
      </xs:annotation>
      <xs:enumeration value="environment" />
      <xs:enumeration value="provisionRequests" />
      <xs:enumeration value="requestsConnector" />
      <xs:enumeration value="eventsConnector" />
      <xs:enumeration value="queues" />
      <xs:enumeration value="subscriptions" />
      <xs:enumeration value="servicesConnector" />
      <xs:enumeration value="responsesConnector" />
    </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="uuidType">
    <xs:restriction>
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:annotation>
            <xs:appinfo>
              <sifChar>O</sifChar>
              <privacyRating />
            </xs:appinfo>
            <xs:documentation />
          </xs:annotation>
          <xs:pattern value="[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[14][a-fA-F0-9]{3}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}" xmlns:xs="http://www.w3.org/2001/XMLSchema" />
        </xs:restriction>
      </xs:simpleType>
    </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="versionType">
    <xs:restriction>
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:annotation>
            <xs:appinfo>
              <sifChar>O</sifChar>
              <privacyRating />
            </xs:appinfo>
            <xs:documentation />
          </xs:annotation>
          <xs:pattern value="[0-9]{1,3}[.][0-9]{1,3}([.][0-9]{1,3})?" xmlns:xs="http://www.w3.org/2001/XMLSchema" />
        </xs:restriction>
      </xs:simpleType>
    </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="uriType">
    <xs:restriction base="xs:anyURI">
      <xs:annotation>
        <xs:appinfo>
          <sifChar>O</sifChar>
          <privacyRating />
        </xs:appinfo>
        <xs:documentation />
      </xs:annotation>
    </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="aliasesType">
    <xs:annotation>
      <xs:appinfo>
        <sifChar />
        <privacyRating />
      </xs:appinfo>
      <xs:documentation />
    </xs:annotation>
    <xs:sequence>
      <xs:element name="alias" maxOccurs="unbounded" type="aliasType">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>MR</sifChar>
            <privacyRating />
          </xs:appinfo>
          <xs:documentation />
        </xs:annotation>
      </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="querySupportType">
    <xs:annotation>
      <xs:appinfo>
        <sifChar />
        <privacyRating />
      </xs:appinfo>
      <xs:documentation />
    </xs:annotation>
    <xs:sequence>
      <xs:element name="dynamicQuery" minOccurs="0" type="xs:boolean">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>O</sifChar>
            <privacyRating />
          </xs:appinfo>
          <xs:documentation>True if this service is capable of honoring the "where" parameter.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="queryByExample" minOccurs="0" type="xs:boolean">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>O</sifChar>
            <privacyRating />
          </xs:appinfo>
          <xs:documentation>True if this service is capable of honoring query by example payloads.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="changesSinceMarker" minOccurs="0" type="xs:boolean">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>O</sifChar>
            <privacyRating />
          </xs:appinfo>
          <xs:documentation>True if this service is capable of supporting Changes Since Queries.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="paged" minOccurs="0" type="xs:boolean">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>O</sifChar>
            <privacyRating />
          </xs:appinfo>
          <xs:documentation>True if this service is capable of responding to Paged Query Requests (both Interactive and Batch).</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="maxPageSize" minOccurs="0" type="xs:unsignedInt">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>C</sifChar>
            <privacyRating />
          </xs:appinfo>
          <xs:documentation>If Paged Queries are supported, this is the maximum number of Objects that will be returned on a Page of Query results.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="totalCount" minOccurs="0" type="xs:boolean">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>O</sifChar>
            <privacyRating />
          </xs:appinfo>
          <xs:documentation />
        </xs:annotation>
      </xs:element>
      <xs:element name="applicationProduct" minOccurs="0" type="productIdentityType">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>C</sifChar>
            <privacyRating />
          </xs:appinfo>
          <xs:documentation>Application Vendor Identification</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="adapterProduct" minOccurs="0" type="productIdentityType">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>O</sifChar>
            <privacyRating />
          </xs:appinfo>
          <xs:documentation>Adapter Vendor Identification</xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="aliasType">
    <xs:annotation>
      <xs:appinfo>
        <sifChar />
        <privacyRating />
      </xs:appinfo>
      <xs:documentation />
    </xs:annotation>
    <xs:sequence>
      <xs:element name="code" type="codeType">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>M</sifChar>
            <privacyRating />
          </xs:appinfo>
          <xs:documentation />
        </xs:annotation>
      </xs:element>
      <xs:element name="source" minOccurs="0" nillable="true" type="uriType">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>O</sifChar>
            <privacyRating />
          </xs:appinfo>
          <xs:documentation>URL where the related abbreviation comes from.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="namespace" minOccurs="0" nillable="true" type="uriType">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>O</sifChar>
            <privacyRating />
          </xs:appinfo>
          <xs:documentation>Namespace where the related abbreviation comes from.</xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="codeItemType">
    <xs:annotation>
      <xs:appinfo>
        <sifChar />
        <privacyRating />
      </xs:appinfo>
      <xs:documentation />
    </xs:annotation>
    <xs:sequence>
      <xs:element name="code" type="xs:string">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>M</sifChar>
            <privacyRating />
          </xs:appinfo>
          <xs:documentation>Official abbreviation for the given value.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="source" minOccurs="0" nillable="true" type="uriType">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>O</sifChar>
            <privacyRating />
          </xs:appinfo>
          <xs:documentation>URL where the related abbreviation comes from.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="namespace" minOccurs="0" nillable="true" type="uriType">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>O</sifChar>
            <privacyRating />
          </xs:appinfo>
          <xs:documentation>Namespace where the related abbreviation comes from.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="value" nillable="true">
        <xs:simpleType>
          <xs:restriction base="xs:token">
            <xs:annotation>
              <xs:appinfo>
                <sifChar>M</sifChar>
                <privacyRating />
              </xs:appinfo>
              <xs:documentation>What the code represents.</xs:documentation>
            </xs:annotation>
            <xs:minLength value="0" xmlns:xs="http://www.w3.org/2001/XMLSchema" />
            <xs:maxLength value="128" xmlns:xs="http://www.w3.org/2001/XMLSchema" />
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element name="description" minOccurs="0">
        <xs:simpleType>
          <xs:restriction base="xs:normalizedString">
            <xs:annotation>
              <xs:appinfo>
                <sifChar>O</sifChar>
                <privacyRating />
              </xs:appinfo>
              <xs:documentation>Human readable explanation of what the code represents.</xs:documentation>
            </xs:annotation>
            <xs:minLength value="0" xmlns:xs="http://www.w3.org/2001/XMLSchema" />
            <xs:maxLength value="1024" xmlns:xs="http://www.w3.org/2001/XMLSchema" />
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element name="definition" minOccurs="0">
        <xs:simpleType>
          <xs:restriction base="xs:normalizedString">
            <xs:annotation>
              <xs:appinfo>
                <sifChar>O</sifChar>
                <privacyRating />
              </xs:appinfo>
              <xs:documentation>Human readable explanation provided by the source!</xs:documentation>
            </xs:annotation>
            <xs:minLength value="0" xmlns:xs="http://www.w3.org/2001/XMLSchema" />
            <xs:maxLength value="4096" xmlns:xs="http://www.w3.org/2001/XMLSchema" />
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element name="aliases" minOccurs="0" type="aliasesType">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>O</sifChar>
            <privacyRating />
          </xs:appinfo>
          <xs:documentation />
        </xs:annotation>
      </xs:element>
      <xs:element name="action">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>M</sifChar>
            <privacyRating />
          </xs:appinfo>
          <xs:documentation>The last action to be taken for this code item.</xs:documentation>
        </xs:annotation>
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:enumeration value="ADD" />
            <xs:enumeration value="CHANGE" />
            <xs:enumeration value="DEPRECATED" />
            <xs:enumeration value="DELETE" />
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element name="timestamp" type="xs:dateTime">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>M</sifChar>
            <privacyRating />
          </xs:appinfo>
          <xs:documentation>The date and time of the last action taken on this code item. So that only updates can be queried efficiently (where applicable).</xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="codeType">
    <xs:annotation>
      <xs:appinfo>
        <sifChar />
        <privacyRating />
      </xs:appinfo>
      <xs:documentation />
    </xs:annotation>
    <xs:sequence>
      <xs:element name="old" type="xs:boolean">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>M</sifChar>
            <privacyRating />
          </xs:appinfo>
          <xs:documentation>Indicates the alias code has been deprecated or deleted, even if it no longer appears in the register.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="official" type="xs:boolean">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>M</sifChar>
            <privacyRating />
          </xs:appinfo>
          <xs:documentation>Indicates the alias code is an official one; however the locale uses this one to represent that concept, at least in part.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="value" type="xs:string">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>M</sifChar>
            <privacyRating />
          </xs:appinfo>
          <xs:documentation>Alternate abbreviation that might need to be more specific or correct.</xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="codeItemsType">
    <xs:annotation>
      <xs:appinfo>
        <sifChar />
        <privacyRating />
      </xs:appinfo>
      <xs:documentation />
    </xs:annotation>
    <xs:sequence>
      <xs:element name="codeItem" maxOccurs="unbounded" type="codeItemType">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>MR</sifChar>
            <privacyRating />
          </xs:appinfo>
          <xs:documentation />
        </xs:annotation>
      </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="deleteStatusCollectionType">
    <xs:annotation>
      <xs:appinfo>
        <sifChar />
        <privacyRating />
      </xs:appinfo>
      <xs:documentation />
    </xs:annotation>
    <xs:sequence>
      <xs:element name="delete" maxOccurs="unbounded" type="deleteStatusType">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>MR</sifChar>
            <privacyRating />
          </xs:appinfo>
          <xs:documentation />
        </xs:annotation>
      </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="deleteStatusType">
    <xs:annotation>
      <xs:appinfo>
        <sifChar />
        <privacyRating />
      </xs:appinfo>
      <xs:documentation />
    </xs:annotation>
    <xs:sequence>
      <xs:element name="error" minOccurs="0" type="errorCommonType">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>O</sifChar>
            <privacyRating />
          </xs:appinfo>
          <xs:documentation />
        </xs:annotation>
      </xs:element>
    </xs:sequence>
    <xs:attribute name="id" use="optional" type="xs:token">
      <xs:annotation>
        <xs:appinfo>
          <sifChar>O</sifChar>
          <privacyRating />
        </xs:appinfo>
        <xs:documentation />
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="statusCode" use="optional">
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:annotation>
            <xs:appinfo>
              <sifChar>O</sifChar>
              <privacyRating />
            </xs:appinfo>
            <xs:documentation />
          </xs:annotation>
          <xs:pattern value="[24-5][0-9]{2}" xmlns:xs="http://www.w3.org/2001/XMLSchema" />
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
  </xs:complexType>

  <xs:complexType name="deleteIdType">
    <xs:annotation>
      <xs:appinfo>
        <sifChar />
        <privacyRating />
      </xs:appinfo>
      <xs:documentation />
    </xs:annotation>
    <xs:attribute name="id" use="required" type="xs:token">
      <xs:annotation>
        <xs:appinfo>
          <sifChar>M</sifChar>
          <privacyRating />
        </xs:appinfo>
        <xs:documentation />
      </xs:annotation>
    </xs:attribute>
  </xs:complexType>

  <xs:complexType name="mediaTypesType">
    <xs:annotation>
      <xs:appinfo>
        <sifChar />
        <privacyRating />
      </xs:appinfo>
      <xs:documentation />
    </xs:annotation>
    <xs:sequence>
      <xs:element name="mediaType" maxOccurs="unbounded" type="xs:token">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>MR</sifChar>
            <privacyRating />
          </xs:appinfo>
          <xs:documentation>An Internet Media Type supported by this adaptor (for this service).</xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="protocolType">
    <xs:annotation>
      <xs:appinfo>
        <sifChar />
        <privacyRating />
      </xs:appinfo>
      <xs:documentation />
    </xs:annotation>
    <xs:sequence>
      <xs:element name="location" type="xs:anyURI">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>M</sifChar>
            <privacyRating />
          </xs:appinfo>
          <xs:documentation>The URL to use when sending Requests to a Provider</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="properties" minOccurs="0" nillable="true" type="propertiesType">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>O</sifChar>
            <privacyRating />
          </xs:appinfo>
          <xs:documentation>May contain zero or more property elements containing name/value pairs describing any protocol settings required to ensure proper communication</xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="updatesType">
    <xs:annotation>
      <xs:appinfo>
        <sifChar />
        <privacyRating />
      </xs:appinfo>
      <xs:documentation />
    </xs:annotation>
    <xs:sequence>
      <xs:element name="update" maxOccurs="unbounded" type="updateType">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>MR</sifChar>
            <privacyRating />
          </xs:appinfo>
          <xs:documentation />
        </xs:annotation>
      </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="updateType">
    <xs:annotation>
      <xs:appinfo>
        <sifChar />
        <privacyRating />
      </xs:appinfo>
      <xs:documentation />
    </xs:annotation>
    <xs:sequence>
      <xs:element name="error" minOccurs="0" type="errorCommonType">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>O</sifChar>
            <privacyRating />
          </xs:appinfo>
          <xs:documentation />
        </xs:annotation>
      </xs:element>
    </xs:sequence>
    <xs:attribute name="id" use="optional" type="xs:token">
      <xs:annotation>
        <xs:appinfo>
          <sifChar>O</sifChar>
          <privacyRating />
        </xs:appinfo>
        <xs:documentation />
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="statusCode" use="optional">
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:annotation>
            <xs:appinfo>
              <sifChar>O</sifChar>
              <privacyRating />
            </xs:appinfo>
            <xs:documentation />
          </xs:annotation>
          <xs:pattern value="[24-5][0-9]{2}" xmlns:xs="http://www.w3.org/2001/XMLSchema" />
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
  </xs:complexType>

  <xs:complexType name="methodParametersType">
    <xs:annotation>
      <xs:appinfo>
        <sifChar />
        <privacyRating />
      </xs:appinfo>
      <xs:documentation />
    </xs:annotation>
    <xs:sequence>
      <xs:element name="methodParameter" maxOccurs="unbounded" type="methodParameterType">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>MR</sifChar>
            <privacyRating />
          </xs:appinfo>
          <xs:documentation>Individual setting</xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="methodParameterType">
    <xs:annotation>
      <xs:appinfo>
        <sifChar />
        <privacyRating />
      </xs:appinfo>
      <xs:documentation />
    </xs:annotation>
    <xs:sequence>
      <xs:element name="paramName" type="xs:token">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>M</sifChar>
            <privacyRating />
          </xs:appinfo>
          <xs:documentation>The name of the parameter being passed in.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="paramValue" type="xs:normalizedString">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>M</sifChar>
            <privacyRating />
          </xs:appinfo>
          <xs:documentation>The value of the parameter being passed in.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="comparisonType" minOccurs="0" type="xs:token">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>O</sifChar>
            <privacyRating />
          </xs:appinfo>
          <xs:documentation>The operation used to make the comparison.  If not provided EQUAL is assumed.</xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="supportedRequestsType">
    <xs:annotation>
      <xs:appinfo>
        <sifChar />
        <privacyRating />
      </xs:appinfo>
      <xs:documentation />
    </xs:annotation>
    <xs:sequence>
      <xs:element name="supportedRequestType" maxOccurs="unbounded" type="supportedRequestType">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>MR</sifChar>
            <privacyRating />
          </xs:appinfo>
          <xs:documentation>The request type and supported operations available for the related service as provided by the named provider.</xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="supportedRequestType">
    <xs:annotation>
      <xs:appinfo>
        <sifChar />
        <privacyRating />
      </xs:appinfo>
      <xs:documentation />
    </xs:annotation>
    <xs:sequence>
      <xs:element name="requestType" minOccurs="0" type="requestTypeValueType">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>O</sifChar>
            <privacyRating />
          </xs:appinfo>
          <xs:documentation>Relay an delayed request or turn it into an immediate call.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="operations" type="operationsType">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>M</sifChar>
            <privacyRating />
          </xs:appinfo>
          <xs:documentation>The list of operations a request can target, such as CREATE.</xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:simpleType name="requestTypeValueType">
    <xs:restriction base="xs:token">
      <xs:annotation>
        <xs:appinfo>
          <sifChar />
          <privacyRating />
        </xs:appinfo>
        <xs:documentation />
      </xs:annotation>
      <xs:enumeration value="IMMEDIATE" />
      <xs:enumeration value="DELAYED" />
    </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="operationsType">
    <xs:annotation>
      <xs:appinfo>
        <sifChar />
        <privacyRating />
      </xs:appinfo>
      <xs:documentation />
    </xs:annotation>
    <xs:sequence>
      <xs:element name="operation" maxOccurs="unbounded" type="operationType">
        <xs:annotation>
          <xs:appinfo>
            <sifChar>MR</sifChar>
            <privacyRating />
          </xs:appinfo>
          <xs:documentation />
        </xs:annotation>
      </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:simpleType name="operationType">
    <xs:restriction base="xs:token">
      <xs:annotation>
        <xs:appinfo>
          <sifChar />
          <privacyRating />
        </xs:appinfo>
        <xs:documentation />
      </xs:annotation>
      <xs:enumeration value="QUERY" />
      <xs:enumeration value="CREATE" />
      <xs:enumeration value="UPDATE" />
      <xs:enumeration value="DELETE" />
    </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="messageTypeType">
    <xs:restriction base="xs:token">
      <xs:annotation>
        <xs:appinfo>
          <sifChar>O</sifChar>
          <privacyRating />
        </xs:appinfo>
        <xs:documentation />
      </xs:annotation>
      <xs:enumeration value="EVENT" />
      <xs:enumeration value="REQUEST" />
    </xs:restriction>
  </xs:simpleType>

</xs:schema>