<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
    xmlns:trs="http://www.snb.ch/MMX/Translations"
    targetNamespace="http://www.snb.ch/MMX/Translations"
    elementFormDefault="qualified"
    xmlns:vc="http://www.w3.org/2007/XMLSchema-versioning"
    vc:minVersion="1.1">

    <xs:complexType name="TranslationType">
        <xs:sequence>
            <xs:element name="de" type="xs:string"/>
            <xs:element name="fr" type="xs:string"/>
            <xs:element name="it" type="xs:string"/>
            <xs:element name="en" type="xs:string"/>
        </xs:sequence>
    </xs:complexType>

    <xs:complexType name="FieldType">
        <xs:sequence>
            <xs:element name="Translation" type="trs:TranslationType"/>
        </xs:sequence>
        <xs:attribute name="name" type="xs:string" use="required"/>
    </xs:complexType>

    <xs:complexType name="ValueType">
        <xs:sequence>
            <xs:element name="Translation" type="trs:TranslationType"/>
        </xs:sequence>
        <xs:attribute name="key" type="xs:string" use="required"/>
    </xs:complexType>

    <xs:complexType name="EnumType">
        <xs:sequence>
            <xs:element name="Values">
                <xs:complexType>
                    <xs:sequence>
                        <xs:element name="Value" type="trs:ValueType" maxOccurs="unbounded"/>
                    </xs:sequence>
                </xs:complexType>
            </xs:element>
        </xs:sequence>
        <xs:attribute name="fieldName" type="xs:string" use="required"/>
    </xs:complexType>

    <xs:element name="Document">
        <xs:complexType>
            <xs:sequence>
                <xs:element name="TranslationVersion" type="xs:string"/>
                <xs:element name="EnvelopeMetaData">
                    <xs:complexType>
                        <xs:sequence>
                            <xs:element name="Fields">
                                <xs:complexType>
                                    <xs:sequence>
                                        <xs:element name="Field" type="trs:FieldType" minOccurs="0" maxOccurs="unbounded"/>
                                    </xs:sequence>
                                </xs:complexType>
                            </xs:element>
                            <xs:element name="Enumerations">
                                <xs:complexType>
                                    <xs:sequence>
                                        <xs:element name="Enum" type="trs:EnumType" minOccurs="0" maxOccurs="unbounded"/>
                                    </xs:sequence>
                                </xs:complexType>
                            </xs:element>
                        </xs:sequence>
                        <xs:attribute name="envelopeSchemaVersion" type="xs:string"/>
                    </xs:complexType>
                </xs:element>
                <xs:element name="ContentTypes">
                    <xs:complexType>
                        <xs:sequence>
                            <xs:element name="ContentType" minOccurs="0" maxOccurs="unbounded">
                                <xs:complexType>
                                    <xs:sequence>
                                        <xs:element name="Fields">
                                            <xs:complexType>
                                                <xs:sequence>
                                                    <xs:element name="Field" type="trs:FieldType" minOccurs="0" maxOccurs="unbounded"/>
                                                </xs:sequence>
                                            </xs:complexType>
                                        </xs:element>
                                        <xs:element name="Enumerations">
                                            <xs:complexType>
                                                <xs:sequence>
                                                    <xs:element name="Enum" type="trs:EnumType" minOccurs="0" maxOccurs="unbounded"/>
                                                </xs:sequence>
                                            </xs:complexType>
                                        </xs:element>
                                    </xs:sequence>
                                    <xs:attribute name="name">
                                        <xs:simpleType>
                                            <xs:restriction base="xs:string">
                                                <xs:enumeration value="RepoAnnouncement"/>
                                                <xs:enumeration value="BillsMMDRCAnnouncement"/>
                                                <xs:enumeration value="FederalBondsAnnouncement"/>
                                                <xs:enumeration value="AdHocCommunication"/>
                                                <xs:enumeration value="RepoCalendar"/>
                                                <xs:enumeration value="BillsMMDRCCalendar"/>
                                                <xs:enumeration value="RepoResults"/>
                                                <xs:enumeration value="BillsMMDRCResults"/>
                                            </xs:restriction>
                                        </xs:simpleType>
                                    </xs:attribute>
                                    <xs:attribute name="contentTypeSchemaVersion" type="xs:string"/>
                                </xs:complexType>
                            </xs:element>
                        </xs:sequence>
                    </xs:complexType>
                </xs:element>
            </xs:sequence>
            <xs:attribute name="schemaVersion" type="xs:string" use="required"/>
        </xs:complexType>
    </xs:element>
</xs:schema>