Содержит варианты типов атрибута XML.
Полное описание, параметры и ограничения
ТипАтрибутаXML (XMLAttributeType)
ТипАтрибутаXML (XMLAttributeType)
Доступен, начиная с версии 8.1.
Значения
CDATA (CDATA)
ENTITIES (ENTITIES)
ENTITY (ENTITY)
ENUMERATION (ENUMERATION)
ID (ID)
IDREF (IDREF)
IDREFS (IDREFS)
NMTOKEN (NMTOKEN)
NMTOKENS (NMTOKENS)
NOTATION (NOTATION)
Описание:
Содержит варианты типов атрибута XML.
Доступность:
Мобильный клиент, сервер, толстый клиент, внешнее соединение, мобильное приложение (клиент), мобильное приложение (сервер), мобильный автономный сервер.
См. также:
ЧтениеУзловDOM, метод ТипАтрибута
ЧтениеFastInfoset, метод ТипАтрибута
ЧтениеXML, метод ТипАтрибута
Использование в версии:
Доступен, начиная с версии 8.1.
Методическая информация
Практические примеры
Прочитать ТипАтрибутаXML.CDATA своей XML-строки
Во внутреннем DTD собственной строки объявлен конкретный тип атрибута value. Его тип читается по индексу 0 у настоящего начального элемента book, не угадывается по тексту значения.
Где и как запускать
Тело серверной процедуры собственной учебной обработки. Диагностика объявленного типа атрибута в собственной строке, без внешних ресурсов.
Подготовка
Тело серверной процедуры своей учебной обработки. Вся XML-строка и внутренние объявления DTD включены в пример; внешние файлы и сеть не используются.
Параметры чтения не игнорируют внутренние объявления DTD. ТипПроверкиXML.НетПроверки означает отсутствие проверки документа на полную корректность DTD, а не утверждение, что документ валиден.
ENTITY / ENTITIES ссылаются на объявленные непроанализированные сущности NDATA. URN здесь только идентификаторы объявления, содержимое сущностей не подставляется и картинки не загружаются.
Для IDREF / IDREFS показан тип объявления, не проверка существования целевого ID. Не переносите такое отключение проверки в рабочий импорт непроверенного XML.
XML = "<!DOCTYPE book [<!ELEMENT book EMPTY><!ATTLIST book value CDATA #REQUIRED>]><book value=""Книга""/>";
Параметры = Новый ПараметрыЧтенияXML("1.0", "", ПробельныеСимволыXML.ПоУмолчанию, ТипПроверкиXML.НетПроверки, Ложь, Ложь, Ложь, Ложь, Ложь, Ложь);
Чтение = Новый ЧтениеXML;
Попытка
Чтение.УстановитьСтроку(XML, Параметры);
Пока Чтение.Прочитать() Цикл
Если Чтение.ТипУзла = ТипУзлаXML.НачалоЭлемента И Чтение.Имя = "book" Тогда
ТипАтрибута = Чтение.ТипАтрибута(0);
Сообщить("Тип первого атрибута: " + Строка(ТипАтрибута));
Сообщить("Совпадает с выбранным: " + Строка(ТипАтрибута = ТипАтрибутаXML.CDATA));
КонецЕсли;
КонецЦикла;
Чтение.Закрыть();
Исключение
Чтение.Закрыть();
ВызватьИсключение;
КонецПопытки;Разбор по шагам
Внутреннее объявление ATTLIST задаёт тип value. Для ENUMERATION используется список допустимых лексических значений, для NOTATION — объявленные нотации.
ТипАтрибута принимает числовой индекс, не строковое имя. У book в примере ровно один атрибут, поэтому индекс 0 конкретен.
Чтение закрывается при успехе и исключении. Выведены фактический тип и сравнение с выбранной константой.
Как проверить результат
Показан тип первого атрибута собственной строки и результат сравнения.
Если реализация чтения не учитывает тип из DTD в указанном режиме, диагностический вывод это покажет; пример не объявляется доказательством валидации документа.
Ожидаемый результат
Константа типа сопоставлена с реальным атрибутом собственной XML-строки.
На что обратить внимание
ТипАтрибутаXML не равен типу значения XDTO или типу свойства метаданных 1С.
Непроанализированная сущность — не текстовая сущность для подстановки &имя; в содержимое XML.
В этом уроке нет внешнего DOCTYPE SYSTEM, загрузки изображения или записи данных 1С; BSL при сборке справочника не выполняется.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.