@ Карта сайта News Автора!

Bog BOS: XML - eXtensible Markup Language

Последние изменения:
2024.11.22: sysadmin: systemd-journald (централизованное хранение)
2024.11.11: sysadmin: Linux: пространства имён
2024.11.06: sysadmin: настройка TCP/IP в Linux: виртуальный интерфейс и виртуальный мост
2024.10.25: sysadmin: Linux VFS, атрибуты, расширенные атрибуты, ACL

Последнее изменение текста: 20001202
Скопировано с www.bog.pp.ru: 2024.11.23

Bog BOS: XML - eXtensible Markup Language

Ссылки:

libxml

Библиотека C для проекта gnome (LGPL & W3C IPR - похож на лицензию XWindows ). Анализатор XML и HTML в различных режимах (pull, push) с проверкой валидности по DTD или самому документу.  Реализован XPath (не весь) и Xpointer. Переход от DTD к XMLSchema не сделан. Позволяет загружать внешние ресурсы по ftp/http. Внутреннее представление близко к DOM. Есть SAX-интерфейс (SAX - Simple API for XML; меньше возможностей, чем DOM, но требует фиксированный размер памяти независимо от размеров документа; при использовании DOM - требуется памяти в 4 больше размера документа). Загрузка PUBLIC entity не работает (но можно добавть свой механизм каталогов). Поддерживает сжатие на лету при вводе/выводе.

Поддержка i18n. Внутри все в utf-8. xmlChar - это байт. Конец строки - нуль. Для нестандартных кодировок при вводе/выводе используется iconv() - см. iconv.h. Информация о кодировке присоединяется к узлу документа. xmlSaveFile() сохраняет файл в исходной кодировке, xmlSaveFileTo() и xmlSaveFileEnc() - в указанной. Аналогично для HTML. Есть поддержка синонимов кодировок и добавление своих кодировок.

Установка libxml2-2.2.4 в RH 6.2

  1. скопировать  у гномов и развернуть архив
  2. ./configure
    1. --prefix=/usr/local
    2. --with-zlib=директория
    3. --enable-corba=yes
    4. --with-buffers=no (?)
    5. --with-ftp=yes (использование ftp для получения файлов - выключить)
    6. --with-http=yes
    7. --with-html=yes
    8. --with-xpath=yes
    9. --with-xptr=yes
    10. --with-iconv=yes (преобразование кодировок)
    11. --with-debug=yes
    12. --with-mem-debug=no
  3. make
  4. make install (в /usr/local! в /usr лежит старая версия для gnome)
    1. /usr/local/include/libxml
    2. /usr/local/share/gnome-xml/html/gnome-xml
    3. /usr/local/lib
      1. libxml.la
      2. libxml.so.2.2.6 (libxml.so.2, libxml.so)(сделать ldconfig -X; /usr/local/lib добавлена к /etc/ld.so.conf)
      3. libxml.a
      4. xmlConf.sh
    4. /usr/local/bin
      1. xmllint
      2. xml-config (посмотреть параметры сборки или поменять директорию; --libs дает совет по сборке приложений)
    5. /usr/local/man/man1: xmllint.1, xml-config.1
    6. /usr/local/man/man4/libxml.4
    7. /usr/local/lib/pkgconfig/libxml-2.0.pc
  5. компиляция программ: -I/usr/local/include/libxml -I/usr/local/include
  6. сборка программ: -L/usr/local/lib -lxml -lz

xmllint имя-файла ... (разбор XML-документа, проверка валидности, выдача дерева разбора, тестирование)

Проверка валидности (соответствия DTD):

xmllint --valid --noout servers.xml

Преобразование XSLT:

xsltproc XSLT-файл XML-файл > результат

API (есть вариант для HTML)

Xerces C++ 1.3.0 for linux

Библиотека C++ для Apache. Русский не любит (может через ICU?).
XML4C 3.3.0 - Xerces 1.3.0 и ICU (International Components for Unicode) 1.6 от IBM.

Установка Xerces C++ 1.3.0 в RH 6.2 из бинарников (без ICU):

  1. скопировать и развернуть архив
  2. установить XERCESCROOT
  3. установить ICU (а сам ICU у вас есть?)
  4. добавить в PATH поддиректорию $XERCESCROOT/bin
  5. добавить в LD_LIBRARY_PATH $XERCESCROOT/lib
  6. сборка примеров: cd samples; ./configure; make (они попадают в bin)
Установка XML4C 3.3.0 в RH6.2 из бинарников
  1. скопировать и развернуть архив
  2. в lib лежат (установить их в /usr/lib)

Xalan C++ 1.0 for linux

Утилита командной строки для XSLT (называется TestXSLT). На C++. Требует разделяемой библиотеки xerces (libxerces-c1_3.so) и xalan (libxalan-c1_0.so). Для интернационализации хочет ICU 1.6 (а так есть UTF-8 и UTF-16). Для сборки своих программ тебуются .hpp из пакетов xerces и xalan.

Установка Xalan C++ 1.0 в RH 6.2 из бинарников (без ICU)(впрочем, исходники в том же пакете):

  1. скопировать и развернуть архив (xerces здесь же)
  2. xml-xalan/c/bin к PATH
  3. xml-xalan/c/lib к LD_LIBRARY_PATH
  4. а еще проще (но неправильно :) переслать libxerces-c1_3.so и libxalan-c1_0.so в /usr/lib, TestXSLT в /usr/local/bin (можно переименовать во что-нибудь посимпатичнее)
TestXSLT

Просмотр в браузере

Для просмотра XML файла в браузере необходимо задать стиль преобразования XML в HTML или XHTML сразу после указания DTD:
<?xml-stylesheet type="text/xsl" href="имя-xsl-файла"?>
@ Карта сайта News Автора!

Bog BOS: XML - eXtensible Markup Language

Последние изменения:
2024.11.22: sysadmin: systemd-journald (централизованное хранение)
2024.11.11: sysadmin: Linux: пространства имён
2024.11.06: sysadmin: настройка TCP/IP в Linux: виртуальный интерфейс и виртуальный мост
2024.10.25: sysadmin: Linux VFS, атрибуты, расширенные атрибуты, ACL



Copyright © 1996-2024 Sergey E. Bogomolov; www.bog.pp.ru