Название

xmllint — консольная утилита для работы с XML

Обзор

xmllint [--version | --debug | --shell | --debugent | --copy | --recover | --noent | --noout | --htmlout | --nowrap | --valid | --postvalid | --dtdvalid URL | --timing | --repeat | --insert | --compress | --sgml | --html | --push | --memory | --nowarning | --noblanks | --format | --testIO | --encode encoding | --catalogs | --nocatalogs | --auto | --xinclude | --loaddtd | --dtdattr | --dropdtd] [XML-файл...]

Описание

Программа xmllint обрабатывает один или несколько XML файлов, указанных в строке запуска как XML-файл. xmllint создаёт разные варианты вывода в зависимости от выбранных опций. Программа полезна для выявления ошибок в коде XML файла или в самом парсере.

xmllint является частью библиотеки libxml2.

Опции

--version

Показать версию используемой библиотеки libxml2.

--debug

Обработать файл и вывести с комментариями структуру представления документа в памяти.

--shell

Запустить командную среду. Подробности о доступных командах среды описаны дальше.

--debugent

Включить отладку сущностей (entities), указанных в документе.

--copy

Тестировать реализацию внутреннего копирования. Как правило, просто копирует документ на стандартный вывод.

--recover

Вывести любую обрабатываемую часть испорченного документа.

--noent

Заменять ссылки на сущности их значениями. По умолчанию xmllint оставляет в документе ссылки на сущности. Эта опция полезна вместе с --postvalid для проверки документов, или при использовании сущностей в значениях атрибутов.

--noout

Отключает вывод. По умолчанию xmllint выводит результирующую структуру документа.

--htmlout

Вывести результат в формате HTML. Добавляет в вывод необходимые HTML-теги, позволяющие просмотреть результирующий вывод в браузере.

--nowrap

Не выводить начальное объявление HTML и завершающие теги.

--valid

Проверить соответствие документа (validating) объявленному типу документа (например, DTD). Можно явно указать тип документа для проверки с помощью опции --dtdvalid. По умолчанию xmllint также проверяет, что документ правильно сформирован (well-formed), то есть соответствует правилам разметки XML.

Подсказка

Полезно использовать эту опцию вместе с --noout, тогда проверочные сообщения не будут путаться с выводом самого документа.

Документы, объединённые с помощью опции --xinclude, нужно проверять опцией --postvalid.

--postvalid

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

--dtdvalid URL

Проверять соответствие типу документа, указанному в URL.

--timing

Выводить информацию о времени, затраченном на выполнение различных действий.

--repeat

Повторить операцию 100 раз, используется для определения производительности.

--insert

Тестировать допустимость вставок.

--compress

Включить gzip-сжатие вывода.

--sgml

Использовать DocBook SGML парсер. Позволяет создавать в памяти представление документа, созданного в формате DocBook SGML, и обрабатывать его как созданный в XML.

--html

Использовать HTML парсер.

--push

Использовать “push” режим парсера.

--memory

Обрабатывать в памяти.

--nowarning

Не выводить предупреждающие сообщения (warnings).

--noblanks

Выбрасывать игнорируемые пробельные символы.

--format

Переформатировать и переделать сдвиги в выводе.

--testIO

Тестировать возможности ввода/вывода.

--encode encoding

Кодировать вывод в указанной кодировке. Кодировка в объявлении XML устанавливается автоматически.

--catalogs

Использовать файлы каталогов (catalogs) из переменной SGML_CATALOG_FILES. Иначе используется каталог по умолчанию — /etc/xml/catalog.

--nocatalogs

Не использовать любые каталоги.

--auto

Вывести небольшой документ для тестирования.

--xinclude

Обрабатывать включения документов по стандарту XML Inclusions (XInclude). По умолчанию xmllint не выполняет такие включения.

Замечание

В libxml2 до версии 2.4.25 объединение большого количества документов требовало очень много ресурсов и времени. С версии 2.4.25 код включений серьёзно переписан и надобности в больших ресурсах нет.

Подсказка

Для проверки документов, использующих включения, нужно пользоваться опцией --postvalid.

--loaddtd

Загрузить внешний тип документа. Эта опция полезна для разрешения сущностей, объявленных во внешнем типе документа, при объединении нескольких включаемых документов в один.

--dtdattr

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

--dropdtd

Удалить объявление типа документа из вывода.

Командная среда

xmllint позволяет использовать интерактивный режим команд (опция --shell).

Команды интерактивного режима:

base

Показать XML базу узла.

bye

Выйти из режима команд.

cat [node]

Показать текущий узел, или указанный [node].

cd [path]

Перейти к указанному узлу, или к корневому, если узел [path] не указан.

dir path

Сохранить информацию узла (пространство имён, атрибуты, содержимое).

du [path]

Показать структуру поддерева от указанного [path] узла, или от текущего, если не указан.

exit

Выйти из режима команд.

help

Показать справку.

free

Показать информацию об использовании памяти.

load name

Загрузить документ, указанный name.

ls [path]

Показать содержимое [path] или текущего каталога.

pwd

Показать путь к текущему узлу.

quit

Выйти из режима команд.

save [name]

Сохранить текущий документ с указанным [name] или с оригинальным именем.

validate

Проверить документ на ошибки (соответствие объявленному типу, правильность XML).

write name

Записать текущий узел в файл с указанным name именем.