Xml (extensible markup language)

Синтаксис¶

Атрибуты:

необязательный атрибут, который определяет, какой метод должен использоваться для вывода документа. Значением этого атрибута может быть любое имя, но при этом техническая рекомендация XSLT определяет только три стандартных метода вывода — «», «» и «». В том случае, если процессор поддерживает нестандартный метод вывода, его реализация полностью зависит от производителя. Если в преобразовании не определен элемент или в нем не указан атрибут , метод преобразования выбирается по умолчанию исходя из следующих условий.
необязательный атрибут, определяет версию языка выходящего документа;
необязательный атрибут, определяет, должен ли процессор добавлять пробельные символы для более наглядного форматирования документа;
необязательный атрибут, определяет, в какой кодировке должен быть выведен документ. Значение этого атрибута не зависит от регистра символов, то есть значения и будут эквивалентны. В атрибуте можно использовать только печатаемые символы , то есть символы интервала от до . Значением должно быть название набора символов, определенное в стандартах IANA (Internet Assigned Numbers Authority) или RFC2278. В противном случае, атрибут должен начинаться символами «»;
необязательный атрибут, определяет тип содержимого MIME выходящего документа;
необязательный атрибут, определяет системный идентификатор, который должен быть использован в декларации типа документа ();
необязательный атрибут, определяет публичный идентификатор, который должен быть использован в декларации типа документа ();
необязательный атрибут, определяет, нужно ли включать декларацию XML в выходящий документ или нет. Значением этого атрибута должно быть либо «» (пропустить декларацию), либо «» (включить декларацию в выходящий документ);
необязательный атрибут, определяет, должен ли процессор выводить указание на самостоятельность документа (standalone declaration). Значением этого атрибута может быть либо «» (выводить указание), либо «» (не выводить указание на самостоятельность);
необязательный атрибут, определяет список элементов, текстовое содержимое которых должно быть выведено с использованием секций .

Использование этих атрибутов зависит от того, какой из методов выбран для вывода преобразованного документа.

Comments[edit | edit source]

xmllint as a mapedit | edit source

If you don’t want the XML file to be automatically formatted as soon as you edit it, you can create a map by putting the following command in your vimrc:

 map @@x !%xmllint --format --recover -^M

When you are in command mode and press , Vim will run all of the lines in the current file through the command.

xmllint as a filteredit | edit source

Q: How can make it as a filter?

I tried sth like

let&l:equalprg='xmllint --format --recover'

but it didn’t work since xmllint doesn’t take STDIN?

A: Notice the ‘-‘ given as the file argument to xmllint. This usually means stdin. So, the full command should be:

let &l:equalprg='xmllint --format --recover -'

A: Yes, xmllint can read from stdin, please note the ‘-‘ that occurs at the end of the options. This tells it to dump the file contents to the stdin pipe for xmllint. As far as I know, xmllint can be run in windows if you have gcc, but I am just projecting…look into it. If not, I am sure you can find something to take its place…the tip is just that, a tip, build on it.

A: Regarding the filter question:

Start playing with

" one or more lines:
vmap ,px !xmllint --format -<CR>
" pretty-print current line
nmap ,px !!xmllint --format -<CR>

edit | edit source

«xmllint —format» indents comment lines to 0 which screws up the formatting for vim. A simple fix for single line comments can be made in indent/xml.vim. Copy indent/xml.vim to ~/.vim/xml.vim (Unix systems) and change the line that says:

let lnum = prevnonblank(a:lnum - 1)

To this:

let lnum = a:lnum
while lnum > 0
    let lnum = prevnonblank(lnum - 1)
    let line = getline(lnum)
    if line =~ '-->'
        let  = searchpos('<!--','b')
    else
        break
    endif
endwhile

Alone-on-line end-of-comment closing-tags may get badly indented though.

xmllint on Windowsedit | edit source

   :% !xmllint.exe "%" --format

The first ensures the content of the open file is replaced with the results of passing through xmllint. The order of the second and the flag is important as otherwise xmllint will try to open a file with the name «—format». The quotes around the second allow file paths that include spaces to be passed to xmllint.

Alternative xmllint Windows binaries and instructionsedit | edit source

Binaries

Instructions

For instructions see the Windows section under:

http://www.pinkjuice.com/howto/vimxml/setup.xml#xmllint

Built-in Search and Replaceedit | edit source

Seriously consider using Vim’s built-in search and replace functionality. See this Pretty-formatting_XML and the third comment ( , etc).

(HTML) Tidyedit | edit source

au FileType xml exe ":silent 1,$!tidy --input-xml true --indent yes 2>/dev/null"

Here’s how you use tidy with xml on Windows:

au FileType xml exe ":silent 1,$!tidy -q -i -xml"

I have this in my .vimrc

" select xml text to format and hit ,x
vmap ,x :!tidy -q -i -xml<CR>

UTF-8 formatedit | edit source

Q: One problem with «xmllint —format» is that it turns non-ASCII UTF-8 characters into numeric references. This isn’t a problem if you’re taking the input of xmllint and editing it with an XML editor that internally converts everything to UTF-8 (like XMetal), but if what you want to do is use Vim to edit the file as a native UTF-8 (with :set encoding=utf8), then you *don’t* want a bunch of numeric references instead of Unicode.

The xmllint developer knows about this issue but feels that adding an option to keep/not keep UTF-8 would complicate the code too much. So… is there another XML reformatter more suitable for producing output that Vim can use?

A: I will change the solution described at the above URL since there is a very simple solution to the problem:

:%!xmllint --format --encode UTF-8 -

Changing tab/ident widthedit | edit source

Q:. Any ideas on how to use xmllint, but change the tab/indent width? It seems to filter, on windows, with 2 spaces for a tab.

A:. In Unix/Linux, if you don’t like the default indentation (2 spaces), set the $XMLLINT_INDENT environment variable, or prefix the xmllint command in your .vimrc file:

au FileType xml exe ":silent 1,$!XMLLINT_INDENT='    ' xmllint --format --recover - 2>/dev/null"

Что такое XML формат

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

Применяется формат XML сразу в нескольких направлениях:

  • верстка сайтов
  • систематизированное оформление таблиц
  • базы данных
  • настройки запуска приложений

Читаемость – главная идея XML-документа. Даже без дополнительных инструментов можно открыть файл и, бегло пробежавшись глазами по описанным символам, легко разобраться, какие инструкции заложены внутри, и какие события запустятся при непосредственном использовании по прямому назначению.

Базируется язык разметки на кодировке Юникод (UTF-8 и UTF-16) и легко подстраивается под любые конкретные нужды (главное соблюдать некоторые обязательные правила – к примеру, размещать в первой строчке документа обязательную конструкцию, определяющую версию XML, кодировке и подключаемых библиотеках). Но то лишь нюансы – куда важнее разобраться, как можно открыть документ XML и получить информативный текст, а не набор неразборчивых символов.

Итак, рассмотрим популярные способы для открытия XML файл.

Сочетайте узлы и атрибуты

Инженеры довольно ленивый народ. Я могу это утверждать, поскольку сам такой. Не спорьте, все мы такие. Если интегрированная среда разработки предложит выполнить экспорт XML вместо нас, мы наверняка согласимся. Но обычно интегрированная среда создает очень плохой XML-код. Вероятно, вы уже встречались с чем-то похожим на :

Листинг 3. Список пользователей
<users>
    <user>
        <id>1</id>
        <first>jack</first>
    </user>
</users>

Должен ли быть тегом? Я утверждаю, что он должен быть атрибутом. Код становится более коротким и осмысленным, появляется возможность искать пользователя по идентификатору при помощи простого XPath-выражения ().

Чтобы код был читабелен, несомненно лучше использовать атрибуты, как показано в .

Листинг 4. Более удобный список пользователей
<users>
    <user id="1">
        <first>jack</first>
    </user>
</users>

Понятно, что интегрированная среда сгенерировала , потому что всегда безопаснее использовать узлы. Но атрибуты позволяют идентифицировать важные элементы в DOM-дереве, поэтому следует использовать их.

Понятие о языке XML

XML — это расширяемый язык разметки (Extensible Markup Language), разработанный специально для размещения информации
в World Wide Web, наряду с HTML, который давно стал стандартным языком создания Web-страниц. В отличие от HTML,
вместо использования ограниченного набора определённых элементов вы имеете возможность создавать ваши собственные
элементы и присваивать им любые имена по вашему выбору. Примечание: подразумевается, что читатель данной статьи хотя
бы очень поверхностно знаком с языком HTML.

XML решает ряд проблем, которые не решает HTML, например:

  • Представление документов любого (не только текстового) типа, например, музыки, математических уравнений и
    т.д.
  • Сортировка, фильтрация и поиск информации.
  • Представление информации в структурированном (иерархическом) виде.

В зависимости от уровня соответствия стандартам документ может быть «верно сформированным» («well-formed»), либо
«валидным» («valid»). Вот несколько основных правил создания верно сформированного документа:

  • Каждый элемент XML должен содержать начальный и конечный тэг (либо пустой тэг типа <TAG />, который может
    нести информацию посредством своих атрибутов).
  • Любой вложенный элемент должен быть полностью определён внутри элемента, в состав которого он входит.
  • Документ должен иметь только один элемент верхнего уровня.
  • Имена элементов чувствительны к регистру.

Есть три основных способа сообщить браузеру, как отображать каждый из созданных вами XML-элементов:

  • Каскадная таблица стилей (Cascading Style Sheet — CSS) или расширяемая таблица в формате языка стилевых
    таблиц (Extensible Stylesheet Language — XSL).
  • Связывание данных. Этот метод требует создания HTML-страницы, связывания с ней XML-документа и установления
    взаимодействий HTML-элементов с элементами XML. В дальнейшем HTML-элементы автоматически отображают информацию
    из связанных с ними XML-элементов.
  • Написание сценария. Этот метод требует создания HTML-страницы, связывания с ней XML-документа и получение
    доступа к XML-элементам с помощью кода сценария JavaScript или VBScript.

Индивидуальный пользователь, компания или комитет по стандартам может определить необходимый набор элементов XML
и структуру документа, которые будут применяться для особого класса документов. Подобный набор элементов и описание
структуры документа называют XML-приложением или XML-словарём.

XML-приложение обычно определяется созданием описателя типа документа (DTD), который является допустимым
компонентом XML-документа. DTD устанавливает и определяет имена элементов, которые могут быть использованы в
документе, порядок, в котором элементы могут появляться, и доступные к применению атрибуты элементов. DTD обычно
включается в XML-документ и ограничивает круг элементов и структур, которые будут использоваться. Примечание:
приложение XML Schema позволяет разрабатывать подробные схемы для ваших XML-документов с использованием стандартного
синтаксиса XML и является альтернативой DTD.

Объявления атрибутов

Объявление списка атрибутов определяет имена атрибутов, устанавливает тип для каждого атрибута и задаёт
востребованность для каждого атрибута, в частности, может задавать значение атрибута по умолчанию. Объявление
списка атрибутов имеет следующую форму записи:

<!ATTLIST Имя ОпрАтр>

Здесь «Имя» — имя элемента, для которого задаются атрибуты. «ОпрАтр» — это одно или несколько определений атрибутов.
Определение атрибута имеет следующую форму записи:

Имя ОпрАтр ОбъявУмолч

Здесь «Имя» — имя атрибута. ОпрАтр представляет собой тип атрибута. ОбъявУмолч — это объявление значения по
умолчанию, которое указывает на востребованность атрибута и содержит некоторую дополнительную информацию. Пример
объявления:

<!ATTLIST PRODUCT Retail CDATA «retail» Title CDATA #REQUIRED>

Вышеприведённое объявление означает, что вы можете присвоить атрибуту Retail любую строку в кавычках (ключевое
слово CDATA); если этот атрибут опущен, ему будет присвоено значение по умолчанию «retail». Вы можете присвоить
атрибуту Title любую строку в кавычках; этот атрибут должен быть обязательно задан для каждого элемента PRODUCT
(ключевое слово #REQUIRED) и не имеет значения по умолчанию.

Объявления атрибутов просто включаются в DTD наряду с объявлениями типов элементов, например:


<!ELEMENT PRODUCT (#PCDATA)>
<!ATTLIST PRODUCT Retail CDATA «retail» Title CDATA #REQUIRED>

Вы можете задавать тип атрибута тремя различными способами:

  • Строковый тип (ключевое слово CDATA, что означает символьные данные, Character Data).
  • Маркерный тип.
  • Нумерованный тип.

Вот список ключевых слов, которые вы можете использовать в определении маркерных типов атрибутов:

ID   Для каждого элемента атрибут должен иметь уникальное значение. Элемент может иметь
только один атрибут типа ID. В объявлении значения по умолчанию такого атрибута должно фигурировать #REQUIRED или
#IMPLIED.
IDREF   Значение такого атрибута является ссылкой на атрибут типа ID другого элемента
.
IDREFS   Этот тип атрибута похож на IDREF, но его значение может включать ссылки на
несколько идентификаторов — разделённых пробелами — внутри строки в кавычках.
ENTITY   Значение атрибута должно совпадать с именем примитива, объявленного в DTD. Такой
примитив ссылается на внешний файл, обычно содержащий не XML-данные. Таким способом, например, определяют путь к
файлу, содержащему графические данные (рисунок).
ENTITIES   Этот тип атрибута похож на ENTITY, но его значение может включать ссылки на
несколько идентификаторов, разделённых пробелами — внутри строки в кавычках. Таким способом, например, определяют
пути к файлам, содержащим графические данные (рисунки) в альтернативных форматах.
NMTOKEN   Элементарное имя.
NMTOKENS   Этот тип атрибута похож на NMTOKEN, но его значение может включать несколько
элементарных имён, разделённых пробелами — внутри строки в кавычках..

Два способа, которые вы можете использовать в определении нумерованных типов атрибутов:

  • Если вы хотите ограничить значение атрибута «Mass» словами «net» и «gross», вы можете написать следующее:

    <!ATTLIST PRODUCT Mass (net | gross) «net»>

  • Нумерованный тип можно определить с помощью ключевого слова NOTATION. Каждая из указанных нотаций должна точно
    соответствовать имени нотации, объявленному в DTD. Нотация описывает формат данных или идентифицирует программу,
    применяемую для обработки определённого формата данных:

    <!ATTLIST PRODUCT Description NOTATION (HTML | SGML | RTF) #REQUIRED>

Объявление значения атрибута по умолчанию может иметь четыре формы:

#REQUIRED   Вы должны задать значение атрибута для каждого элемента.
#IMPLIED   Вы можете опустить атрибут, но никакое значение по умолчанию назначено не
будет.
AttValue   Собственно значение по умолчанию. Вы можете опустить атрибут, и ему будет
назначено это значение по умолчанию.
#FIXED AttValue   Вы можете опустить атрибут, и ему будет назначено это значение по
умолчанию (AttValue). Если вы не опускаете атрибут, вы обязаны назначить ему это значение по умолчанию. При таком
объявлении указывать атрибут в элементе имеет смысл только для того, чтобы сделать документ более понятным для
восприятия.

Как открыть XML-файл

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

Используйте текстовый редактор при регулярной работе с XML

Поскольку XML-файлы – это просто текстовые файлы, их можно открыть в любом текстовом редакторе. Однако, многие текстовые редакторы, такие как Notepad, просто не предназначены для отображения XML-файлов с их правильной структурой. Это может быть полезно для быстро ознакомления с содержанием XML-файла. Но, существуют более удобные инструменты для работы с ними.

  1. Щелкните правой кнопкой мыши файл XML, который вы хотите открыть, выберите Открыть с помощью в контекстном меню, а затем выберите Блокнот.

    Примечание: мы используем Windows, но то же самое справедливо и для других операционных систем. Найдите хороший сторонний текстовый редактор, предназначенный для поддержки XML-файлов.

  2. Файл открывается, но, как вы можете видеть, он теряет большую часть своего форматирования и записывает всё в две строки.
  3. Таким образом, блокнот может быть полезен для быстрой проверки XML-файла. Но, гораздо удобнее использовать более продвинутый инструмент, такой как Notepad++, который подсвечивает синтаксис и формат файла, как это можно ожидать.

    Вот тот же XML-файл, открытый в Notepad++

Использование веб-браузера для просмотра XML-файла

Если Вам не нужно редактировать XML-файл, но просто нужно просмотреть содержимое, с этой задачей справиться ваш браузер. Более того, ваш веб-браузер, скорее всего, уже настроен как стандартное средство просмотра XML-файлов. Таким образом, двойной щелчок XML-файла должен открыть его в браузере.

Если нет, вы можете щелкнуть правой кнопкой мыши файл, чтобы найти варианты его открытия с любым другим приложением. Просто выберите ваш веб-браузер из списка программ.

Когда файл откроется, вы должны увидеть хорошо структурированные данные. Это не так красиво, как цветной вид, который вы получаете в Notepad++, но гораздо лучше, чем блокнот.

Использование онлайн-редактора для XML-файлов

Если вы хотите редактировать случайный XML-файл и не хотите загружать новый текстовый редактор, или Вам нужно конвертировать XML-файл в другой формат, существует несколько достойных онлайн-редакторов XML, доступных бесплатно.

Для примера используем CodeBeautify.org. Страница разделена на три раздела. Слева находится XML-файл, с которым вы работаете. В середине вы найдете несколько функций. Справа вы увидите результаты некоторых вариантов, которые вы можете выбрать.

Например, на рисунке ниже слева находится наш полный XML-файл, а на панели результатов отображается представление в виде дерева, так как мы нажали кнопку Tree View посередине.

Используйте кнопку Browse для загрузки XML-файла с вашего компьютера или кнопку Load URL для извлечения XML из интернет-источника

Кнопка Tree View отображает данные в хорошо отформатированной древовидной структуре на панели результатов, со всеми тегами, выделенными оранжевым цветом, и атрибутами справа от тегов.

Beatify отображает ваши данные в аккуратном, легко читаемом виде.

Кнопка Minify отображает ваши данные, используя наименьшее количество пробелов. Эта функция будет разместить каждый каждый кусок данных на одной строке. Это пригодится при попытке сделать файл меньше, что сэкономит некоторое пространство.

И, наконец, Вы можете использовать кнопку XML to JSON для преобразования XML в формат JSON, и кнопку Export to CSV для сохранения данных в виде файла значений, разделенных запятыми, или кнопку Download для загрузки любых изменений, которые вы сделали в новом XML-файле.

Использование внешних DTD

Вы можете поместить все или часть объявлений DTD документа в отдельный файл, а затем ссылаться на этот файл из
объявления типа документа. DTD, или часть DTD, содержащаяся в отдельном файле, называется внешним подмножеством DTD.
Применение внешнего подмножества DTD имеет смысл для DTD, которые являются общими для группы документов.

Ссылка на внешний DTD выглядит следующим образом:

<!DOCTYPE PRODUCTS SYSTEM «Products.dtd»
   
>

Файл, содержащий внешнее подмножество DTD, может включать любые объявления разметки, которые могут быть включены во
внутреннее подмножество DTD. Например, содержимое файла «Products.dtd» может выглядеть так:

<!ELEMENT PRODUCT ANY>

XML-процессор осуществляет слияние внутреннего и внешнего подмножества DTD. Если одно и то же объявление встречается
более одного раза, XML-процессор использует первое объявление и игнорирует все последующие. Внутреннее подмножество
DTD имеет приоритет перед внешним (т.е. внешнее подмножество DTD всегда обрабатывается после того, как полностью
будет обработано подмножество внутреннего DTD). Такой способ объединения DTD даёт вам возможность адаптировать (или
субклассировать) DTD для конкретного документа.

Вы можете заставить XML-процессор игнорировать часть внешнего DTD с помощью раздела IGNORE. Такой приём подобен
«комментированию» фрагмента кода:

<!ELEMENT PRODUCT ANY>
<!]>

Если вы хотите временно восстановить блок разметки в разделе IGNORE, достаточно просто заменить ключевое слово
IGNORE на INCLUDE, не удаляя при этом символы-ограничители разметки, чтобы потом можно было быстро опять
«закомментировать» код.

Примечание: разделы IGNORE и INCLUDE можно использовать только во внешнем DTD.

XML файлы через продукты Microsoft Office

Пакет программ от Microsoft с файлами XML взаимодействовать умеет, но лишь по части отображения конечной информации (после выполнения всех процессоров, заложенных в документе), а не для непосредственного взаимодействия и редактирования. И Word, и Excel сработают, как калькуляторы, в которые занесли целый пример, и нажали кнопку «Посчитать». В итоге, на экране и появится результат, без какой-либо дополнительной информации.

4.1. Открыть XML в Microsoft Word:

1. Тут два пути, как и с блокнотом. Можно или сразу открыть приложение и в выпадающем меню выбрать «Открыть».

Или же перейти в необходимый каталог и уже оттуда, нажав правой кнопкой, вызвать список действий.

2. Вне зависимости от выбранного маршрута, результат одинаковый. На экране появится какая-то определенная информация без тегов и атрибутов, лишь голый текст.

Как отмечает Word, офисного набора для отображения XML в другом виде недостаточно, нужны дополнительные плагины и инструкции, устанавливаемые «сверху». В ином случае, можно и не рассчитывать на полноценное взаимодействие.

4.2. Открыть XML в Microsoft Excel:

1. Первоначальные действия все те же.

2. Из реальных отличий – необходимость выбрать сценарий при взаимодействии с XML. Стоит ли Excel открывать все данные, как таблицу или же в виде книги с определенными задачами.

3. Перепробовать можно разные варианты, однако результат такой же, как и в Word – текст, появившийся после обработки всех тегов, атрибутов и процессов, но разбитый на ячейки.

Словом, пакет офисных программ от Microsoft не выполняет и половины требуемых задач – не позволяет редактировать текст, не отображает системные данные, да еще и с трудом обрабатывает некоторую информацию и частенько выдает ошибки. Кроме того, в последних версиях Word и Excel за 2016 год, разработчики практически отказались от возможности взаимодействия с XML, а потому и рассчитывать на подобного со скрипом работающего помощника точно не стоит.

Заключение

Поддержка технологии XML предусмотрена во многих инструментальных средствах. Как пользователю XML, вам следует проанализировать свои потребности и выбрать подходящее инструментальное средство. Например, если вам нужно выполнять много разных операций, можно выбрать XML IDE с такими дополнительными функциональными возможностями, как редактирование, проверка корректности и т.д. Для узких задач (например, для сравнения XML-файлов) можно выбрать специализированную программу сравнения.

Похожие темы

  • Оригинал статьи: Investigate current XML tools (EN).
  • Ссылки на инструментальные средства для создания XML-карт сайтов:

    • Google SiteMap Generator
    • Gsite Crawler
    • Sitemaps Builder
    • XML Sitemaps
  • Ссылки на программы проверки корректности XML-карт сайтов:

    • Automapit sitemap validator
    • Sitemap XML validator
    • XML sitemaps validator
    • Online Merchant Forum – XML (Google) Sitemap Checker
  • Ссылки на генераторы RSS-фидов:

    • IceRocket RSS builder
    • Feedity
    • RSSPect
  • Ссылки на генераторы XML-схем:

    • Trang from ThaiOpenSource
    • XML for ASP BuildXMLSchema
  • Ссылки на программы проверки корректности XML:

    • XMLValidation.com
    • DecisionSoft.com Schema Validator
    • W3C XML validator
  • Ссылки на программы форматирования XML:

    • XMLIndent.com
    • X01 online xml formatter
  • Ссылки на XML-редакторы:

    • Xerlin XML Editor
    • Jaxe Editor
    • XMLFox
  • Ссылки на инструментальные средства для работы с XML:

    • Tiger XSLT Mapper
    • Kernow
    • XSLT Online Transformation
    • W3C Online XSLT 2.0 Service
    • Mozilla Firefox: XSL Results Add-on
    • Mozilla Firefox: XML Developer Toolbar Add-on
    • Google Chrome: XML Tree
    • Google Chrome: XML Viewer
  • Ссылки на инструментальные средства с открытыми исходными кодами для работы с XML:

    • iXedit
    • Rinzo XML Editor
    • XPontus XML Editor
  • Ссылки на XML IDE:

    • XMLSpy
    • XML Marker
    • Liquid XML Studio
    • <oXygen/> XML Editor
    • Stylus Studio
    • XML Notepad
    • XML Copy Editor
    • firstobject XML Editor
    • XRay XML Editor
    • XMLSpear
    • XMLmind
    • ElfData XML Editor
    • XMetal
  • Ссылки на инструментальные средства сравнения XML-файлов:

    • <oXygen/> XML Diff & Merge
    • Liquid XMLDiff
    • ExamXML
    • DeltaXML
  • Ссылки на инструментальные средства для работы с XQuery:

    • XMLSpy XQuery Editor
    • Stylus Studio XQuery Editor
    • XQuery development tools for Eclipse
  • Ссылки на инструментальные средства для работы с XPath:

    • SketchPath
    • XPath Visualizer
    • XPath Query Expression Tool
    • Simple online XPath tester
    • XSLT Tryit Editor
  • XML-редакторы (O’Reilly xml.com): список XML-редакторов.
  • Сравнение XML-редакторов (Википедия): список XML-редакторов, в котором сравниваются условия лицензирования, поддерживаемые платформы и функциональные возможности различных XML-редакторов.
  • Генераторы карт сайтов: список ссылок на инструментальные средства и фрагменты кода, генерирующие или обслуживающие файлы карт сайтов.
  • Раздел XML на developerWorks: ресурсы для повышения квалификации в области XML. В библиотеке технической литературы по XML представлены технические статьи и рекомендации, руководства, стандарты и документы IBM Redbooks.
  • Сертификация IBM XML: информация о получении сертификата IBM-Certified Developer по XML и смежным технологиям.

Вывод с использованием Apache FOP

Apache FOP генерирует PDF-документ на основании файла данных и таблицы стилей. Возможности FOP не ограничиваются выводом в PDF – можно генерировать документы в формате RTF (Rich Text Format), PCL (Printer Command Language), PS (PostScript), AFP (Advanced Function Presentation), TIFF (Tagged Image File Format), PNG (Portable Network Graphics), а также обычные текстовые файлы.

Процесс получения и установки FOP сводится к простой загрузке и разархивированию двоичной версии (см. раздел ). После этого FOP готов к использованию.

Ниже приведен пример инструкции командной строки для . В этом случае данные, стиль и конфигурационные файлы расположены в одном каталоге. Используйте этот каталог в качестве рабочего и вызовите из его местоположения:

/path/to/fop/fop -c fop.xconf -xml exx.xml -xsl exx.xsl -pdf exx.pdf

Данная инструкция указывает исполняемому файлу выполнить следующие действия:

  • Найти информацию о конфигурации в файле fop.xconf.
  • Найти данные в файле exx.xml.
  • Использовать таблицу стилей exx.xsl для генерирования файла exx.pdf.

Конфигурационный файл – это важная часть процесса. Его пример приведен в .

Листинг 3. Конфигурационный файл FOP
<?xml version="1.0"?>
<fop version="1.0">
  <base>.</base>
  <source-resolution>72</source-resolution>
  <target-resolution>72</target-resolution>
  <default-page-settings height="11in" width="8.26in"/>
  <renderers>
    <renderer mime="application/pdf">
      <filterList>
        <value>flate</value>
      </filterList>
      <fonts>
        <auto-detect />
      </fonts>
    </renderer>
  </renderers>
</fop>

В данной конфигурации элемент управляет сжатием объектов в PDF-файле, а элемент указывает процессору использовать шрифт, уже известный операционной системе.

На , являющемся снимком экрана программы чтения PDF-файлов, показан результат преобразования.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Adblock
detector