СериализаторXDTO.XMLСтрока

Методы · XMLString

Получает XML представление значения для помещения в текст элемента или значение атрибута XML. XML представления различных типов платформы 1С:Предприятие 8: "Строка" - как есть; "Булево": "Истина" - "true", "Ложь" -"false"; "Дата" - XML представление соответствует представлению типа dateTime схемы XML (см. http://www.w3.org/TR/xmlschema-2/#dateTime); "Число" - XML представление соответствует представлению типа decimal схемы XML (см. http://www.w3.org/TR/xmlschema-2/#decimal); Значение системного перечисления (для перечислений, поддерживающих XML сериализацию) - имя значения перечисления; "УникальныйИдентификатор" - строковое представление уникального идентификатора; "Ссылки" - XML представление уникального идентификатора ссылки; "ХранилиищеЗначений" и "ДвоичныеДанные" - строка в формате base64.

Синтаксис

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

СериализаторXDTO.XMLСтрока (XDTOSerializer.XMLString)

СериализаторXDTO (XDTOSerializer)

XMLСтрока (XMLString)

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

Синтаксис:
XMLСтрока(<Значение>)
Параметры:

<Значение> (обязательный)
Тип: Неопределено, Null, Булево, Число, Строка, Дата, УникальныйИдентификатор, ДвоичныеДанные, ХранилищеЗначения; значения перечислений, значения системных перечислений (ВидСчета, ВидДвиженияБухгалтерии, ВидДвиженияНакопления, ДопустимыйЗнак, ДопустимаяДлина, ЧастиДаты) или все ссылки на объекты базы данных.
Значение, для которого должно быть получено строковое представление, которое может быть использовано как текст элемента или значение атрибута XML. Как строка XML могут быть представлены значения следующих типов:
Null, Булево, Число, Строка, Дата, УникальныйИдентификатор, ДвоичныеДанные, ХранилищеЗначения и все ссылки на объекты базы данных.
Возвращаемое значение:
Тип: Строка.

Описание:

Получает XML представление значения для помещения в текст элемента или значение атрибута XML.
XML представления различных типов платформы 1С:Предприятие 8:
"Строка" - как есть;

"Булево": "Истина" - "true", "Ложь" -"false";

"Дата" - XML представление соответствует представлению типа dateTime схемы XML (см. http://www.w3.org/TR/xmlschema-2/#dateTime);

"Число" - XML представление соответствует представлению типа decimal схемы XML (см. http://www.w3.org/TR/xmlschema-2/#decimal);

Значение системного перечисления (для перечислений, поддерживающих XML сериализацию) - имя значения перечисления;

"УникальныйИдентификатор" - строковое представление уникального идентификатора;

"Ссылки" - XML представление уникального идентификатора ссылки;

"ХранилиищеЗначений" и "ДвоичныеДанные" - строка в формате base64.

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

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

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

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

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

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

Получить XML-представление числа без локальных разделителей

1234.5 остаётся числом. XMLСтрока даёт лексическое представление с точкой, но не добавляет XML-теги и не экранирует произвольный текст.

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

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

Подготовка

  1. Число и логические значения заданы в коде; HTTP, файл и прикладные объекты не используются.

  2. Для первого запуска оставьте число 1234.5. Не применяйте Формат с группировкой разрядов к машинному представлению.


Сериализатор = Новый СериализаторXDTO;
ЧислоДляОбмена = 1234.5;
ЛексическоеЗначение = Сериализатор.XMLСтрока(ЧислоДляОбмена);
Восстановленное = Сериализатор.XMLЗначение(Тип("Число"), ЛексическоеЗначение);
Сообщить(ЛексическоеЗначение = "1234.5");
Сообщить(ТипЗнч(Восстановленное) = Тип("Число"));
Сообщить(Восстановленное = ЧислоДляОбмена);
ТипXML = Сериализатор.XMLТипЗнч(ЧислоДляОбмена);
Если ТипXML = Неопределено Тогда
    ВызватьИсключение "У учебного числа ожидалось XML-представление типа";
КонецЕсли;
Сообщить("Тип XML: {" + ТипXML.URIПространстваИмен + "}" + ТипXML.ИмяТипа);
Сообщить(Сериализатор.ИзXMLТипа(ТипXML) = Тип("Число"));
Сообщить(Сериализатор.ИзXMLТипа(ТипXML.ИмяТипа, ТипXML.URIПространстваИмен) = Тип("Число"));
Сообщить(Сериализатор.XMLСтрока(Истина) = "true");
Сообщить(Сериализатор.XMLЗначение(Тип("Булево"), "false") = Ложь);

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

  1. Создаём стандартный сериализатор платформы, не отдельный формат обмена Авито или другого сервиса.

  2. XMLСтрока и XMLЗначение переводят отдельное скалярное значение в лексическую форму и обратно по известному типу.

  3. XMLТипЗнч возвращает описание XML-типа или Неопределено. Проверяем наличие перед чтением ИмяТипа и URIПространстваИмен.

  4. Оба варианта ИзXMLТипа сопоставляют XML-тип с типом платформы. URI является частью идентичности типа.

  5. Логические значения имеют лексические true/false, не русские слова Истина/Ложь.

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

  1. XML-число равно строке 1234.5, восстановленный результат — Число и равен исходному.

  2. Оба варианта сопоставления типа возвращают Тип("Число").

  3. Булево сериализуется как true; чтение false даёт Ложь.

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

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

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

  1. XMLСтрока не является полноценным XML-документом. Теги и экранирование делайте через ЗаписьXML/сериализатор документа.

  2. Внешний сервис может требовать другое имя элемента и контракт; внутреннее представление платформы не заменяет его спецификацию.

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

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

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

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

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

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