<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
    targetNamespace="http://roskazna.ru/gisgmp/xsd/Subscription/2.2.0"
    elementFormDefault="qualified" xmlns:sub="http://roskazna.ru/gisgmp/xsd/Subscription/2.2.0">
    <xs:simpleType name="RoutingCodeType">
        <xs:annotation>
            <xs:documentation>Код маршрутизации участника для предоставления информации по ВС с табличной маршрутизацией
            </xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string">
            <xs:maxLength value="200"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="SubscriptionCodeType">
        <xs:annotation>
            <xs:documentation>Код варианта уведомлений</xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string">
            <xs:pattern value="N[A-Z][0-9]{4}"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="SubscriptionIdType">
        <xs:annotation>
            <xs:documentation>Идентификатор подписки участника</xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string">
            <xs:pattern value="([0-9a-fA-F]{6})N[A-Z][0-9]{4}"/>
            <xs:length value="12"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="ParameterCodeType">
        <xs:annotation>
            <xs:documentation>Код параметра подписки</xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string">
            <xs:maxLength value="50"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="ParameterValueType">
        <xs:annotation>
            <xs:documentation>Значение параметра подписки</xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string">
            <xs:maxLength value="50"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:element name="SubscriptionIdentifier" type="sub:SubscriptionIdType">
        <xs:annotation>
            <xs:documentation>Идентификатор подписки в соответствии с которым предоставляется информация</xs:documentation>
        </xs:annotation>
    </xs:element>
    <xs:complexType name="SubscriptionParametersType">
        <xs:annotation>
            <xs:documentation>Значение параметра (группы параметров) подписки</xs:documentation>
        </xs:annotation>
        <xs:sequence maxOccurs="10">
            <xs:element name="ParameterValue">
                <xs:annotation>
                    <xs:documentation>Значение параметра</xs:documentation>
                </xs:annotation>
                <xs:complexType>
                    <xs:simpleContent>
                        <xs:extension base="sub:ParameterValueType">
                            <xs:attribute name="parameterCode" type="sub:ParameterCodeType"
                                use="required">
                                <xs:annotation>
                                    <xs:documentation>Код параметра</xs:documentation>
                                </xs:annotation>
                            </xs:attribute>
                        </xs:extension>
                    </xs:simpleContent>
                </xs:complexType>
            </xs:element>
        </xs:sequence>
        <xs:attribute name="status" use="required">
            <xs:annotation>
                <xs:documentation>Cтатус для обработки значения параметра (группы параметров). Возможные значения:
1-новое значение,
2-удаление значения</xs:documentation>
            </xs:annotation>
            <xs:simpleType>
                <xs:restriction base="xs:string">
                    <xs:enumeration value="1"/>
                    <xs:enumeration value="2"/>
                </xs:restriction>
            </xs:simpleType>
        </xs:attribute>
        <xs:attribute name="parameterId" use="required">
            <xs:annotation>
                <xs:documentation>Идентификатор значения параметра (группы параметров) в пакете передаваемых значений</xs:documentation>
            </xs:annotation>
            <xs:simpleType>
                <xs:restriction base="xs:ID">
                    <xs:maxLength value="50"/>
                </xs:restriction>
            </xs:simpleType>
        </xs:attribute>
    </xs:complexType>
    <xs:complexType name="SubscriptionProtocolType">
        <xs:attribute name="parameterId">
            <xs:annotation>
                <xs:documentation>Идентификатор значения параметра (группы параметров) в пакете</xs:documentation>
            </xs:annotation>
            <xs:simpleType>
                <xs:restriction base="xs:ID">
                    <xs:maxLength value="50"/>
                </xs:restriction>
            </xs:simpleType>
        </xs:attribute>
        <xs:attribute name="code" use="required">
            <xs:annotation>
                <xs:documentation>Код результата обработки:
                    0 — если значение параметра (группы параметров) успешно принято или код ошибки в случае отказа в приеме к обработке значения параметра (группы параметров)
                </xs:documentation>
            </xs:annotation>
            <xs:simpleType>
                <xs:restriction base="xs:string">
                    <xs:maxLength value="32"/>
                </xs:restriction>
            </xs:simpleType>
        </xs:attribute>
        <xs:attribute name="description" use="required">
            <xs:annotation>
                <xs:documentation>Описание результата обработки</xs:documentation>
            </xs:annotation>
            <xs:simpleType>
                <xs:restriction base="xs:string">
                    <xs:maxLength value="255"/>
                </xs:restriction>
            </xs:simpleType>
        </xs:attribute>
    </xs:complexType>
</xs:schema>
