ДокументDOM.КодировкаXML

Свойства · XMLEncoding

Тип: Строка. Кодировка, указанная в декларации XML документа. Значение псевдоатрибута "encoding" в объявлении XML документа.

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

ДокументDOM.КодировкаXML (DOMDocument.XMLEncoding)

ДокументDOM (DOMDocument)

КодировкаXML (XMLEncoding)

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

Использование:
Только чтение.
Описание:
Тип: Строка.
Кодировка, указанная в декларации XML документа. Значение псевдоатрибута "encoding" в объявлении XML документа.
Доступность:

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

Примечание:
Пустая строка, если кодировка неизвестна (например, документ формируется в памяти).
Поддерживаемые коды кодировок (с учетом правил http://www.w3.org/TR/2004/REC-xml-20040204/#NT-EncName):
UTF-8

UTF-16

UTF-16BE

UTF-16LE

ISO-8859-1

US-ASCII

gb18030

iso-8859-2

iso-8859-3

iso-8859-4

iso-8859-5

iso-8859-6

iso-8859-7

iso-8859-8

iso-8859-9

iso-8859-13

iso-8859-15

Shift_JIS

EUC-JP

Big5

Big5-HKSCS

GBK

GB2312

GB_2312-80

EUC-KR

KSC_5601

windows-949

windows-874

cp866

KOI8-R

KOI8-U

windows-1250

windows-1251

windows-1252

windows-1253

windows-1254

windows-1255

windows-1256

windows-1257

windows-1258

macintosh

x-mac-cyrillic

ISO-2022-JP

ISO-2022-KR

ISO-2022-CN

ISO-2022-CN-EXT

HZ-GB-2312

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

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

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

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

Задать свойства XML-документа, не выдавая их за преобразование кодировки

Документ в памяти имеет версию и признак автономности, но не имеет исходной байтовой кодировки. ЗаписьDOM создаёт строку, а не файл UTF-8.

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

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

Подготовка

  1. Документ создаётся в памяти без DTD, схемы, HTTP и файлов.

  2. URI urn:guide:memory-document — условный идентификатор; он не загружается из интернета.


Документ = Новый ДокументDOM("", "guide");
Документ.ВерсияXML = "1.0";
Документ.Автономный = Истина;
Документ.URIДокумента = "urn:guide:memory-document";
Документ.ЭлементДокумента.ТекстовоеСодержимое = "Книга";
Сообщить(Документ.ВерсияXML = "1.0");
Сообщить(Документ.Автономный);
Сообщить(Документ.URIДокумента = "urn:guide:memory-document");
Сообщить(Документ.КодировкаИсточника = "");
Сообщить(Документ.КодировкаXML = "");
Сообщить(Документ.ОпределениеТипаДокумента = Неопределено);
Запись = Новый ЗаписьXML;
Запись.УстановитьСтроку();
Попытка
    ЗаписьДерева = Новый ЗаписьDOM;
    ЗаписьДерева.Записать(Документ, Запись);
    XML = Запись.Закрыть();
Исключение
    Запись.Закрыть();
    ВызватьИсключение;
КонецПопытки;
Сообщить(XML);
Сообщить(СтрНайти(XML, "Книга") > 0);

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

  1. ВерсияXML 1.0 определяет правила XML. Автономный — декларация независимости от внешних определений, а не запрет сети во всём приложении.

  2. URIДокумента задаёт идентификатор документа, не сохраняет файл и не запускает запрос.

  3. КодировкаИсточника и КодировкаXML доступны только для чтения. У созданного в памяти документа они пустые: источника байтов не было.

  4. Через ЗаписьDOM и ЗаписьXML сериализуем дерево в строку. Кодирование этой строки в байты или файл — отдельный шаг.

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

  1. Версия 1.0, Автономный=Истина и заданный URI читаются обратно; оба свойства кодировки пустые.

  2. ОпределениеТипаДокумента отсутствует, XML содержит Книга.

  3. Нет создания файла по URI и загрузки внешних определений.

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

Свойства декларации, идентификатор и происхождение кодировки отделены от сериализации строки.

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

  1. Установка URI не доказывает наличие ресурса по этому адресу.

  2. Нельзя назначить КодировкаXML напрямую: выбирайте нужную кодировку при записи в файл или преобразовании в двоичные данные.

  3. Автономный=Истина не является средством защиты от загрузки внешних XML-ресурсов в другом коде.

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

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

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

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

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