Синтаксис и применение ЗаписьУзловDOM.ЗаписатьТипДокумента в платформе 1С:Предприятие. Описание и примеры кода.
Синтаксис
ЗаписатьТипДокумента(<Имя>, <ВнутреннееПодмножество>)ЗаписатьТипДокумента(<Имя>, <СистемныйИдентификатор>, <ВнутреннееПодмножество>)ЗаписатьТипДокумента(<Имя>, <ПубличныйИдентификатор>, <СистемныйИдентификатор>, <ВнутреннееПодмножество>)Полное описание, параметры и ограничения
ЗаписьУзловDOM.ЗаписатьТипДокумента (DOMNodeWriter.WriteDocumentType)
ЗаписьУзловDOM (DOMNodeWriter)
ЗаписатьТипДокумента (WriteDocumentType)
Доступен, начиная с версии 8.1.
Вариант синтаксиса: Имя и определение
Синтаксис:
ЗаписатьТипДокумента(<Имя>, <ВнутреннееПодмножество>)
Параметры:
<Имя> (обязательный)
Тип: Строка.
Имя документа.
<ВнутреннееПодмножество> (обязательный)
Тип: Строка.
Внутреннее подмножество - собственно определение типа документа.
Описание варианта метода:
Осуществляет запись имени и внутреннего подмножества определения типа документа.
Вариант синтаксиса: Имя, системный идентификатор и внутреннее подмножество
Синтаксис:
ЗаписатьТипДокумента(<Имя>, <СистемныйИдентификатор>, <ВнутреннееПодмножество>)
Параметры:
<Имя> (обязательный)
Тип: Строка.
Имя документа.
<СистемныйИдентификатор> (обязательный)
Тип: Строка.
Системный идентификатор документа.
<ВнутреннееПодмножество> (обязательный)
Тип: Строка.
Внутреннее подмножество - собственно определение типа документа.
Описание варианта метода:
Осуществляет запись имени документа, системного идентификатора и внутреннего подмножества определения типа документа.
Вариант синтаксиса: Имя, публичный идентификатор, системный идентификатор и внутреннее подмножество
Синтаксис:
ЗаписатьТипДокумента(<Имя>, <ПубличныйИдентификатор>, <СистемныйИдентификатор>, <ВнутреннееПодмножество>)
Параметры:
<Имя> (обязательный)
Тип: Строка.
Имя документа.
<ПубличныйИдентификатор> (обязательный)
Тип: Строка.
Публичный идентификатор документа.
<СистемныйИдентификатор> (обязательный)
Тип: Строка.
Системный идентификатор документа.
<ВнутреннееПодмножество> (обязательный)
Тип: Строка.
Внутреннее подмножество - собственно определение типа документа.
Описание варианта метода:
Осуществляет запись имени документа, публичного идентификатора, системного идентификатора и внутреннего подмножества определения типа документа.
Доступность:
Тонкий клиент, мобильный клиент, сервер, толстый клиент, внешнее соединение, мобильное приложение (клиент), мобильное приложение (сервер), мобильный автономный сервер.
Использование в версии:
Доступен, начиная с версии 8.1.
Методическая информация
Практические примеры
ЗаписьУзловDOM: объявление XML и внутренний DTD
Запись открывается на собственном ДокументDOM. Объявление XML должно идти до остальных операций, DTD задан без внешнего файла.
Где и как запускать
Синтаксический пример в серверном обработчике или толстом клиенте. Дерево создаётся из собственной строки либо собственным конструктором в памяти. Здесь 1С, браузер, файлы и сеть не запускались.
Подготовка
Документ и запись создаются в памяти. Имя order одинаково в DTD и записываемом корневом элементе.
Используется двухаргументный вариант ЗаписатьТипДокумента с внутренним подмножеством, без SYSTEM- или PUBLIC-файла.
Документ = Новый ДокументDOM("", "order");
Запись = Новый ЗаписьУзловDOM;
Запись.Открыть(Документ);
Запись.ЗаписатьОбъявлениеXML();
Запись.ЗаписатьТипДокумента("order", "<!ELEMENT order (#PCDATA)>");
Запись.ЗаписатьНачалоЭлемента("order");
Запись.ЗаписатьТекст("BOOK");
Запись.ЗаписатьКонецЭлемента();
Фрагмент = Запись.УзелDOM;
Запись.Закрыть();
Сообщить("Узлов фрагмента: " + Строка(Фрагмент.ДочерниеУзлы.Количество()));Разбор по шагам
Откройте запись для своего документа.
Запишите объявление XML первым, затем внутренний DTD и элемент с текстом.
Получите собственный фрагмент и закройте объект записи.
Как проверить результат
Вызов объявления предшествует записи типа документа и элемента.
УзелDOM — результат записи в объектную модель, а не строка и не уже сохранённый файл.
Ожидаемый результат
Приведён короткий пример синтаксиса с указанными ограничениями. Он не выполнялся здесь в 1С; проверьте реальные результаты в своём учебном контексте.
На что обратить внимание
При неподдерживаемой операции или режиме записи возможно исключение; этот пример не обещает произвольную комбинацию узлов как валидный XML.
Само объявление DTD не выполняет проверку данных по DTD и не загружает внешнюю схему.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.