﻿<?xml version="1.0" encoding="utf-8"?>
<xsd:schema elementFormDefault="qualified" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <xsd:element name="Authorisation">
    <xsd:complexType>
      <xsd:sequence>
        <xsd:element name="EntityGUID" type="xsd:string">
          <xsd:annotation>
            <xsd:documentation>Unique identifier for the current user</xsd:documentation>
          </xsd:annotation>
        </xsd:element>
        <xsd:element name="EntityName" minOccurs="0" type="xsd:string">
          <xsd:annotation>
            <xsd:documentation>The name associated with the current user</xsd:documentation>
          </xsd:annotation>
        </xsd:element>
        <xsd:element name="Username" minOccurs="0" type="xsd:string">
          <xsd:annotation>
            <xsd:documentation>The unique username assigned to the current user</xsd:documentation>
          </xsd:annotation>
        </xsd:element>
        <xsd:element name="EmailAddress" minOccurs="0" type="xsd:string">
          <xsd:annotation>
            <xsd:documentation>The email address associated with the current user</xsd:documentation>
          </xsd:annotation>
        </xsd:element>
        <xsd:element name="AllPersonas" minOccurs="0">
          <xsd:annotation>
            <xsd:documentation>The list of all personas available to the user across all schemes</xsd:documentation>
          </xsd:annotation>
          <xsd:simpleType>
            <xsd:list>
              <xsd:simpleType>
                <xsd:restriction base="xsd:string">
                  <xsd:enumeration value="Manager">
                    <xsd:annotation>
                      <xsd:documentation>User has scheme manager role</xsd:documentation>
                    </xsd:annotation>
                  </xsd:enumeration>
                  <xsd:enumeration value="Administrator">
                    <xsd:annotation>
                      <xsd:documentation>User has scheme administrator role</xsd:documentation>
                    </xsd:annotation>
                  </xsd:enumeration>
                  <xsd:enumeration value="Author">
                    <xsd:annotation>
                      <xsd:documentation>User has standards author role</xsd:documentation>
                    </xsd:annotation>
                  </xsd:enumeration>
                  <xsd:enumeration value="Certifier">
                    <xsd:annotation>
                      <xsd:documentation>User has certifier administrator role</xsd:documentation>
                    </xsd:annotation>
                  </xsd:enumeration>
                  <xsd:enumeration value="Industry">
                    <xsd:annotation>
                      <xsd:documentation>User has scheme industry access</xsd:documentation>
                    </xsd:annotation>
                  </xsd:enumeration>
                  <xsd:enumeration value="Member">
                    <xsd:annotation>
                      <xsd:documentation>User is associated with a scheme member</xsd:documentation>
                    </xsd:annotation>
                  </xsd:enumeration>
                  <xsd:enumeration value="Inspector">
                    <xsd:annotation>
                      <xsd:documentation>User has inspector role</xsd:documentation>
                    </xsd:annotation>
                  </xsd:enumeration>
                </xsd:restriction>
              </xsd:simpleType>
            </xsd:list>
          </xsd:simpleType>
        </xsd:element>
        <xsd:element name="SchemePersonas" minOccurs="0">
          <xsd:annotation>
            <xsd:documentation>The list of all personas available to the user for individual schemes</xsd:documentation>
          </xsd:annotation>
          <xsd:complexType>
            <xsd:sequence>
              <xsd:element name="Item" minOccurs="0" maxOccurs="unbounded">
                <xsd:complexType>
                  <xsd:sequence>
                    <xsd:element name="SchemeID" type="xsd:double">
                      <xsd:annotation>
                        <xsd:documentation>The unique numeric identifier assigned to the scheme</xsd:documentation>
                      </xsd:annotation>
                    </xsd:element>
                    <xsd:element name="SchemeName" type="xsd:string">
                      <xsd:annotation>
                        <xsd:documentation>The name of the scheme</xsd:documentation>
                      </xsd:annotation>
                    </xsd:element>
                    <xsd:element name="Personas">
                      <xsd:annotation>
                        <xsd:documentation>The personas available to the user for this scheme</xsd:documentation>
                      </xsd:annotation>
                      <xsd:simpleType>
                        <xsd:list>
                          <xsd:simpleType>
                            <xsd:restriction base="xsd:string">
                              <xsd:enumeration value="Manager">
                                <xsd:annotation>
                                  <xsd:documentation>User has scheme manager role</xsd:documentation>
                                </xsd:annotation>
                              </xsd:enumeration>
                              <xsd:enumeration value="Administrator">
                                <xsd:annotation>
                                  <xsd:documentation>User has scheme administrator role</xsd:documentation>
                                </xsd:annotation>
                              </xsd:enumeration>
                              <xsd:enumeration value="Author">
                                <xsd:annotation>
                                  <xsd:documentation>User has standards author role</xsd:documentation>
                                </xsd:annotation>
                              </xsd:enumeration>
                              <xsd:enumeration value="Certifier">
                                <xsd:annotation>
                                  <xsd:documentation>User has certifier administrator role</xsd:documentation>
                                </xsd:annotation>
                              </xsd:enumeration>
                              <xsd:enumeration value="Industry">
                                <xsd:annotation>
                                  <xsd:documentation>User has scheme industry access</xsd:documentation>
                                </xsd:annotation>
                              </xsd:enumeration>
                              <xsd:enumeration value="Member">
                                <xsd:annotation>
                                  <xsd:documentation>User is associated with a scheme member</xsd:documentation>
                                </xsd:annotation>
                              </xsd:enumeration>
                              <xsd:enumeration value="Inspector">
                                <xsd:annotation>
                                  <xsd:documentation>User has inspector role</xsd:documentation>
                                </xsd:annotation>
                              </xsd:enumeration>
                            </xsd:restriction>
                          </xsd:simpleType>
                        </xsd:list>
                      </xsd:simpleType>
                    </xsd:element>
                  </xsd:sequence>
                </xsd:complexType>
              </xsd:element>
            </xsd:sequence>
          </xsd:complexType>
        </xsd:element>
      </xsd:sequence>
    </xsd:complexType>
  </xsd:element>
</xsd:schema>