<?xml version="1.0" encoding="UTF-8"?>
<!--RIXML Roster Updates Standard v3.0 Release Candidate RC6-->
<!--The information contained in this standard and its affiliated documentation was developed by RIXML, Inc. ("RIXML") with input from member firms and others. It does not necessarily represent the views or opinions of RIXML or any individual member firm. RIXML and its members hereby disclaim any and all liability resulting from all claims, losses or damages, whether direct, indirect, incidental, or consequential arising from any and all use of this Standard. RIXML is not responsible for any errors or omissions in the information contained in the Standard. RIXML and its affiliates make no warranties or representations and disclaim all express, implied and statutory warranties of any kind to any party resulting from the use of the Standards. Terms and conditions of use are published on the web site at www.rixml.org. Copyright 2000-2026. All rights reserved.-->
<!--For further documentation of this schema version, please visit the RIXML web site at rixml.org and navigate to the page covering the RIXML Roster Updates Standard-->
<xs:schema targetNamespace="http://www.rixml.org/RIXML/RosterUpdates/v30" xmlns:rixml="http://www.rixml.org/RIXML/RosterUpdates/v30" xmlns:rixmlenum="http://www.rixml.org/RIXML/Research/v30/Enumerations" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="http://www.rixml.org/RIXML/RosterUpdates/v30" elementFormDefault="qualified" attributeFormDefault="unqualified">
	<xs:include schemaLocation="RIXML-Common-3_0.xsd"/>
	<xs:import namespace="http://www.rixml.org/RIXML/Research/v30/Enumerations" schemaLocation="RIXML-Enumerations-3_0.xsd"/>
	<xs:element name="RosterUpdates" type="RosterUpdatesType">
		<xs:annotation>
			<xs:documentation>RosterUpdates is the root tag for a batch of roster updates.  A roster update gives a publisher the ability to communicate changes to the groups of people playing various roles on its behalf in the investment research marketplace.  The common case would be a financial services firm updating its roster of research analysts with aggregator partners.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="RosterUpdatesType">
		<xs:annotation>
			<xs:documentation>ComplexType for RosterUpdates</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element ref="RosterUpdate" maxOccurs="unbounded"/>
		</xs:sequence>
		<xs:attribute name="rosterUpdatesID" type="xs:string" use="required">
			<xs:annotation>
				<xs:documentation>This is to facilitate the unique identification of a particular batch of roster updates.  Enables a consumer of this information to keep track of which batches have been applied to its database and which are duplicates.  We recommend UUIDs to ensure uniqueness.</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="createDateTime" type="xs:dateTime" use="required">
			<xs:annotation>
				<xs:documentation>This marks the date/time at which this batch of roster updates was formed.  It is expressed using ISO 8601 as refined by the World Wide Web Consortium's note http://www.w3.org/TR/NOTE-datetime.  In addition, RIXML requires the use of UTC (GMT +/- n hours:minute:seconds).  All times are absolute and easier to compute, rather than using a relative (i.e. 08:30 +5) time.</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="language" type="rixmlenum:ISO639LanguageType" use="required">
			<xs:annotation>
				<xs:documentation>Indicates the language of the instance document -- i.e. the language of the publisher-supplied tag values contained in the XML file for this roster item.  Described using the ISO 639-2/T Code.</xs:documentation>
			</xs:annotation>
		</xs:attribute>
	</xs:complexType>
	<xs:element name="RosterUpdate" type="RosterUpdateType">
		<xs:annotation>
			<xs:documentation>A roster update gives a publisher the ability to communicate changes to the groups of people playing various roles on its behalf in the investment research marketplace.  The common case would be a financial services firm updating its roster of research analysts with aggregator partners.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="RosterUpdateType">
		<xs:annotation>
			<xs:documentation>ComplexType for RosterUpdate</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element ref="PublishingActionList">
				<xs:annotation>
					<xs:documentation>For publishingActionType attribute, use:  Published=Add, Revised=Update, Deleted=Delete.</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:choice maxOccurs="unbounded">
				<xs:element ref="Organization"/>
				<xs:element ref="OrganizationExpertise"/>
				<xs:element ref="PersonGroup"/>
				<xs:element ref="PersonGroupMember"/>
				<xs:element ref="Person"/>
			</xs:choice>
		</xs:sequence>
		<xs:attribute name="rosterUpdateID" type="xs:string" use="optional">
			<xs:annotation>
				<xs:documentation>This is to facilitate the unique identification of a particular individual roster update.  Enables a consumer of this information to keep track of which updates have been applied to its database and which are duplicates.  We recommend UUIDs to ensure uniqueness.</xs:documentation>
			</xs:annotation>
		</xs:attribute>
	</xs:complexType>
	<xs:element name="OrganizationExpertise" type="OrganizationExpertiseType">
		<xs:annotation>
			<xs:documentation>Areas of expertise associated with an organization that publishes research.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OrganizationExpertiseType">
		<xs:annotation>
			<xs:documentation>ComplexType for OrganizationExpertise</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element ref="PublishingLanguageList" minOccurs="0"/>
			<xs:element ref="SubjectList" minOccurs="0"/>
			<xs:element ref="IndustryList" minOccurs="0"/>
			<xs:element ref="AssetClassList" minOccurs="0"/>
			<xs:element ref="EsgCategoryList" minOccurs="0"/>
			<xs:element ref="RegionList" minOccurs="0"/>
			<xs:element ref="CountryList" minOccurs="0"/>
			<xs:element ref="DisciplineList" minOccurs="0"/>
		</xs:sequence>
	</xs:complexType>
</xs:schema>
