Тип: Строка. Представление типа данных XML по имени типа XML.
Полное описание, параметры и ограничения
ТипДанныхXML.ИмяТипа (XMLDataType.TypeName)
ТипДанныхXML (XMLDataType)
ИмяТипа (TypeName)
Доступен, начиная с версии 8.0.
Использование:
Только чтение.
Описание:
Тип: Строка.
Представление типа данных XML по имени типа XML.
Доступность:
Тонкий клиент, мобильный клиент, сервер, толстый клиент, внешнее соединение, мобильное приложение (клиент), мобильное приложение (сервер), мобильный автономный сервер.
Использование в версии:
Доступен, начиная с версии 8.0.
Методическая информация
Практические примеры
Записать сумму в свой элемент с явным XML-типом
У элемента total своё пространство имён, у его типа decimal — XML Schema. Явное назначение типа позволяет автоматическое чтение числового значения.
Где и как запускать
Учебная база: создайте серверный общий модуль УчебныеЗадачи (флаг Сервер). Код без директив вставьте в тело процедуры ВыполнитьПример() Экспорт. Вызовите её из серверного обработчика команды учебной обработки. Не запускайте в рабочей базе.
Подготовка
Учебная база 8.5.1.1343, серверный общий модуль УчебныеЗадачи. Фрагмент без директив вставьте в тело ВыполнитьПример() Экспорт и запустите собственной учебной командой.
XML в заданиях приведён полностью или создаётся из собственных чисел/строк. Не подставляйте XML из неизвестных внешних источников, объекты метаданных или реальные ссылки вместо учебных значений.
Ни один фрагмент не пишет товары, документы и настройки конфигурации. Файловое упражнение отдельно предупреждает о создании только собственного временного XSD.
Проверки сообщениями ожидают Истина. XML-текст и объекты можно исследовать в отладчике; это не контракт Avito, SOAP или обмен типовой конфигурации.
Запись = Новый ЗаписьXML;
Запись.УстановитьСтроку();
ЗаписатьXML(Запись, 750, "total", "urn:guide:totals", НазначениеТипаXML.Явное);
XML = Запись.Закрыть();
Чтение = Новый ЧтениеXML;
Чтение.УстановитьСтроку(XML);
НайденЭлемент = Ложь;
Пока Чтение.Прочитать() Цикл
Если Чтение.ТипУзла = ТипУзлаXML.НачалоЭлемента Тогда
НайденЭлемент = Истина;
Прервать;
КонецЕсли;
КонецЦикла;
Если Не НайденЭлемент Тогда
Чтение.Закрыть();
ВызватьИсключение "В собственном XML не найден корневой элемент";
КонецЕсли;
Попытка
Сообщить(Чтение.ЛокальноеИмя = "total");
Сообщить(Чтение.URIПространстваИмен = "urn:guide:totals");
ТипXMLЗначения = ПолучитьXMLТип(Чтение);
Сообщить(ТипXMLЗначения.ИмяТипа = "decimal");
Сообщить(ТипXMLЗначения.URIПространстваИмен = "http://www.w3.org/2001/XMLSchema");
Сумма = ПрочитатьXML(Чтение);
Чтение.Закрыть();
Исключение
Чтение.Закрыть();
ВызватьИсключение;
КонецПопытки;
Сообщить(Сумма = 750);
Сообщить(XML);Разбор по шагам
Используем перегрузку ЗаписатьXML с локальным именем и URI. НазначениеТипаXML.Явное требует явного обозначения типа значения.
total из urn:guide:totals — имя элемента. decimal из XML Schema — тип его содержимого; это две разные пары имя/URI.
ПолучитьXMLТип анализирует xsi:type и разрешение его префикса. Не предполагаем конкретные названия префиксов, выбранные писателем.
ПрочитатьXML определяет число по представленному типу, хотя элемент называется не decimal.
Как проверить результат
Пять проверок дают Истина, затем XML.
В XML найдите обозначение типа decimal и соответствующее пространство XML Schema. Префиксы могут отличаться от xs/xsi в примерах других систем.
Ожидаемый результат
Собственный элемент total с явно указанным встроенным XML-типом.
На что обратить внимание
URI urn:guide:totals не сетевой адрес для HTTP-запроса.
Наличие xsi:type само по себе не доказывает совместимость с внешним API.
Нельзя определять смысл значения только по слову total или одному префиксу.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.
Сопоставить тип Число и XML-тип decimal
Имя XML-типа имеет смысл вместе с URI пространства имён. Сравниваем получение типа по типу 1С и по значению, затем обратное сопоставление.
Где и как запускать
Учебная база: создайте серверный общий модуль УчебныеЗадачи (флаг Сервер). Код без директив вставьте в тело процедуры ВыполнитьПример() Экспорт. Вызовите её из серверного обработчика команды учебной обработки. Не запускайте в рабочей базе.
Подготовка
Учебная база 8.5.1.1343, серверный общий модуль УчебныеЗадачи. Фрагмент без директив вставьте в тело ВыполнитьПример() Экспорт и запустите собственной учебной командой.
XML в заданиях приведён полностью или создаётся из собственных чисел/строк. Не подставляйте XML из неизвестных внешних источников, объекты метаданных или реальные ссылки вместо учебных значений.
Ни один фрагмент не пишет товары, документы и настройки конфигурации. Файловое упражнение отдельно предупреждает о создании только собственного временного XSD.
Проверки сообщениями ожидают Истина. 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) = Неопределено);Разбор по шагам
XMLТип принимает объект Тип, XMLТипЗнч — значение. Для 750 оба дают decimal из пространства XML Schema.
ТипДанныхXML — описание пары имя/URI, не числовое значение 750. Конструктор сам не регистрирует новый тип 1С.
ИзXMLТипа поддерживает два варианта: готовое описание или имя и URI. Получаем тип Число, не строку его названия.
decimal с другим URI — другой тип. Вымышленный urn:guide:not-built-in не сопоставляется автоматически с числом.
Как проверить результат
Восемь проверок дают Истина.
В отладчике ПоТипу — ТипДанныхXML с ИмяТипа decimal; обратное сопоставление — объект Тип для Число.
Ожидаемый результат
Двунаправленное сопоставление с демонстрацией значимости пространства имён.
На что обратить внимание
Префикс xs/xsd произволен; URI определяет пространство имён.
Не сравнивайте неизвестный тип с Число по одному имени decimal.
Некоторые XML/XDTO-типы не имеют прямого соответствия встроенному типу 1С; проверяйте Неопределено.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.