ТипДанныхXML.ИмяТипа

Свойства · TypeName

Тип: Строка. Представление типа данных XML по имени типа XML.

Полное описание, параметры и ограничения

ТипДанныхXML.ИмяТипа (XMLDataType.TypeName)

ТипДанныхXML (XMLDataType)

ИмяТипа (TypeName)

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

Использование:
Только чтение.
Описание:
Тип: Строка.
Представление типа данных XML по имени типа XML.
Доступность:

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

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

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

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

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

Записать сумму в свой элемент с явным XML-типом

У элемента total своё пространство имён, у его типа decimal — XML Schema. Явное назначение типа позволяет автоматическое чтение числового значения.

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

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

Подготовка

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

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

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

  4. Проверки сообщениями ожидают Истина. 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);

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

  1. Используем перегрузку ЗаписатьXML с локальным именем и URI. НазначениеТипаXML.Явное требует явного обозначения типа значения.

  2. total из urn:guide:totals — имя элемента. decimal из XML Schema — тип его содержимого; это две разные пары имя/URI.

  3. ПолучитьXMLТип анализирует xsi:type и разрешение его префикса. Не предполагаем конкретные названия префиксов, выбранные писателем.

  4. ПрочитатьXML определяет число по представленному типу, хотя элемент называется не decimal.

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

  1. Пять проверок дают Истина, затем XML.

  2. В XML найдите обозначение типа decimal и соответствующее пространство XML Schema. Префиксы могут отличаться от xs/xsi в примерах других систем.

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

Собственный элемент total с явно указанным встроенным XML-типом.

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

  1. URI urn:guide:totals не сетевой адрес для HTTP-запроса.

  2. Наличие xsi:type само по себе не доказывает совместимость с внешним API.

  3. Нельзя определять смысл значения только по слову total или одному префиксу.

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

Сопоставить тип Число и 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С» и не аффилирован с ней.