You could use "referential integrity".
<?xml version="1.0" encoding="utf-8" ?>
<!-- XML Schema generated by QTAssistant/XSD Module (http://www.paschidev.com) -->
<xsd:schema targetNamespace="http://myNamespace/DeliveryOrderSchema" xmlns="http://myNamespace/DeliveryOrderSchema" xmlns:mm="http://myNamespace/DeliveryOrderSchema" elementFormDefault="qualified" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:element name="DeliveryOrder" type="OrderDetails">
<xsd:key name="LocationDepot">
<xsd:selector xpath="mm:Depot"/>
<xsd:field xpath="."/>
</xsd:key>
<xsd:keyref refer="LocationDepot" name="CustomerLocation">
<xsd:selector xpath="mm:Customer"/>
<xsd:field xpath="mm:County"/>
</xsd:keyref>
</xsd:element>
<xsd:complexType name="OrderDetails">
<xsd:sequence>
<xsd:element name="Depot" type="Location"/>
<xsd:element name="Customer" type="Customer" maxOccurs="1" minOccurs="1"/>
</xsd:sequence>
</xsd:complexType>
<xsd:simpleType name="Location">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="OverHere"/>
<xsd:enumeration value="OverThere"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:complexType name="Customer">
<xsd:sequence>
<xsd:element name="firstname" type="xsd:string"/>
<xsd:element name="surname" type="xsd:string"/>
<xsd:element name="County" type="Location"/>
</xsd:sequence>
</xsd:complexType>
</xsd:schema>
An error might look as below:
Error occurred while loading [], line 10 position 3
The key sequence 'OverHere' in 'http://myNamespace/DeliveryOrderSchema:LocationDepot' Keyref fails to refer to some key.