<?xml version="1.0" encoding="UTF-8"?>
        <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
                    xmlns:wsdl="http://schemas.xmlsoap.org/soap/encoding/"
                    xmlns:merch="http://www.example.com/example/commonTypes/"
                    targetNamespace="http://www.example.com/example/commonTypes/">

            <!--************************************************************* -->
            <!-- Misc.  -->
            <!--************************************************************* -->
            <xsd:simpleType name="nonNegativeInteger">
                <xsd:restriction base="xsd:integer">
                        <xsd:minInclusive value="0"/>
                </xsd:restriction>
            </xsd:simpleType>

            <xsd:simpleType name="nonEmptyString">
                <xsd:annotation>
                    <xsd:documentation> This type simply restricts an xsd:string to be non-empty.</xsd:documentation>
                </xsd:annotation>
                <xsd:restriction base="xsd:string">
                    <xsd:minLength value="1"/>
                </xsd:restriction>
            </xsd:simpleType>


            <!--************************************************************* -->
            <!-- Base Requests -->
            <!--************************************************************* -->
            <xsd:complexType name="requestBaseType">
                <xsd:annotation>
                    <xsd:documentation>This is the base for all requests.
                    </xsd:documentation>
                </xsd:annotation>
                <xsd:complexContent>
                    <xsd:extension base="merch:transactionBaseType">
                        <xsd:sequence>
                            <xsd:element name="subscriberKey" type="merch:nonEmptyString"
                                         minOccurs="0" />
                            <xsd:element name="externalSubscriberId" type="merch:nonEmptyString"
                                         minOccurs="0" />
                        </xsd:sequence>
                    </xsd:extension>
                </xsd:complexContent>
            </xsd:complexType>
            
        </xsd:schema>

