ЗаписьУзловDOM.ЗаписатьОбъявлениеXML

Методы · WriteXMLDeclaration

Записывает объявление XML. Если формируется XML-документ, а не фрагмент XML-документа, то в начало документа надо поместить его объявление. Для того чтобы поместить в документ его объявление, необходимо вызвать данный метод. При этом в начало документа помещается текст следующего вида: <?xml version="1.0"?>. Если при открытии файла или установке строки была указана кодировка, то в объявление также помещается и атрибут 'encoding'. Например: <?xml version="1.0" encoding="UTF-8"?>. Запись объявления XML должна выполняться перед другими операциями записи XML.

Синтаксис

ЗаписатьОбъявлениеXML()

Примеры платформы

ЗаписьXML.ОткрытьФайл("c:/docs/data/xml");
ЗаписьXML.ЗаписатьОбъявлениеXML();
Полное описание, параметры и ограничения

ЗаписьУзловDOM.ЗаписатьОбъявлениеXML (DOMNodeWriter.WriteXMLDeclaration)

ЗаписьУзловDOM (DOMNodeWriter)

ЗаписатьОбъявлениеXML (WriteXMLDeclaration)

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

Синтаксис:
ЗаписатьОбъявлениеXML()
Описание:

Записывает объявление XML.
Если формируется XML-документ, а не фрагмент XML-документа, то в начало документа надо поместить его объявление. Для того чтобы поместить в документ его объявление, необходимо вызвать данный метод. При этом в начало документа помещается текст следующего вида: <?xml version="1.0"?>.
Если при открытии файла или установке строки была указана кодировка, то в объявление также помещается и атрибут 'encoding'. Например: <?xml version="1.0" encoding="UTF-8"?>.
Запись объявления XML должна выполняться перед другими операциями записи XML.

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

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

Пример:

ЗаписьXML.ОткрытьФайл("c:/docs/data/xml");
ЗаписьXML.ЗаписатьОбъявлениеXML();

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

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

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

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

ЗаписьУзловDOM: объявление XML и внутренний DTD

Запись открывается на собственном ДокументDOM. Объявление XML должно идти до остальных операций, DTD задан без внешнего файла.

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

Синтаксический пример в серверном обработчике или толстом клиенте. Дерево создаётся из собственной строки либо собственным конструктором в памяти. Здесь 1С, браузер, файлы и сеть не запускались.

Подготовка

  1. Документ и запись создаются в памяти. Имя order одинаково в DTD и записываемом корневом элементе.

  2. Используется двухаргументный вариант ЗаписатьТипДокумента с внутренним подмножеством, без SYSTEM- или PUBLIC-файла.

Документ = Новый ДокументDOM("", "order");
Запись = Новый ЗаписьУзловDOM;
Запись.Открыть(Документ);
Запись.ЗаписатьОбъявлениеXML();
Запись.ЗаписатьТипДокумента("order", "<!ELEMENT order (#PCDATA)>");
Запись.ЗаписатьНачалоЭлемента("order");
Запись.ЗаписатьТекст("BOOK");
Запись.ЗаписатьКонецЭлемента();
Фрагмент = Запись.УзелDOM;
Запись.Закрыть();
Сообщить("Узлов фрагмента: " + Строка(Фрагмент.ДочерниеУзлы.Количество()));

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

  1. Откройте запись для своего документа.

  2. Запишите объявление XML первым, затем внутренний DTD и элемент с текстом.

  3. Получите собственный фрагмент и закройте объект записи.

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

  1. Вызов объявления предшествует записи типа документа и элемента.

  2. УзелDOM — результат записи в объектную модель, а не строка и не уже сохранённый файл.

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

Приведён короткий пример синтаксиса с указанными ограничениями. Он не выполнялся здесь в 1С; проверьте реальные результаты в своём учебном контексте.

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

  1. При неподдерживаемой операции или режиме записи возможно исключение; этот пример не обещает произвольную комбинацию узлов как валидный XML.

  2. Само объявление DTD не выполняет проверку данных по DTD и не загружает внешнюю схему.

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

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

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

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

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