Конец разбора разыменованной сущности XML.
Полное описание, параметры и ограничения
ТипУзлаXML.КонецСущности (XMLNodeType.EndEntity)
ТипУзлаXML (XMLNodeType)
КонецСущности (EndEntity)
Доступен, начиная с версии 8.1.
Описание:
Конец разбора разыменованной сущности XML.
Использование в версии:
Доступен, начиная с версии 8.1.
Методическая информация
Практические примеры
Распознать XML-узел КонецСущности в собственном тексте
ЧтениеXML получает небольшой встроенный XML. Конкретное значение сравнивается с настоящим ТипУзла текущего читателя; внешние XML-файлы не открываются.
Где и как запускать
Серверная процедура своей учебной обработки. Код без директив вставьте в тело процедуры.
Подготовка
Создайте серверную команду собственной учебной обработки. Основной блок вставьте в тело серверной процедуры; не переносите его в веб-клиент.
XML задан в самом примере. DTD содержит только собственные объявления: идентификаторы urn:learn не являются адресами загрузки, внешние файлы и схемы не открываются.
Параметры явно не игнорируют декларацию XML, DTD, комментарии, инструкции и пробелы. Проверка внешней схемы не выполняется.
XML = "<!DOCTYPE catalog [<!ENTITY book ""Книга""><!NOTATION png SYSTEM ""urn:learn:png""><!ENTITY picture SYSTEM ""urn:learn:picture"" NDATA png>]><catalog>&book;</catalog>";
Параметры = Новый ПараметрыЧтенияXML("1.0", "", ПробельныеСимволыXML.ПоУмолчанию, ТипПроверкиXML.НетПроверки, Ложь, Ложь, Ложь, Ложь, Ложь, Ложь);
Чтение = Новый ЧтениеXML;
Найдено = 0;
Попытка
Чтение.УстановитьСтроку(XML, Параметры);
Пока Чтение.Прочитать() Цикл
Если Чтение.ТипУзла = ТипУзлаXML.КонецСущности Тогда
Найдено = Найдено + 1;
Сообщить(Чтение.Имя + ": " + Чтение.Значение);
КонецЕсли;
КонецЦикла;
Чтение.Закрыть();
Исключение
Чтение.Закрыть();
ВызватьИсключение;
КонецПопытки;
Сообщить("Найдено узлов: " + Строка(Найдено));Разбор по шагам
Сначала создаётся читатель и устанавливается собственная строка XML.
Прочитать перемещает его к очередному настоящему узлу; условие сравнивает ТипУзла с ТипУзлаXML.КонецСущности.
Для Сущность и Нотация отдельно обходятся объявления внутреннего DTD через ПервоеОбъявление и СледующееОбъявление; обычный обход содержимого не подменяется обходом объявлений.
Как проверить результат
Вывод показывает имена / значения подходящих узлов и их количество; для Ничего — состояние до чтения и после окончания.
Для Сущность и Нотация показаны собственные объявления book / picture или png. Строки urn:learn остаются идентификаторами, сетевое соединение не создаётся.
Ожидаемый результат
Значение применено к реально созданному объекту, исключению, читателю или документу в указанном контексте.
На что обратить внимание
Перечисление — набор значений, не строковых названий. Не заключайте используемую константу в кавычки.
HTML показывает код. Выполнение производится только вручную в указанном учебном контексте 1С.
СсылкаНаСущность и КонецСущности — пример синтаксиса распознавания редких событий читателя. Не обещается, что конкретный читатель вернёт их при разборе данного текста: он может разыменовать сущность без таких узлов; тогда счётчик 0 — честный результат.
Не используйте этот пример для недоверенного XML с внешними сущностями. Учебный текст встроен и не содержит внешнего DTD или ссылки, которую нужно загрузить.
Атрибуты читаются отдельным ПрочитатьАтрибут; этот блок не утверждает, что обычный Прочитать выдаёт каждый атрибут как отдельный узел.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.