<?xml version="1.0" encoding="UTF-8"?>
<!-- edited with XMLSpy v2006 sp2 U (http://www.altova.com) by Nicolas Cochard (Porism Limited) -->
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="http://www.bsigroup.com/resources/standards/bs8723/" xmlns:bs8723="http://www.bsigroup.com/resources/standards/bs8723/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:dcterms="http://purl.org/dc/terms/" xmlns:eGMS="http://www.govtalk.gov.uk/CM/gms" targetNamespace="http://www.bsigroup.com/resources/standards/bs8723/" elementFormDefault="qualified" attributeFormDefault="unqualified">
	<xs:annotation>
		<xs:documentation>
LIABILITY

The British Standards Institution ("BSI") shall not be liable, to the fullest extent permitted by law, for loss suffered by any party as a result of the use or application of DD 8723-5 including loss of profits, loss of business, loss of contract, loss of corruption of data or information, any special, indirect, consequential or pure economic loss, costs, damages, charges or expenses. This exclusion shall not extend to death or personal injury caused by negligence. Users of the standard should ensure that its application is entrusted to those who are appropriately qualified and experienced. 

IPR

The British Standards Institution ("BSI") gives no warranty that the contents of DD 8723-5 do not breach the intellectual property rights, including but not limited to the copyright, design rights and/or patent rights of any party and does not accept any liability, to the fullest extent permitted by law, for any claim that the content of the Standard breaches such third party rights.  Users of the Standard should satisfy themselves with regard to any such rights.
</xs:documentation>
	</xs:annotation>
	<xs:import namespace="http://www.govtalk.gov.uk/CM/gms" schemaLocation="DD8723-5-eGms.xsd"/>
	<xs:import namespace="http://purl.org/dc/terms/" schemaLocation="DD8723-5-DCTerms.xsd"/>
	<xs:import namespace="http://purl.org/dc/elements/1.1/" schemaLocation="DD8723-5-DC.xsd"/>
	<xs:import namespace="http://www.w3.org/XML/1998/namespace" schemaLocation="xml.xsd"/>
	<xs:element name="Thesaurus" type="ThesaurusStructure">
		<xs:annotation>
			<xs:documentation>Root element of the XML file containing the Thesaurus data.</xs:documentation>
		</xs:annotation>
		<xs:unique name="CustomAttributeIdentifier">
			<xs:annotation>
				<xs:documentation>Makes the identifier of the custom attributes unique.</xs:documentation>
			</xs:annotation>
			<xs:selector xpath="bs8723:CustomAttribute"/>
			<xs:field xpath="@dc:identifier"/>
		</xs:unique>
		<xs:unique name="ThesaurusConceptArrayIdentifier">
			<xs:annotation>
				<xs:documentation>Makes the identifier of the concepts and arrays unique.</xs:documentation>
			</xs:annotation>
			<xs:selector xpath="bs8723:ThesaurusConcept|bs8723:ThesaurusArray"/>
			<xs:field xpath="@dc:identifier"/>
		</xs:unique>
		<xs:unique name="ThesaurusConceptIdentifier">
			<xs:annotation>
				<xs:documentation>Makes the identifier of the concepts unique.</xs:documentation>
			</xs:annotation>
			<xs:selector xpath="bs8723:ThesaurusConcept"/>
			<xs:field xpath="@dc:identifier"/>
		</xs:unique>
		<xs:unique name="ThesaurusArrayIdentifier">
			<xs:annotation>
				<xs:documentation>Makes the identifier of the arrays unique.</xs:documentation>
			</xs:annotation>
			<xs:selector xpath="bs8723:ThesaurusArray"/>
			<xs:field xpath="@dc:identifier"/>
		</xs:unique>
		<xs:unique name="ThesaurusTermIdentifier">
			<xs:annotation>
				<xs:documentation>Makes the identifier of the terms unique.</xs:documentation>
			</xs:annotation>
			<xs:selector xpath="bs8723:ThesaurusConcept/bs8723:PreferredTerm|bs8723:ThesaurusConcept/bs8723:NonPreferredTerm|bs8723:CompoundEquivalence/bs8723:CompoundNonPreferredTerm"/>
			<xs:field xpath="@dc:identifier"/>
		</xs:unique>
	</xs:element>
	<xs:complexType name="ThesaurusStructure">
		<xs:annotation>
			<xs:documentation>Data type representing the structure of the thesaurus</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element ref="dc:identifier" maxOccurs="unbounded"/>
			<xs:element ref="dc:contributor" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element ref="dc:coverage" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element ref="dc:creator" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element ref="dc:date" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element ref="dcterms:created" minOccurs="0"/>
			<xs:element ref="dcterms:modified" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element ref="dc:description" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element ref="dc:format" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element ref="dc:language" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element ref="dc:publisher" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element ref="dc:relation" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element ref="dc:rights" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element ref="dc:source" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element ref="dc:subject" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element ref="dc:title" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element ref="dc:type" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element name="ThesaurusArray" type="ThesaurusArrayStructure" minOccurs="0" maxOccurs="unbounded">
				<xs:annotation>
					<xs:documentation>Array of the thesaurus.</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="ThesaurusConcept" type="ThesaurusConceptStructure" maxOccurs="unbounded">
				<xs:annotation>
					<xs:documentation>Concept contained in the Thesaurus</xs:documentation>
				</xs:annotation>
				<xs:unique name="TermIdentifier">
					<xs:annotation>
						<xs:documentation>Makes the identifier of the terms unique.</xs:documentation>
					</xs:annotation>
					<xs:selector xpath="bs8723:ThesaurusConcept/bs8723:PreferredTerm|bs8723:ThesaurusConcept/bs8723:NonPreferredTerm"/>
					<xs:field xpath="@dc:identifier"/>
				</xs:unique>
				<xs:unique name="PreferredTermIdentifier">
					<xs:annotation>
						<xs:documentation>Makes the identifier of the preferred terms unique.</xs:documentation>
					</xs:annotation>
					<xs:selector xpath="bs8723:ThesaurusConcept/bs8723:PreferredTerm"/>
					<xs:field xpath="@dc:identifier"/>
				</xs:unique>
				<xs:unique name="NonPreferredTermIdentifier">
					<xs:annotation>
						<xs:documentation>Makes the identifier of the non-preferred terms unique.</xs:documentation>
					</xs:annotation>
					<xs:selector xpath="bs8723:ThesaurusConcept/bs8723:NonPreferredTerm"/>
					<xs:field xpath="@dc:identifier"/>
				</xs:unique>
			</xs:element>
			<xs:element name="CompoundNonPreferredTerm" type="CompoundNonPreferredTermStructure" minOccurs="0" maxOccurs="unbounded">
				<xs:annotation>
					<xs:documentation>Details of the compound non-preferred term</xs:documentation>
				</xs:annotation>
			</xs:element>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="ThesaurusConceptStructure">
		<xs:annotation>
			<xs:documentation>Data type representing the structure of a concept in a Thesaurus.</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element ref="dcterms:created" minOccurs="0"/>
			<xs:element ref="dcterms:modified" minOccurs="0"/>
			<xs:element ref="Notation" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element ref="eGMS:Status" minOccurs="0"/>
			<xs:element name="TopConcept" type="xs:boolean" minOccurs="0">
				<xs:annotation>
					<xs:documentation>Indicates whether this concept is a top concept</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="ScopeNote" type="ScopeNoteStructure" minOccurs="0" maxOccurs="unbounded">
				<xs:annotation>
					<xs:documentation>Scope note of the concept.</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="HistoryNote" type="HistoryNoteStructure" minOccurs="0" maxOccurs="unbounded">
				<xs:annotation>
					<xs:documentation>History note of the concept.</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="PreferredTerm" maxOccurs="unbounded">
				<xs:annotation>
					<xs:documentation>Preferred term of the concept. A concept may have only one preferred term per language.</xs:documentation>
				</xs:annotation>
				<xs:complexType>
					<xs:complexContent>
						<xs:extension base="PreferredTermStructure"/>
					</xs:complexContent>
				</xs:complexType>
			</xs:element>
			<xs:element name="NonPreferredTerm" minOccurs="0" maxOccurs="unbounded">
				<xs:annotation>
					<xs:documentation>Non-preferred term of the concept.</xs:documentation>
				</xs:annotation>
				<xs:complexType>
					<xs:complexContent>
						<xs:extension base="SimpleNonPreferredTermStructure"/>
					</xs:complexContent>
				</xs:complexType>
			</xs:element>
			<xs:element name="HasAttribute" type="CustomAttributeStructure" minOccurs="0" maxOccurs="unbounded">
				<xs:annotation>
					<xs:documentation>Reference to an attribute defined by the thesaurus.</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="HasHierRelConcept" type="HierRelStructure" minOccurs="0" maxOccurs="unbounded">
				<xs:annotation>
					<xs:documentation>Reference to a broader or narrower concept of this concept.</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="HasRelatedConcept" type="AssociativeRelationshipStructure" minOccurs="0" maxOccurs="unbounded">
				<xs:annotation>
					<xs:documentation>Reference to the related concepts of this concept.</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="HasTopConcept" type="xs:string" minOccurs="0" maxOccurs="unbounded">
				<xs:annotation>
					<xs:documentation>Contains the identifier of the top concept.</xs:documentation>
				</xs:annotation>
			</xs:element>
		</xs:sequence>
		<xs:attribute ref="dc:identifier" use="required"/>
	</xs:complexType>
	<xs:complexType name="ThesaurusTermStructure" abstract="true">
		<xs:annotation>
			<xs:documentation>Data type defining the structure of a term in a Thesaurus.</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element ref="LexicalValue"/>
			<xs:element ref="dcterms:created" minOccurs="0"/>
			<xs:element ref="dcterms:modified" minOccurs="0"/>
			<xs:element ref="dc:source" minOccurs="0"/>
			<xs:element ref="eGMS:Status" minOccurs="0"/>
			<xs:element name="HistoryNote" type="HistoryNoteStructure" minOccurs="0">
				<xs:annotation>
					<xs:documentation>History note of the term.</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="Definition" type="DefinitionStructure" minOccurs="0" maxOccurs="unbounded">
				<xs:annotation>
					<xs:documentation>Definition of the term.</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="EditorialNote" type="EditorialNoteStructure" minOccurs="0">
				<xs:annotation>
					<xs:documentation>Editorial note about the term.</xs:documentation>
				</xs:annotation>
			</xs:element>
		</xs:sequence>
		<xs:attribute ref="xml:lang"/>
		<xs:attribute ref="dc:identifier"/>
	</xs:complexType>
	<xs:complexType name="NoteStructure">
		<xs:annotation>
			<xs:documentation>Data type representing the structure of notes (scope notes, history notes, etc.).</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element name="LexicalValue">
				<xs:annotation>
					<xs:documentation>The notes may include references to other concepts.</xs:documentation>
				</xs:annotation>
				<xs:complexType mixed="true">
					<xs:sequence>
						<xs:element name="RefersTo" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
					</xs:sequence>
				</xs:complexType>
			</xs:element>
			<xs:element ref="dcterms:created" minOccurs="0"/>
			<xs:element ref="dcterms:modified" minOccurs="0"/>
		</xs:sequence>
		<xs:attribute ref="xml:lang"/>
	</xs:complexType>
	<xs:complexType name="ScopeNoteStructure">
		<xs:annotation>
			<xs:documentation>Data type representing the structure of scope notes. This complex type extends the generic structure of NoteStructure.</xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="NoteStructure"/>
		</xs:complexContent>
	</xs:complexType>
	<xs:complexType name="HistoryNoteStructure">
		<xs:annotation>
			<xs:documentation>Data type representing the structure of history notes. This complex type extends the generic structure of NoteStructure.</xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="NoteStructure"/>
		</xs:complexContent>
	</xs:complexType>
	<xs:complexType name="DefinitionStructure">
		<xs:annotation>
			<xs:documentation>Data type representing the structure of definitions. This complex type extends the generic structure of NoteStructure.</xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="NoteStructure">
				<xs:sequence>
					<xs:element ref="dc:source"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:complexType name="EditorialNoteStructure">
		<xs:annotation>
			<xs:documentation>Data type representing the structure of editorial notes. This complex type extends the generic structure of NoteStructure.</xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="NoteStructure"/>
		</xs:complexContent>
	</xs:complexType>
	<xs:complexType name="PreferredTermStructure">
		<xs:annotation>
			<xs:documentation>Data type defining the structure of a preferred term.</xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="ThesaurusTermStructure">
				<xs:sequence>
					<xs:element name="UF" type="UFRelationshipStructure" minOccurs="0" maxOccurs="unbounded">
						<xs:annotation>
							<xs:documentation>References the non-preferred terms of the concept or a compound non preferred term.</xs:documentation>
						</xs:annotation>
					</xs:element>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:complexType name="SimpleNonPreferredTermStructure">
		<xs:annotation>
			<xs:documentation>Data type defining the structure of non-preferred terms.</xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="ThesaurusTermStructure">
				<xs:sequence>
					<xs:element name="USE" type="USERelationshipStructure">
						<xs:annotation>
							<xs:documentation>References the preferred term of the concept.</xs:documentation>
						</xs:annotation>
					</xs:element>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:complexType name="NodeLabelStructure">
		<xs:annotation>
			<xs:documentation>Data type defining the structure of node labels</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element ref="Notation" minOccurs="0"/>
			<xs:element ref="LexicalValue"/>
			<xs:element ref="dcterms:created" minOccurs="0"/>
			<xs:element ref="dcterms:modified" minOccurs="0"/>
		</xs:sequence>
		<xs:attribute ref="xml:lang"/>
	</xs:complexType>
	<xs:complexType name="ThesaurusArrayStructure">
		<xs:annotation>
			<xs:documentation>Data type defining the structure of arrays</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element name="IsLabelledBy" type="NodeLabelStructure" minOccurs="0" maxOccurs="unbounded">
				<xs:annotation>
					<xs:documentation>Label given to the array.</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="HasSuperOrdinate" type="xs:string" minOccurs="0">
				<xs:annotation>
					<xs:documentation>Identifies the superordinate concepts or arrays.</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="HasMember" type="xs:string" maxOccurs="unbounded">
				<xs:annotation>
					<xs:documentation>Identifies the concepts or other arrays composing this array</xs:documentation>
				</xs:annotation>
			</xs:element>
		</xs:sequence>
		<xs:attribute ref="dc:identifier" use="required"/>
		<xs:attribute name="Ordered" type="xs:boolean" default="false">
			<xs:annotation>
				<xs:documentation>Indicates whether the order of the collection should be maintained.</xs:documentation>
			</xs:annotation>
		</xs:attribute>
	</xs:complexType>
	<xs:complexType name="CompoundNonPreferredTermStructure">
		<xs:annotation>
			<xs:documentation>Data type defining the structure of non-preferred terms.</xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="ThesaurusTermStructure">
				<xs:sequence>
					<xs:element name="USE" type="USEPlusRelationshipStructure" minOccurs="2" maxOccurs="unbounded"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="LexicalValue">
		<xs:annotation>
			<xs:documentation>Lexical value of a term or node label</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:element name="Notation" type="xs:string">
		<xs:annotation>
			<xs:documentation>Notation of the node label or concept</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="HierRelStructure">
		<xs:annotation>
			<xs:documentation>Data type defining the structure of a BT and NT relationship</xs:documentation>
		</xs:annotation>
		<xs:simpleContent>
			<xs:extension base="xs:string">
				<xs:attribute name="Role" type="HierRelType"/>
			</xs:extension>
		</xs:simpleContent>
	</xs:complexType>
	<xs:simpleType name="HierRelType">
		<xs:annotation>
			<xs:documentation>Data type containing the list of common BT and NT relationships</xs:documentation>
		</xs:annotation>
		<xs:union>
			<xs:simpleType>
				<xs:restriction base="xs:string">
					<xs:enumeration value="BT"/>
					<xs:enumeration value="BT/BTG"/>
					<xs:enumeration value="BT/BTI"/>
					<xs:enumeration value="BT/BTP"/>
					<xs:enumeration value="NT"/>
					<xs:enumeration value="NT/NTG"/>
					<xs:enumeration value="NT/NTI"/>
					<xs:enumeration value="NT/NTP"/>
				</xs:restriction>
			</xs:simpleType>
			<xs:simpleType>
				<xs:restriction base="xs:string"/>
			</xs:simpleType>
		</xs:union>
	</xs:simpleType>
	<xs:complexType name="AssociativeRelationshipStructure">
		<xs:annotation>
			<xs:documentation>Data type defining the structure of an associative relationship</xs:documentation>
		</xs:annotation>
		<xs:simpleContent>
			<xs:extension base="xs:string">
				<xs:attribute name="Role" type="AssociativeRelationshipType"/>
			</xs:extension>
		</xs:simpleContent>
	</xs:complexType>
	<xs:simpleType name="AssociativeRelationshipType">
		<xs:annotation>
			<xs:documentation>Data type containing the list of common RT relationships</xs:documentation>
		</xs:annotation>
		<xs:union>
			<xs:simpleType>
				<xs:restriction base="xs:string">
					<xs:enumeration value="RT"/>
				</xs:restriction>
			</xs:simpleType>
			<xs:simpleType>
				<xs:restriction base="xs:string"/>
			</xs:simpleType>
		</xs:union>
	</xs:simpleType>
	<xs:complexType name="USERelationshipStructure">
		<xs:annotation>
			<xs:documentation>Data type defining the structure of a USE relationship</xs:documentation>
		</xs:annotation>
		<xs:simpleContent>
			<xs:extension base="xs:string">
				<xs:attribute name="Role" type="USERelationshipType"/>
			</xs:extension>
		</xs:simpleContent>
	</xs:complexType>
	<xs:simpleType name="USERelationshipType">
		<xs:annotation>
			<xs:documentation>Data type containing the list of common USE relationship types</xs:documentation>
		</xs:annotation>
		<xs:union>
			<xs:simpleType>
				<xs:restriction base="xs:string">
					<xs:enumeration value="USE"/>
				</xs:restriction>
			</xs:simpleType>
			<xs:simpleType>
				<xs:restriction base="xs:string"/>
			</xs:simpleType>
		</xs:union>
	</xs:simpleType>
	<xs:complexType name="USEPlusRelationshipStructure">
		<xs:annotation>
			<xs:documentation>Data type defining the structure of a USE + relationship</xs:documentation>
		</xs:annotation>
		<xs:simpleContent>
			<xs:extension base="xs:string">
				<xs:attribute name="Role" type="USEPlusRelationshipType"/>
			</xs:extension>
		</xs:simpleContent>
	</xs:complexType>
	<xs:simpleType name="USEPlusRelationshipType">
		<xs:annotation>
			<xs:documentation>Data type containing the list of common USE + relationship types</xs:documentation>
		</xs:annotation>
		<xs:restriction base="xs:string">
			<xs:enumeration value="USE +"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:complexType name="UFRelationshipStructure">
		<xs:annotation>
			<xs:documentation>Data type defining the structure of a UF relationship</xs:documentation>
		</xs:annotation>
		<xs:simpleContent>
			<xs:extension base="xs:string">
				<xs:attribute name="Role" type="UFRelationshipType"/>
			</xs:extension>
		</xs:simpleContent>
	</xs:complexType>
	<xs:simpleType name="UFRelationshipType">
		<xs:annotation>
			<xs:documentation>Data type containing the list of common UF relationship types</xs:documentation>
		</xs:annotation>
		<xs:union>
			<xs:simpleType>
				<xs:restriction base="xs:string">
					<xs:enumeration value="UF"/>
					<xs:enumeration value="UF +"/>
				</xs:restriction>
			</xs:simpleType>
			<xs:simpleType>
				<xs:restriction base="xs:string"/>
			</xs:simpleType>
		</xs:union>
	</xs:simpleType>
	<xs:complexType name="CustomAttributeStructure">
		<xs:annotation>
			<xs:documentation>Data type representing the structure of a custom attribute</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element ref="LexicalValue"/>
			<xs:element name="CustomAttributeType" type="xs:string"/>
		</xs:sequence>
	</xs:complexType>
</xs:schema>

