Глобальный контекст.XMLТип

Методы · XMLType

Получает тип данных XML, соответствующий переданному в качестве параметра типу.

Синтаксис

XMLТип(<Тип>)
Полное описание, параметры и ограничения

Глобальный контекст.XMLТип (Global context.XMLType)

Глобальный контекст (Global context)

XMLТип (XMLType)

Доступен, начиная с версии 8.0.

Синтаксис:
XMLТип(<Тип>)
Параметры:

<Тип> (обязательный)
Тип: Тип.
Тип значения, для которого необходимо определить соответствующий XML тип.
Возвращаемое значение:
Тип: ТипДанныхXML.
Неопределено, если никакой тип данных XML не соответствует указанному типу.
Описание:

Получает тип данных XML, соответствующий переданному в качестве параметра типу.

Доступность:

Тонкий клиент, мобильный клиент, сервер, толстый клиент, внешнее соединение, мобильное приложение (клиент), мобильное приложение (сервер), мобильный автономный сервер.

Использование в версии:

Доступен, начиная с версии 8.0.

Методическая информация

Практические примеры

Сопоставить тип Число и XML-тип decimal

Имя XML-типа имеет смысл вместе с URI пространства имён. Сравниваем получение типа по типу 1С и по значению, затем обратное сопоставление.

Где и как запускать

Учебная база: создайте серверный общий модуль УчебныеЗадачи (флаг Сервер). Код без директив вставьте в тело процедуры ВыполнитьПример() Экспорт. Вызовите её из серверного обработчика команды учебной обработки. Не запускайте в рабочей базе.

Подготовка

  1. Учебная база 8.5.1.1343, серверный общий модуль УчебныеЗадачи. Фрагмент без директив вставьте в тело ВыполнитьПример() Экспорт и запустите собственной учебной командой.

  2. XML в заданиях приведён полностью или создаётся из собственных чисел/строк. Не подставляйте XML из неизвестных внешних источников, объекты метаданных или реальные ссылки вместо учебных значений.

  3. Ни один фрагмент не пишет товары, документы и настройки конфигурации. Файловое упражнение отдельно предупреждает о создании только собственного временного XSD.

  4. Проверки сообщениями ожидают Истина. XML-текст и объекты можно исследовать в отладчике; это не контракт Avito, SOAP или обмен типовой конфигурации.

ПоТипу = XMLТип(Тип("Число"));
ПоЗначению = XMLТипЗнч(750);
Сообщить(ПоТипу.ИмяТипа = "decimal");
Сообщить(ПоТипу.URIПространстваИмен = "http://www.w3.org/2001/XMLSchema");
Сообщить(ПоЗначению.ИмяТипа = ПоТипу.ИмяТипа);
Сообщить(ПоЗначению.URIПространстваИмен = ПоТипу.URIПространстваИмен);
Сообщить(ИзXMLТипа(ПоТипу) = Тип("Число"));
ОписаниеDecimal = Новый ТипДанныхXML("decimal", "http://www.w3.org/2001/XMLSchema");
Сообщить(ИзXMLТипа(ОписаниеDecimal) = Тип("Число"));
Сообщить(ИзXMLТипа("decimal", "http://www.w3.org/2001/XMLSchema") = Тип("Число"));
ЧужойDecimal = Новый ТипДанныхXML("decimal", "urn:guide:not-built-in");
Сообщить(ИзXMLТипа(ЧужойDecimal) = Неопределено);

Разбор по шагам

  1. XMLТип принимает объект Тип, XMLТипЗнч — значение. Для 750 оба дают decimal из пространства XML Schema.

  2. ТипДанныхXML — описание пары имя/URI, не числовое значение 750. Конструктор сам не регистрирует новый тип 1С.

  3. ИзXMLТипа поддерживает два варианта: готовое описание или имя и URI. Получаем тип Число, не строку его названия.

  4. decimal с другим URI — другой тип. Вымышленный urn:guide:not-built-in не сопоставляется автоматически с числом.

Как проверить результат

  1. Восемь проверок дают Истина.

  2. В отладчике ПоТипу — ТипДанныхXML с ИмяТипа decimal; обратное сопоставление — объект Тип для Число.

Ожидаемый результат

Двунаправленное сопоставление с демонстрацией значимости пространства имён.

На что обратить внимание

  1. Префикс xs/xsd произволен; URI определяет пространство имён.

  2. Не сравнивайте неизвестный тип с Число по одному имени decimal.

  3. Некоторые XML/XDTO-типы не имеют прямого соответствия встроенному типу 1С; проверяйте Неопределено.

Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.

Не хотите разбираться сами?

Адаптируем это решение под вашу базу. Оценка бесплатно.

Оставить задачу

1С, 1С:Предприятие — товарные знаки ООО «1С». Сайт не является официальным представительством фирмы «1С» и не аффилирован с ней.