Запрос на вход в реестр ESNIC в формате XML

Вопрос или проблема

Я ломаю голову над созданием базовой схемы для входа в реестр ESNIC.

Это мой XML

<?xml version="1.0" encoding="UTF-8"?>
<epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
    <command>
        <login>
            <clID>$login</clID>
            <pw>$password</pw>
            <options>
                <version>1.0</version>
                <lang>en</lang>
            </options>
            <svcs>
                <objURI>urn:ietf:params:xml:ns:domain-1.0</objURI>
                <objURI>urn:ietf:params:xml:ns:contact-1.0</objURI>
                <objURI>urn:ietf:params:xml:ns:host-1.0</objURI>
                <svcExtension>
                    <extURI>urn:ietf:params:xml:ns:secDNS-1.1</extURI>
                </svcExtension>
            </svcs>
        </login>
        <extension></extension>
        <clTRID>cid-login-request-etewr31</clTRID>
    </command>
</epp>

Но в ответе я вижу только это

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
<response>
<result code="2001">
<msg lang="es">
<![CDATA[
Ошибка, некорректный XML: org.xml.sax.SAXParseException; номер строки: 20; номер столбца: 26; cvc-complex-type.2.4.b: Содержимое элемента 'extension' не завершено. Ожидался один из '{WC[##other:"urn:ietf:params:xml:ns:epp-1.0"]}'.]]>
</msg>
</result>
<trID>
<clTRID>000</clTRID>
<svTRID>1730656826070</svTRID>
</trID>
</response>
</epp>

Я не могу найти никаких документов, которые подсказывали бы мне, что должно быть внутри блока extension.

Ответ или решение

Чтобы успешно создать запрос на вход в реестр ESNIC с использованием XML, важно понимать структуру и соглашения, применяемые в протоколе EPP (Extensible Provisioning Protocol). Основная задача заключается в обеспечении корректности XML-структуры, а также в соответствии требованиям, описанным в спецификациях.

Структура XML-запроса

Исходя из вашего примера, наблюдаем следующую структуруXML-запроса:

<?xml version="1.0" encoding="UTF-8"?>
<epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
    <command>
        <login>
            <clID>$login</clID>
            <pw>$password</pw>
            <options>
                <version>1.0</version>
                <lang>en</lang>
            </options>
            <svcs>
                <objURI>urn:ietf:params:xml:ns:domain-1.0</objURI>
                <objURI>urn:ietf:params:xml:ns:contact-1.0</objURI>
                <objURI>urn:ietf:params:xml:ns:host-1.0</objURI>
                <svcExtension>
                    <extURI>urn:ietf:params:xml:ns:secDNS-1.1</extURI>
                </svcExtension>
            </svcs>
        </login>
        <extension></extension>
        <clTRID>cid-login-request-etewr31</clTRID>
    </command>
</epp>

Ошибка в ответе

Вы получаете ответ с ошибкой, указывающей на некорректное заполнение блока <extension>. Текст ошибки указывает на то, что содержимое элемента extension не завершено, и ожидается один из элементов, входящих в группу {WC[##other:"urn:ietf:params:xml:ns:epp-1.0"]}.

Разбор блока <extension>

В блоке <extension> можно добавлять дополнительные параметры запроса, которые могут потребоваться для определённых протоколов или сервисов. Однако если в вашем случае не требуется включение каких-либо дополнительных функций, этот блок может быть оставлен пустым, но при этом необходимо добавить хотя бы один элемент, соответствующий спецификации.

Рекомендации по исправлению ошибки

  1. Удалите пустой элемент <extension>: Если вы не используете никаких расширений, его не нужно включать в запрос. Таким образом, структура будет выглядеть корректно.

  2. Если требуется добавить расширение, добавьте элемент, соответствующий требуемому стандарту или спецификации. Пример заполненного блока:

<extension>
    <someExtension xmlns="urn:ietf:params:xml:ns:someExtension-1.0">
        <exampleElement>exampleValue</exampleElement>
    </someExtension>
</extension>

Корректный XML-запрос

С учётом вышеизложенных рекомендаций ваш скорректированный XML-запрос должно выглядеть следующим образом:

<?xml version="1.0" encoding="UTF-8"?>
<epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
    <command>
        <login>
            <clID>$login</clID>
            <pw>$password</pw>
            <options>
                <version>1.0</version>
                <lang>en</lang>
            </options>
            <svcs>
                <objURI>urn:ietf:params:xml:ns:domain-1.0</objURI>
                <objURI>urn:ietf:params:xml:ns:contact-1.0</objURI>
                <objURI>urn:ietf:params:xml:ns:host-1.0</objURI>
                <svcExtension>
                    <extURI>urn:ietf:params:xml:ns:secDNS-1.1</extURI>
                </svcExtension>
            </svcs>
        </login>
        <clTRID>cid-login-request-etewr31</clTRID>
    </command>
</epp>

Заключение

Убедитесь, что вы всегда обращаетесь к актуальным спецификациям EPP и документации ESNIC. При необходимости обращайтесь к поддержке техподдержки ESNIC для получения более подробной информации по правильному формату и структуре XML-запросов. Это поможет избежать ошибок и наладить корректное взаимодействие с реестром.

Оцените материал
Добавить комментарий

Капча загружается...