<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
    xmlns:ann_fed_bonds="http://www.snb.ch/MMX/FederalBondsAnnouncement"
    targetNamespace="http://www.snb.ch/MMX/FederalBondsAnnouncement"
    elementFormDefault="qualified"
    xmlns:vc="http://www.w3.org/2007/XMLSchema-versioning"
    vc:minVersion="1.1">

    <xs:complexType name="LocalizedText">
        <xs:simpleContent>
            <xs:extension base="xs:string">
                <xs:attribute name="lang" use="required">
                    <xs:simpleType>
                        <xs:restriction base="xs:string">
                            <xs:enumeration value="en"/>
                            <xs:enumeration value="de"/>
                            <xs:enumeration value="fr"/>
                            <xs:enumeration value="it"/>
                        </xs:restriction>
                    </xs:simpleType>
                </xs:attribute>
            </xs:extension>
        </xs:simpleContent>
    </xs:complexType>

    <xs:element name="Document">
        <xs:complexType>
            <xs:sequence>
                <xs:element name="Publication">
                    <xs:complexType>
                        <xs:sequence>
                            <xs:element name="PublicationID" type="xs:NCName"/>
                            <xs:element name="Title" type="ann_fed_bonds:LocalizedText" minOccurs="4" maxOccurs="4"/>
                            <xs:element name="SequenceNr" type="xs:integer"/>
                            <xs:element name="RefSequenceNr" type="xs:integer" minOccurs="0" maxOccurs="1"/>
                            <xs:element name="Status">
                                <xs:simpleType>
                                    <xs:restriction base="xs:string">
                                        <xs:enumeration value="NEW"/>
                                        <xs:enumeration value="UPDATE"/>
                                        <xs:enumeration value="CANCEL"/>
                                    </xs:restriction>
                                </xs:simpleType>
                            </xs:element>
                        </xs:sequence>
                    </xs:complexType>
                    <xs:unique name="UniqueTitleLanguage">
                        <xs:selector xpath="ann_fed_bonds:Title"/>
                        <xs:field xpath="@lang"/>
                    </xs:unique>
                </xs:element>
                <xs:element name="FederalBondsAnnouncement" minOccurs="1" maxOccurs="1">
                    <xs:complexType>
                        <xs:sequence>
                            <xs:element name="Operation">
                                <xs:simpleType>
                                    <xs:restriction base="xs:string">
                                        <xs:enumeration value="BOND_AUCTION"/>
                                    </xs:restriction>
                                </xs:simpleType>
                            </xs:element>
                            <xs:element name="IssuanceType">
                                <xs:simpleType>
                                    <xs:restriction base="xs:string">
                                        <xs:enumeration value="ISSUANCE"/>
                                        <xs:enumeration value="REOPENING"/>
                                    </xs:restriction>
                                </xs:simpleType>
                            </xs:element>
                            <xs:element name="Currency">
                                <xs:simpleType>
                                    <xs:restriction base="xs:string">
                                        <xs:enumeration value="CHF"/>
                                    </xs:restriction>
                                </xs:simpleType>
                            </xs:element>
                            <xs:element name="ISIN">
                                <xs:simpleType>
                                    <xs:restriction base="xs:string">
                                        <xs:pattern value="[A-Z]{2,2}[A-Z0-9]{9,9}[0-9]{1,1}"/>
                                    </xs:restriction>
                                </xs:simpleType>
                            </xs:element>
                            <xs:element name="ISINFungible" minOccurs="0" maxOccurs="1">
                                <xs:simpleType>
                                    <xs:restriction base="xs:string">
                                        <xs:pattern value="[A-Z]{2,2}[A-Z0-9]{9,9}[0-9]{1,1}"/>
                                    </xs:restriction>
                                </xs:simpleType>
                            </xs:element>
                            <xs:element name="PaymentDate" type="xs:date"/>
                            <xs:element name="RedemptionDate" type="xs:date"/>
                            <xs:element name="AccruedInterest" minOccurs="0" maxOccurs="1">
                                <xs:complexType>
                                    <xs:simpleContent>
                                        <xs:extension base="xs:integer">
                                            <xs:attribute name="unit" use="required">
                                                <xs:simpleType>
                                                    <xs:restriction base="xs:string">
                                                        <xs:enumeration value="d"/>
                                                    </xs:restriction>
                                                </xs:simpleType>
                                            </xs:attribute>
                                        </xs:extension>
                                    </xs:simpleContent>
                                </xs:complexType>
                            </xs:element>
                            <xs:element name="Coupon">
                                <xs:complexType>
                                    <xs:simpleContent>
                                        <xs:extension base="xs:decimal">
                                            <xs:attribute name="unit" use="required">
                                                <xs:simpleType>
                                                    <xs:restriction base="xs:string">
                                                        <xs:enumeration value="%"/>
                                                    </xs:restriction>
                                                </xs:simpleType>
                                            </xs:attribute>
                                        </xs:extension>
                                    </xs:simpleContent>
                                </xs:complexType>
                            </xs:element>
                            <xs:element name="AuctionType">
                                <xs:simpleType>
                                    <xs:restriction base="xs:string">
                                        <xs:enumeration value="VARIABLE_RATE_TENDER"/>
                                    </xs:restriction>
                                </xs:simpleType>
                            </xs:element>
                            <xs:element name="AllotmentMethod">
                                <xs:simpleType>
                                    <xs:restriction base="xs:string">
                                        <xs:enumeration value="DUTCH"/>
                                        <xs:enumeration value="AMERICAN"/>
                                        <xs:enumeration value=""/>
                                    </xs:restriction>
                                </xs:simpleType>
                            </xs:element>
                            <xs:element name="OwnHoldings" type="xs:integer" minOccurs="0" maxOccurs="1"/>
                            <xs:element name="AuctionStart" type="xs:dateTime"/>
                            <xs:element name="AuctionClose" type="xs:dateTime"/>
                            <xs:element name="TickSize">
                                <xs:complexType>
                                    <xs:simpleContent>
                                        <xs:extension base="xs:decimal">
                                            <xs:attribute name="unit" use="required">
                                                <xs:simpleType>
                                                    <xs:restriction base="xs:string">
                                                        <xs:enumeration value="%"/>
                                                    </xs:restriction>
                                                </xs:simpleType>
                                            </xs:attribute>
                                        </xs:extension>
                                    </xs:simpleContent>
                                </xs:complexType>
                            </xs:element>
                            <xs:element name="Denomination" type="xs:integer"/>
                            <xs:element name="MinSize" type="xs:integer"/>
                            <xs:element name="AuctionChannel">
                                <xs:simpleType>
                                    <xs:restriction base="xs:string">
                                        <xs:enumeration value="SIX_REPO_LTD"/>
                                        <xs:enumeration value="TELEPHONE"/>
                                    </xs:restriction>
                                </xs:simpleType>
                            </xs:element>
                            <xs:element name="FurtherInformation" type="ann_fed_bonds:LocalizedText" minOccurs="0" maxOccurs="4"/>
                            <xs:element name="AdditionalInformation" type="xs:string" minOccurs="0" maxOccurs="1"/>
                        </xs:sequence>
                    </xs:complexType>
                    <xs:unique name="UniqueFurtherInformationLanguage">
                        <xs:selector xpath="ann_fed_bonds:FurtherInformation"/>
                        <xs:field xpath="@lang"/>
                    </xs:unique>
                </xs:element>
            </xs:sequence>
            <xs:attribute name="schemaVersion" use="required">
                <!-- Restrict the version attribute to a list of valid versions -->
                <xs:simpleType>
                    <xs:restriction base="xs:string">
                        <xs:enumeration value="1.2"/>
                    </xs:restriction>
                </xs:simpleType>
            </xs:attribute>
        </xs:complexType>
    </xs:element>
</xs:schema>
