Чем работать с XML - обзор онлайн-сервисов и xml редакторов. Собрать данные из XML файлов в Excel и экспортировать


Microsoft Excel – удобный инструмент для организации и структурирования самых разнообразных данных. Он позволяет обрабатывать информацию разными методами, редактировать массивы данных.

Рассмотрим возможности использования его для формирования и обработки файлов веб-приложений. На конкретном примере изучим основы работы с XML в Excel.

Как создать XML-файл из Excel

XML – стандарт файла для передачи данных в Сети. Excel поддерживает его экспорт и импорт.

Рассмотрим создание XML-файла на примере производственного календаря.

  1. Сделаем таблицу, по которой нужно создать XML файл в Excel и заполним ее данными.
  2. Создадим и вставим карту XML с необходимой структурой документа.
  3. Экспортируем данные таблицы в XML формат.

Сохраняем в XML файл.

Другие способы получения XML-данных (схемы):

  1. Скачать из базы данных, специализированного бизнес-приложения. Схемы могут предоставляться коммерческими сайтами, службами. Простые варианты находятся в открытом доступе.
  2. Использовать готовые образцы для проверки карт XML. В образцах – основные элементы, структура XML. Копируете – вставляете в программу «Блокнот» - сохраняете с нужным расширением.


Как сохранить файл Excel в формате XML

Один из вариантов:

  1. Нажимаем кнопку Office. Выбираем «Сохранить как» - «Другие форматы».
  2. Назначаем имя. Выбираем место сохранения и тип файла – XML.

Еще варианты:

  1. Скачать конвертер XLC в XML. Либо найти сервис, с помощью которого можно экспортировать файл онлайн.
  2. Скачать с официального сайта Microsoft надстройку XML Tools Add-in. Она в бесплатном доступе.
  3. Открываем новую книгу. Кнопка Office – «Открыть».

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

Жмем ОК. С полученной таблицей можно работать, как с любым файлом Excel.

Как преобразовать файл XML в Excel

Созданную таблицу редактируем и сохраняем уже в формате Excel.

Как собрать данные из XML файлов в Excel

Принцип сбора информации из нескольких XML-файлов такой же, как и принцип преобразования. Когда мы импортируем данные в Excel, одновременно передается карта XML. В эту же схему можно переносить и другие данные.

Каждый новый файл будет привязываться к имеющейся карте. Каждому элементу в структуре таблицы соответствует элемент в карте. Допускается только одна привязка данных.

Чтобы настроить параметры привязки, откройте в меню «Разработчик» инструмент «Свойства карты».


Возможности:

  1. Каждый новый файл будет проверяться программой Excel на соответствие установленной карте (если поставим галочку напротив этого пункта).
  2. Данные могут обновляться. Либо новая информация добавится в существующую таблицу (имеет смысл, если нужно собрать данные из похожих файлов).

Это все ручные способы импорта и экспорта файлов.

XML для PHP-разработчиков

Часть 1. Работа с XML в PHP за 15 минут

PHP5 значительно упрощает работу с XML в PHP

Серия контента:

Значение XML в современной среде разработки приложений трудно переоценить. Тем, кто никогда не работал с XML в РНР или еще не перешел на РНР5, это краткое руководство поможет освоить новую функциональность РНР5, связанную с XML, и оценить, насколько простой может быть работа с XML. Эта первая из трех статей посвящена знакомству с API и демонстрирует, что SimpleXML в сочетании с DOM служит идеальным инструментом для разработчиков, имеющих дело с простыми, предсказуемыми и относительно компактными XML-документами. Именно такими документами оперируют, например, Ajax-приложения при передаче информации о заполнении формы, в такие же документы оформляются ответы API Web-сервисов, таких как weather.com.

Основы XML

Краткое введение в основы XML позволит читателю понять важность этого языка для РНР-разработчика и научиться создавать простые XML-документы.

Сведения об XML

Язык Extensible Markup Language (XML) можно назвать и языком разметки, и форматом хранения текстовых данных. Это подмножество языка Standard Generalized Markup Language (SGML); он предоставляет текстовые средства для описания древовидных структур и их применения к информации. XML служит основой для целого ряда языков и форматов, таких как Really Simple Syndication (RSS), Mozilla XML User Interface Language (XUL), Macromedia Maximum eXperience Markup Language (MXML), Microsoft eXtensible Application Markup Language (XAML) и open source-язык Java XML UI Markup Language (XAMJ).

Структура XML

Базовым блоком данных в XML является элемент. Элементы выделяются начальным тегом, таким как , и конечным тегом, таким как . Каждому начальному тегу должен соответствовать конечный тег. Если для какого-то начального тега отсутствует конечный тег, XML-документ оформлен неправильно, и синтаксический анализатор (парсер) не сможет проанализировать его надлежащим образом. Названия тегов обычно отражают тип элемента. Можно ожидать, что элемент book содержит название книги, например, «Большой американский роман» (см. листинг 1). Текст, содержащийся между тегами, включая пробелы, называется символьными данными.

Листинг 1. Пример XML-документа
Большой американский роман Клифф отличный парень Миловидная Женщина редкая красавица Преданный Пес любит поспать Клифф встречает Миловидную Женщину. Преданный Пес спит, но просыпается, чтобы облаять почтальона. 4 9

Имена XML-элементов и атрибутов могут состоять из латинских букв верхнего (A-Z) и нижнего (a-z) регистров, цифр (0-9), некоторых специальных и неанглийских символов, а также трех знаков пунктуации: дефиса, знака подчеркивания и точки. Другие символы в именах не допускаются.

XML чувствителен к регистру. В приведенном примере и описывают два разных элемента. Оба имени приемлемы. Однако описание двух разных элементов именами и нельзя считать разумным решением ввиду высокой вероятности опечаток.

Каждый документ XML содержит один и только один корневой элемент. Корневой элемент — это единственный элемент XML-документа, для которого нет родительского элемента. В приведенном выше примере корневым является элемент . Большинство XML-документов содержат родительские и дочерние элементы. Элемент имеет один дочерний элемент . У элемента четыре дочерних элемента: , <characters>, <plot>И <success>. У элемента <characters> три дочерних элемента, каждый из которых является элементом <character>. У каждого элемента <character> по два дочерних элемента, <name> и <desc>.</p><p>Кроме вложенных элементов, что создает отношения родительский-дочерний, XML-элементы могут иметь атрибуты. Это пары имя-значение, присоединенные к начальному тегу элемента. Имена отделяются от значений знаком равенства, =. Значения заключаются в одинарные или двойные кавычки. В листинге 1 элемент <success> имеет два атрибута: "bestseller" и "bookclubs". XML-разработчики практикуют <a href="/kak-uznat-na-chto-spros-v-gorode-kak-vybirat-hodovoi-tovar-dlya-svoei-nishi-v/">разные подходы</a> к использованию атрибутов. Большую часть информации, содержащейся в атрибуте, можно поместить в дочерний элемент. Некоторые разработчики настаивают на том, чтобы информация атрибутов состояла не из данных, а из метаданных, то есть сведений о данных. Сами данные должны содержаться в элементах. На самом деле решение о том, использовать ли атрибуты, зависит от природы данных и от того, как они извлекаются из XML.</p><h3>Достоинства XML</h3><p>Одно из достоинств XML состоит в его относительной простоте. XML-документ можно составить в простом <a href="/tekstovyi-redaktor-na-kompyuter-tekstovye-redaktory/">текстовом редакторе</a> или текстовом процессоре, не прибегая к специальным инструментам или ПО. Базовый синтаксис XML состоит из вложенных элементов, некоторые из которых имеют атрибуты и содержание. Обычно элемент начинается открывающим тегом <тег> и заканчивается соответствующим закрывающим тегом </тег >. XML чувствителен к регистру и не игнорирует пробелы и табуляции. Он очень похож на HTML, но, в отличие от HTML, позволяет присваивать тегам имена для <a href="/kitaiskie-smartfony-vysokogo-luchshii-brend-kitaiskih-smartfonov-obzor/">лучшего описания</a> свох данных. К числу преимуществ XML относится самодокументирование, читабельный для людей и компьютеров формат, поддержка Unicode, что позволяет создавать документы на <a href="/kogda-byl-sozdan-assembler-assembler-i-mashinnyi-yazyk-yazyk-programmirovaniya-assembler-yazyk-assemble/">разных языках</a>, и <a href="/mozhno-li-zarabotat-na-instagramme-trebovaniya-k-uspehu-samye-prostye-sposoby/">простые требования</a> к синтаксису и синтаксическому анализу. К сожалению, в РНР5 поддержка UTF-8 сопряжена с проблемами; это один из тех недостатков, которые привели к разработке РНР6.</p><h3>Недостатки XML</h3><p>XML многословен и избыточен, что порождает документы большого объема, занимающие много <a href="/chto-delat-esli-aifon-ne-obnovlyaetsya-oshibka-zagruzki-obnovleniya-vozvrashchenie/">дискового пространства</a> и сетевых ресурсов. Предполагается, что он должен быть читабелен для людей, но трудно представить себе человека, пытающегося прочесть файл XML с 7 млн. узлов. Простейшие <a href="/brauzer-ponyatie-vidy-naznachenie-tipy-sintaksicheskih-analizatorov-kakoi/">синтаксические анализаторы</a> функционально не способны поддерживать широкий набор типов данных; по этой причине редкие или необычные данные, каких бывает много, становятся серьезным источником затруднений.</p><h3>Правильно построенный XML</h3><p>XML-документ считается построенным правильно, если в нем соблюдены правила XML-синтаксиса. Неправильно построенный формат в техническом смысле не является XML-документом. Например, такой HTML-тег, как <br>, в XML неприемлем; соответствующий <a href="/samye-populyarnye-tegi-dlya-vk-pravilnyi-podbor-heshtegov-v/">правильный тег</a> выглядит как <br />. Корневой элемент можно представить себе как бесконечный шкаф с документами. У вас всего один шкаф, но почти нет ограничений на тип и количество его содержимого. В вашем шкафу помещается бесконечное количество ящиков и папок для документов.</p><h2>Основы PHP</h2><p>Большинство читателей этой статьи уже работают с РНР, но, возможно, незнакомы с его историей и эволюцией.</p><h3>О PHP</h3><p>Hypertext Preprocessor (PHP) — это не зависящий от платформы язык сценариев, используемый для создания динамических Web-страниц и серверных приложений. Он начинался как Personal Home Page/Form Interpreter (PHP/FI) и обрел <a href="/chto-zhe-vybrat-ili-vmesto-vyvoda-sozdaem-novuyu-zhizn-novoe/">новую жизнь</a> в руках Сураски (Suraski) и Гутманса (Gutmans), которые в июне 1998 года выпустили РНР3. Их компания Zend Technologies до сих пор управляет разработкой PHP.</p><p>В июле 2004 года вышел PHP5 с Zend Engine II и многими новыми функциями, такими как:</p><ul><li>Поддержка объектно-ориентированного программирования</li><li>Улучшенная поддержка MySQL</li><li>Улучшенная поддержка XML</li> </ul><h3>PHP5 и XML</h3><p>Поддержка XML присутствовала в РНР с самых <a href="/sozdanie-dopolnitelnyh-okon-v-far-registraciya-bolee-rannei-versii-far-manager/">ранних версий</a>, но в РНР5 она существенно улучшена. Поддержка XML в РНР4 была ограниченной, в частности, предлагался только включенный по умолчанию парсер на базе SAX, а поддержка DOM не соответствовала стандарту W3C. В РНР5 разработчики PHP XML, можно сказать, изобрели колесо, обеспечив соответствие общепринятым стандартам.</p><h3>Новое в поддержке XML в версии PHP5</h3><p>PHP5 содержит полностью переписанные и новые расширения, включая парсер SAX, DOM, SimpleXML, XMLReader, XMLWriter и процессор XSLT. Теперь все эти расширения основаны на libxml2.</p><p>Наряду с улучшенной по сравнению с PHP4 поддержкой SAX, в РНР5 реализована поддержка DOM в соответствии со стандартом W3C, а также расширение SimpleXML. По умолчанию включены и SAX, и DOM, и SimpleXML. Тем, кто знаком с DOM по другим языкам, станет проще реализовать аналогичную функциональность в РНР</p><h2>Чтение, обработка и написание XML в PHP5</h2><p>SimpleXML, при необходимости в сочетании с DOM, - идеальный выбор для чтения, обработки и составления в РНР5 простых, предсказуемых и относительно компактных документов.</p><h3>Краткий обзор предпочтительных API</h3><p>Из множества API, присутствующих в РНР5, DOM - самый знакомый, а на SimpleXML проще всего программировать. В <a href="/golosovoi-pomoshchnik-alisa-shutit-mne-eti-anekdoty/">типичных ситуациях</a>, таких как те, что мы здесь рассматриваем, они наиболее эффективны.</p><h3>Расширение DOM</h3><p>Document <a href="/chto-takoe-obektnaya-model-dokumenta-dom-vyrazitelnyi-javascript-document-object-model/">Object Model</a> (DOM) - это принятый W3C <a href="/virtualnyi-emulyator-android-luchshie-emulyatory-android-na-windows-andy---standartnyi/">стандартный набор</a> объектов для документов HTML и XML, стандартная модель сочетания этих объектов и стандартный интерфейс для доступа к ним и манипуляций с ними. Многие поставщики поддерживают DOM в качестве интерфейса к своим специальным структурам данных и API, благодаря чему модель DOM знакома массе разработчиков. DOM легко освоить и применять, так как его структура в памяти напоминает исходный документ XML. Чтобы передать информацию приложению, DOM создает дерево объектов, которое в точности повторяет дерево элементов файла XML, так что каждый элемент XML служит узлом этого дерева. DOM - это парсер, основанный на древовидной структуре. Поскольку DOM строит дерево всего документа, он потребляет много ресурсов памяти и времени процессора. Поэтому анализ очень крупных документов посредством DOM непрактичен из-за проблем производительности. В контексте данной статьи расширение DOM используется главным образом из-за его способности импортировать формат SimpleXML и выводить XML в формате DOM, или, наоборот, для использования в качестве строковых данных или XML-файла.</p><h3>SimpleXML</h3><p>Расширение SimpleXML – это предпочтительный инструмент для синтаксического анализа XML. Для его работы требуется РНР5. Оно взаимодействует с DOM при составлении XML-файлов и имеет встроенную поддержку XPath. SimpleXML лучше всего работает с несложными данными типа записей, такими как XML, передаваемый в виде документа или строки из другой части того же приложения. Если XML-документ не слишком сложный, не слишком глубокий и не содержит смешанного контента, для SimpleXML кодировать проще, чем для DOM, как и предполагает название. К тому же он надежнее при работе с известной структурой документа.</p><h3>Простые примеры</h3><p>Ниже приведены простые примеры работы с DOM и SimpleXML на компактных XML-файлах.</p><h2>DOM в действии</h2><p>Модель DOM, реализованная в PHP5, - это та же спецификация W3C DOM, с которой вы имеете дело в браузере и с которой работаете посредством JavaScript. Используются те же методы, так что способы кодирования покажутся вам знакомыми. Листинг 2 иллюстрирует использование DOM для создания XML-строки и XML-документа, отформатированных в целях читабельности.</p><h5>Листинг 2. Применение DOM</h5><span> <?php //Создает XML-строку и XML-документ при помощи DOM $dom = new DomDocument("1.0"); //добавление корня - <books> $books = $dom->appendChild($dom->createElement("books")); //добавление элемента <book> в <books> $book = $books->appendChild($dom->createElement("book")); // добавление элемента <title> в <book> $title = $book->appendChild($dom->createElement("title")); // добавление элемента текстового узла <title> в <title> $title->appendChild($dom->createTextNode("Great American Novel")); //генерация xml $dom->formatOutput = true; // установка атрибута formatOutput // domDocument в значение true // save XML as string or file $test1 = $dom->saveXML(); // передача строки в test1 $dom->save("test1.xml"); // сохранение файла?> </span><p>Это приводит к созданию выходного файла, приведенного в листинге 3.</p><h5>Листинг 3. Выходной файл</h5><span> <?xml version="1.0"?> <books> <book> <title>Great American Novel

Листинг 4 импортирует объект SimpleXMLElement в объект DOMElement , иллюстрируя взаимодействие DOM и SimpleXML.

Листинг 4. Взаимодействие, часть 1 - DOM импортирует SimpleXML
". "Great American Novel"); if ($sxe === false) { echo "Error while parsing the document"; exit; } $dom_sxe = dom_import_simplexml($sxe); if (!$dom_sxe) { echo "Error while converting XML"; exit; } $dom = new DOMDocument("1.0"); $dom_sxe = $dom->importNode($dom_sxe, true); $dom_sxe = $dom->appendChild($dom_sxe); echo $dom->save("test2.xml"); ?>

Функция из листинга 5 берет узел документа DOM и превращает его в узел SimpleXML. Затем этот новый объект можно использовать в качестве «родного» элемента SimpleXML. В случае любой ошибки возвращается значение FALSE.

Листинг 5. Взаимодействие, часть 2 - SimpleXML импортирует DOM
loadXML("Great American Novel"); if (!$dom) { echo "Error while parsing the document"; exit; } $s = simplexml_import_dom($dom); echo $s->book->title; // Great American Novel ?>

SimpleXML в действии

Расширение SimpleXML – это предпочтительный инструмент для синтаксического анализа XML. Оно взаимодействует с DOM при составлении XML-файлов и имеет встроенную поддержку XPath. Для SimpleXML проще писать код, чем для DOM, как и предполагает его название.

Для тех, кто не знаком с РНР, листинг 6 форматирует тестовый XML-файл как include-файл в целях читабельности.

Листинг 6. В следующих примерах тестовый XML-файл отформатирован как include-файл РНР с именем example.php.
Great American Novel Cliff really great guy Lovely Woman matchless beauty Loyal Dog sleepy 4 9 XML; ?>

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

Листинг 7. Извлечение узла – как легко его получить?
book->plot; // "Cliff meets Lovely Woman. ..." ?>

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

Листинг 8. Извлечение нескольких экземпляров элемента
node, echo a separate . */ foreach ($xml->book as $book) { echo $book->plot, "
"; } ?>

Кроме чтения имен элементов и их значений, SimpleXML может также обращаться к атрибутам элемента. В листинге 9 производится обращение к атрибутам элемента; это делается точно так же, как обращение к элементам массива.

Листинг 9. Демонстрация обращения SimpleXML к атрибутам элемента
Great American Novel Cliff really great guy Lovely Woman matchless beauty Loyal Dog sleepy Cliff meets Lovely Woman. Loyal Dog sleeps, but wakes up to bark at mailman. 4 9 XML; ?> nodes of the first book. * Output the success indications, too. */ foreach ($xml->book->success as $success) { switch((string) $success["type"]) { // Get attributes as element indices case "bestseller": echo $success, " months on bestseller list"; break; case "bookclubs": echo $success, " bookclub listings"; break; } } ?>

Чтобы сравнить элемент или атрибут со строкой или передать его функции, которой требуется строка, нужно преобразовать его в строку при помощи оператора (string). Иначе, по умолчанию, РНР рассматривает элемент как объект (листинг 10).

Листинг 10. Преобразуй в строку, или проиграешь
book->title == "Great American Novel") { print "My favorite book."; } htmlentities((string) $xml->book->title); ?>

Данные в SimpleXML не обязаны быть неизменными. Листинг 11 выводит новый XML-документ, точную копию исходного, за исключением того, что в новом имя Cliff изменено на Big Cliff.

Листинг 11. Изменение текстового узла с помощью SimpleXML
Great American Novel Cliff really great guy Lovely Woman matchless beauty Loyal Dog sleepy Cliff meets Lovely Woman. Loyal Dog sleeps, but wakes up to bark at mailman. 4 9 XML; ?> book->characters->character->name = "Big Cliff"; echo $xml->asXML(); ?>

Начиная с версии PHP 5.1.3 SimpleXML дополнен возможностью легко добавлять дочерние элементы и атрибуты. Листинг 12 выводит XML-документ, основанный на исходном, но с добавленным новым персонажем и описанием.

Листинг 12. Добавление дочерних и текстовых узлов с помощью SimpleXML
Great American Novel Cliff really great guy Lovely Woman matchless beauty Loyal Dog sleepy Yellow Cat aloof Cliff meets Lovely Woman. Loyal Dog sleeps, but wakes up to bark at mailman. 4 9 XML; ?> book->characters->addChild("character"); $character->addChild("name", "Yellow Cat"); $character->addChild("desc", "aloof"); $success = $xml->book->addChild("success", "2"); $success->addAttribute("type", "reprints"); echo $xml->asXML(); ?>

Заключение

Эта первая статья серии из трех частей посвящена знакомству с API и демонстрирует, что SimpleXML, при необходимости в сочетании с DOM, служит идеальным инструментом для разработчиков, имеющих дело с простыми, предсказуемыми и относительно компактными XML-документами. Версия PHP5 значительно расширила возможности программистов в части работы с XML в РНР. Во второй части мы рассмотрим более сложные методы синтаксического анализа XML.

Цель работы: получить практические навыки обработки данных, представленных в формате Extensible Markup Language (XML ).

Задачи работы:

– изучить технологию описания данных XML ;

– изучить основные классы библиотеки FCL , поддерживающие обработку данных, представленных в формате XM L;

– выполнить практическое задание по разработке приложения на языке С#.

Краткие теоретические сведения

Формат XML – это способ хранения данных, представленных в простом текстовом формате, что означает, что эти данные могут быть прочитаны практически любым компьютером. Данное обстоятельство делает этот формат весьма подходящим для использования при передаче данных через Интернет и допускает даже непосредственное прочтение человеком.

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

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

Microsoft . NET Framework использует объектную модель данных XML Document Object Model(DOM ), чтобы обеспечить доступ к данным в XML -документах, и дополнительные классы для чтения, записи и навигации в пределах XML -документа. Эти классы поддерживаются пространством имен System.XML . Пример представления описания каталога книг в модели DOM приведен на рис. 8.1.

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

Katalog

Рис. 8.1. Иерархическая структура документа

Например, каталог книг можно описать так, как показано в листинге 8.1 (номера строк не являются частью документа XML ). Для создания XML -документа в среде Visual Studio . NET следует воспользоваться командой File \ New File и в выпавшем списке шаблонов выбрать имя шаблона XML File .

Листинг 8.1 . Текст XML -документа

    С#2005 для профессионалов

    Кристиан Нейгел

    1560

    800

    2006

    С# в задачах и примерах

    Никита Культин

    240

    350

    2007

В строке 1 данного листинга записано объявление XML , идентифицирующее текст как документ XML .Несмотря на необязательность объявления XML , документ должен включать его в себя для идентификации используемой версии XML , поскольку документ без объявления XML может в дальнейшем рассматриваться как соответствующий последней версии XML, в результате чего могут появиться ошибки. Информационный параметр version указывает версию XML , использованную в документе, параметр encoding – кодировку документа (utf-8 ).

В строке2 записан комментарий, начинающийся с символов . Комментарии можно размещать по всему XML -документу.

В XML -документе данные маркируются с помощью тэгов (элементов ), представляющих собой имена, заключенные в угловые скобки (< > ). Имена тэгов в XML -документе (такие как KATALOG , BOOK , TITLE , AUTHOR ,PAGES ,PRICE , PDATA в листинге 8.1) не являются определениями языка XMLи назначаются при создании документа. Для тэгов можно выбирать любые корректно заданные имена, например INVENTORY вместо KATALOG либо ITEM вместо BOOK . В строке 3 записан корневой тэг – KATALOG , открывающий разметку всего документа. При завершении написания корневого тэга среда автоматически вставляет конечный тэг (строка 18 листинга 8.1), отмечая его символами .

Примечание . Попытка создания более одного корневого элемента в XML -документе является ошибкой.

Внутри корневого элемента может находиться произвольное количество вложенных элементов. В листинге 8.1 XML -документ имеет иерархическую структуру в виде дерева с элементами, вложенными в другие элементы, и с одним элементом верхнего уровня элемент Документ , или Корневой элемент (в нашем примере – KATALOG ), который содержит все другие элементы. Корневой элемент KATALOG включает в себя элементы-потомки BOOK . В свою очередь элемент BOOK состоит из элементов-потомков TITLE , AUTHOR ,PAGES ,PRICE , PDATA .

Корректно сформированные XML-документы. Документ называется корректно сформированным (well-formed), если он соответствует следующему минимальному набору правил для XML -доку-ментов:

XML -документ должен иметь только один корневой элемент – элемент Документ . Все другие элементы должны быть вложены в корневой элемент;

– элементы должны быть вложены упорядоченным образом. Если элемент начинается внутри другого элемента, то он должен и заканчиваться внутри этого элемента;

– каждый элемент должен иметь начальный и конечный тэги. В отличие от языка HTML, в языке XML не разрешается опускать конечный тэг даже в том случае, когда браузер в состоянии определить, где заканчивается элемент;

– название элемента в начальном тэге должно точно соответствовать (с учетом регистра) названию в соответствующем конечном тэге;

– название элемента должно начинаться с буквы или с символа подчеркивания (_ ), после чего могут идти буквы, цифры, а также символы: точка (. ), тире (- ) или подчеркивание.

Это базовые правила корректного формирования XML -документа. Для других понятий языка XML (атрибутов, примитивов, связей) действуют свои правила, которые необходимо соблюдать. Можно сказать, что если документ создан правильно и при его отображении и использовании не возникает никаких ошибок, то это и есть корректно сформированный документ. Если вы ошибетесь в каком-либо тэге HTML -страницы, то браузер просто проигнорирует соответствующий тэг, а ошибка в тэге XML -страницы сделает невозможным ее отображение. При наличии одной из ошибок встроенный в Internet Explorer анализатор (его иногда называют XML -про-цессором, или парсером) определяет ее позицию

Классы библиотеки FCL для чтения XML-файлов. Работу с XML -документами поддерживают следующие классы библиотеки FCL : XmlTextReader , XmlDocument , XPathNavigator .

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

КлассXmlDocument представляет собой реализацию модели DOM . Этот класс удерживает данные в памяти после вызова метода Load () для извлечения их из файла или потока, обеспечивает древовидное представление документа в памяти с возможностями навигации и редактирования, а также позволяет модифицировать данные и сохранять их обратно в файл.

КлассXPathNavigator так же, как и класс XmlDocument , удерживает в памяти XML - документ целиком. Он предоставляет расширенные средства поиска данных, однако не обеспечивает возможности внесения изменений и их сохранения.

Класс XmlTextReader . Рассмотрим простой пример. Разместим на форме элементы richTextBox и button (рис. 8.2). При щелчке на кнопку в элемент richTextBox будет загружаться файл, содержимое которого было представлено в листинге 8.1. Код функции, вызываемой при щелчке на кнопку, показан в листинге 8.2.

Рис. 8.2. Результаты считывания из Xml -документа

Листинг 8.2 . Код обработчика щелчка по кнопке

//Очистка элемента richTextBox 1

richTextBox 1. Clear ();

// Вызов статического метода Create () , возвращающего объект класса

// Файл book.xml находится в том же месте, что и исполняемый файл

// программы

// Метод Read () перемещает на следующий узел Xml -документа

while (rdr.Read())

if (rdr.NodeType == XmlNodeType .Text)

richTextBox1.AppendText(rdr.Value + "\r\n");

Класс XmlReader также может читать данные со строгим контролем типов. Существует несколько методов ReadElementContentAs , выполняющих чтение, среди которых ReadElementContentAsDecimal() ,ReadElementContentAs Int () , ReadElementContentAs Boolean () и др.

В листинге 8.3 показано, как считывать значения в десятичном формате и выполнять над ними математические операции. В рассматриваемом случае цена элемента увеличивается на 25 %. Результаты выполнения этого кода показаны на рис. 8.3.

Рис. 8.3. Результаты считывания из Xml- документа

только названия и цены книг

Листинг 8.3 . Чтение данных со строгим контролем типов

// Очистка элемента richTextBox 1

richTextBox 1. Clear ();

// Создание потока для чтения из файла book . xml

XmlReader rdr = XmlReader.Create("book.xml");

while (rdr.Read())

if (rdr.NodeType == XmlNodeType.Element)

// Проверка имени элемента

if (rdr . Name == " PRICE ")

// Метод ReadElementContentAsDecimal () выполняет

// преобразование содержимого элемента к типу decimal

decimal price = rdr.ReadElementContentAsDecimal();

richTextBox1.AppendText(" Текущая цена = " + price +

"руб\ r \ n ");

// Изменение цены на 25 %

price += price * (decimal).25;

richTextBox1.AppendText(" Новая цена = " + price +

" руб \r\n\r\n");

else if (rdr.Name == "TITLE")

richTextBox1.AppendText(rdr.ReadElementContentAsString() + "\r\n");

Класс XmlDocument. Этот класс и производный от него класс XmlDataDocument используются в библиотеке .NET для представления объектной модели документа DOM .

В отличие от класса XmlReader , класс XmlDocument предла-гает возможности не только чтения, но и записи, а также произвольного доступа к дереву DOM .

Рассмотрим пример, в котором создается объект класса XmlDocument , загружается документ с диска и отображается окно списка с названиями книг (рис. 8.4).

Рис. 8.4. Отображение названий книг в списке.

В классе формы приложения создадим объект класса XmlDocument :

XmlDocument _doc = new XmlDocument();

Код обработчика щелчка по кнопке приведен в листинге 8.4.

_doc.Load("book.xml");

// Получить только те узлы, которые нужны

XmlNodeList nodeLst = _ doc . GetElementsByTagName (" TITLE ");

// Просмотр в цикле класса XmlNodeList

foreach (XmlNode node in nodeLst )

listBox 1. Items . Add (node . InnerText );

Введем в приложение возможность вывода свдений о книге, наз-вание которой выделено в списке, для чего добавим обработчик события listBox 1_ SelectedIndexChanged так, как показано в листинге 8.5.

Листинг 8.5 . Обработчик щелчка по элементу списка

private void listBox1_SelectedIndexChanged(object sender, EventArgs e)

// Создание строки поиска

string srch = "KATALOG/BOOK";

// Поиск дополнительных данных

XmlNode foundNode = _doc.SelectSingleNode(srch);

if (foundNode != null)

MessageBox.Show(foundNode.OuterXml);

MessageBox.Show("Not found");

Результаты работы приложения показаны на рис. 8.5.

Рис. 8.5. Вывод сведений о выделенном элементе списка

С помощью класса XmlDocument такжеможно вставлять узлы в существующий документ, для чего используется метод Create - Element () .

Например, для создания нового элемента BOOK необходимо записать следующий код:

XmlElement newBook = _doc.CreateElement("BOOK");

Создать элементы, вложенные в элемент BOOK , можно с помощью следующего кода:

// Создание нового элемента AUTOR

XmlElement newAuthor = _doc.CreateElement("AUTOR");

newAuthor.InnerText = "C. Байдачный ";

Полный код обработчика щелчка по кнопке приведен в лис-тинге 8.6, результаты его работы показаны на рис. 8.6.

Листинг 8.6 . Обработчик щелчка по кнопке

private void button 1_ Click (object sender , EventArgs e )

_doc.Load("book.xml");

XmlElement newBook = _doc.CreateElement("BOOK");

// Создание нового элемента TITLE

XmlElement newTitle = _doc.CreateElement("TITLE");

newTitle.InnerText = ".NET Framework 2.0";

newBook.AppendChild(newTitle);

// Создание нового элемента AUTOR

XmlElement newAuthor = _doc.CreateElement("AUTOR");

newAuthor.InnerText = "C. Байдачный ";

newBook.AppendChild(newAuthor);

// Создание нового элемента PAGES

XmlElement newpages = _doc.CreateElement("PAGES");

newpages.InnerText = "498";

newBook.AppendChild(newpages);

// Создание нового элемента PRICE

XmlElement newprice = _doc.CreateElement("PRICE");

newprice.InnerText = "590";

newBook.AppendChild(newprice);

// Создание нового элемента PDATA

XmlElement newpdata = _doc.CreateElement("PDATA");

newpdata.InnerText = "2006";

newBook.AppendChild(newpdata);

// Добавление в текущий документ

_doc.DocumentElement.AppendChild(newBook);

// Запись документа на диск

XmlTextWriter tr = new XmlTextWriter("bookEdit.xml", null);

tr.Formatting = Formatting.Indented;

_doc.WriteContentTo(tr);

tr . Close ();

XmlNodeList nodeLst = _ doc . GetElementsByTagName (" TITLE ");

// Просмотр в цикле класса XmlNodeList

foreach (XmlNode node in nodeLst )

listBox 1. Items . Add (node . InnerText );

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

Рис. 8.6. Окно работающего приложения

с добавленным узлом

Класс XPathNavigator . КлассXPathNavigator является частью пространства имен System . Xml . XPath , созданного для увеличения быстродействия. Это пространство обеспечивает только чтение документов, следовательно средства редактирования в нем отсутствуют, а классы построены так, чтобы обеспечить быстрое выполнение на заданном XML -документе циклов и операций выбора в стиле курсора.

Наилучшим способом использования классов из пространства имен System . Xml . XPath является просмотр документа book . xml в цикле.

Разместим на форме элементы listBox и button . Код обра-ботчика щелчка по кнопке приведен в листинге 8.7, результаты выполнения этого кода – на рис. 8.7.

Листинг 8.7 . Обработчик щелчка по кнопке

private void button 1_ Click (object sender , EventArgs e )

// Создание объекта с именем doc класса XPathDocument и передача

// в его конструктор имени XML - файла book.xml

XPathDocument doc = new XPathDocument("book.xml");

// Создание объекта с именем nav класса XPathNavigator на базе объекта

// XPathDocument. Объект nav может использоваться только для чтения

XPathNavigator nav = ((IXPathNavigable)doc). CreateNavigator();

// Создание объекта XPathNodeIterator для узлов каталога

// и его дочерних узлов

XPathNodeIterator iter = nav.Select("/KATALOG/BOOK");

while (iter.MoveNext())

// Метод SelectDescendants() класса XPathNavigator выбирает все

// узлы-потомки текущего узла, соответствующие условиям выбора

XPathNodeIterator newIter =

Структуризация данных – вещь полезная, и пригодится в самый неожиданный момент. Например, если структурировать свое ближайшее будущее, то можно увидеть размер своей зарплаты. И можно решить, с какой отдачей проработать весь этот месяц.

Конечно, фантастика, но для структуризации в программировании был придуман специальный язык (xml ). А для редактирования данных, представленных в этом формате, созданы специализированные xml редакторы:

Что такое XML

Многие знают, что основой любого веб-ресурса является HTML . С помощью языка гипертекста можно очень легко и удобно задавать иерархию всех элементов на веб-странице. Частично он позволяет решать проблему и стилевого оформления. Вся эта иерархия создается (структурируется ) с помощью встроенных тегов и их атрибутов, набор которых хоть и не малый, но все же ограниченный.

Поэтому HTML позволяет решать лишь одну единственную задачу структуризации в интернете: расстановки и создания элементов веб-страницы для ее последующей разметки (создания дизайна ). А как же структурировать остальные данные, передаваемые в бесчисленном количестве между ресурсами во всемирной паутине? Как без ограничений организовать их выборку, поиск и фильтрацию?

Все эти «недочеты » могут быть исправлены с помощью XML . Перед началом обзора редакторов xml давайте более подробно разберемся, что это за язык и какова область его применения в виртуальном пространстве:


Аббревиатура XML в переводе с английского означает «расширяемый язык разметки » (Xtensible Markup Language ). Он стандартизирован и рекомендован к использованию W3C . А это значит, что его применение является наиболее оптимальным и «беспроблемным » способом создания веб-документа.

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

Язык расширяемой разметки обладает следующими положительными сторонами:

  • Является идеальным средством для описания структуры и разметки любого веб-документа;
  • В XML нет ограниченного набора элементов, с помощью которых осуществляется структуризация. Вместо этого пользователь сам задает иерархию и имена всех элементов, опираясь лишь на правила описания языка;
  • XML обладает простым, понятным, а главное расширяемым синтаксисом;
  • Язык построен на основе основных кодировок Юникода;
  • Широко применяется не только для описания обычных веб-страниц, но и легко подключается к коду большинства языков программирования. В том числе и тех, которые используются в веб-программировании (PHP, ASP. NET и другие ).

Синтаксис XML

Каждый документ, написанный на XML , состоит из сущностей. Сущность – это самая маленькая единица (элемент ). Каждая из сущностей содержит в себе символы.

Они делятся на:

  • Символы разметки — теги, комментарии (< тег>, );
  • Буквенные символы – из них состоит основное содержимое, заключенное между тегами.

Логическая структура языка представляет собой иерархически вложенные друг в друга элементы. Самый верхний из них называется корневым. Любой из элементов включает в себя открывающийся и закрывающийся тег. И должен закрываться в том корневом для него элементе, в котором был открыт:

Hello, world!

Кроме корневого элемента XML документ состоит из пролога. Он расположен в самом начале кода. В состав пролога могут входить:

  • Объявления;
  • Инструкции обработки;
  • Комментарии.

Более наглядно основные составляющие XML показаны на следующем скриншоте документа, созданного в простом xml редакторе:


Более подробно с синтаксисом языка можно ознакомиться с помощью технической документации к XML .

Обзор редакторов для XML

  • Microsoft Visual Studio – представляет собой мощную среду разработки, объединившую в себя большое количество инструментов и средств для написания программного кода. В ее состав также входит «навороченный» редактор XML . Кроме всего прочего он поддерживает создание и визуализацию XML схем. К сожалению, в Visual Studio поддержка PHP реализована слабо. Эта среда больше «заточена » под создание веб-приложений с помощью ASP.NET :


  • Adobe Dreamweaver – еще одна мощная среда разработки. Весь ее инструментарий полностью направлен на создание сайтов. Поддерживается синтаксис нескольких языков программирования. В состав Dreamweaver также входит встроенный редактор xml таблиц:


  • XMLSpy XML Editor – мощное средство для работы с различными форматами данных XML. Поддерживается не только простое редактирование данных, схем, подсветка синтаксиса, но и графическая визуализация иерархических связей между элементами:


Визуальный xml редактор доступен в двух редакциях стоимостью 399 и 799 евро. Самый дорогой вариант включает в себя поддержку синтаксиса нескольких языков программирования и отладчик. Более дешевый вариант полностью совместим с наиболее популярными средами разработки (Visual Studio, Eclipse ), и может выступать в качестве их полноценной надстройки:


  • XML Notepad — бесплатный редактор xml . Имеет встроенную подсветку синтаксиса, средство валидации. А также поддержку построения схем. Приложение отличается простым и понятным интерфейсом:


Обзор онлайн-сервисов

  • XML Schema Generator – сервис позволяет из обычного документа XML создать схему (XSD ). Интерфейс сервиса отличается простотой и выполнен в черно-белых тонах. Кроме этого радует полное отсутствие рекламы;
  • xmlvalidation.com – данный ресурс позволяет произвести полную валидацию содержимого XML документа, скопированного в специальное поле или загруженного в виде файла:


  • XSL Transformation – служит для преобразования обычного XML кода с помощью указанных шаблонов стилей XSLT . Также в состав сервиса входит еще несколько десятков полезных для веб-мастера инструментов, в том числе и онлайн-валидатор XML .

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

И XPointer. Широкое распространение XML вызывает необходимость знать инструментальные средства работы с данной технологией и их функциональные возможности. К XML-обработке относятся форматирование, синтаксический анализ, редактирование, проверка корректности и преобразование в другие форматы. Подавляющее большинство средств работы с XML, присутствующих на рынке, предоставляют множество функциональных возможностей. В данной статье исследуются различные категории инструментальных средств для работы с XML и приводятся соответствующие примеры инструментов от различных производителей программного обеспечения.

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

В данной статье рассматриваются следующие категории инструментальных средств для работы с XML:

  • Программы для разработки и проверки XML-карт сайтов.
  • Генераторы RSS-фидов.
  • Генераторы XML-схем.
  • Программы для проверки корректности XML.
  • Программы форматирования XML.
  • Редакторы XML.
  • Инструментальные средства для работы с XML.
  • Инструментальные средства с открытыми исходными кодами для работы с XML.
  • Интегрированные среды разработки XML.
  • Средства сравнения XML
  • Инструментальные средства для работы с XQuery.
  • Инструментальные средства для работы с XPath.

Программа для создания XML-карт сайтов

XML-карта сайта представляет собой список всех URL-адресов Web-сайта. Карта сайта информирует поисковую систему об URL-адресах Web-сайта, доступных для сканирования и включения в базу данных поисковой системы. Большинство программ для создания карт сайтов основаны на Web-технологиях и запрашивают URL-адрес Web-сайта вместе с несколькими параметрами, такими как частота изменений и дата последнего изменения.

Существует несколько генераторов карт сайтов:

  • Google SiteMap Generator автоматически генерирует карту сайта, основываясь на обновлениях и трафике вашего Web-сайта, развернутого на Web-сервере.
  • Gsite Crawler - это Windows-приложение для создания карт сайтов.

Кроме загружаемых инструментальных программ, карты сайтов можно генерировать с помощью различных интерактивных приложений; вот два примера:

  • Sitemaps Builder создает карты сайтов для Google, HTML и текстовых URL.
  • XML Sitemaps создает карты сайтов в форматах XML, ROR, Text или HTML.

Программы проверки корректности XML-карт сайтов

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

Ниже приведен список программ проверки корректности карт сайтов:

  • Automapit sitemap validator проверяет корректность карты сайта, гарантируя ее соответствие критериям поисковых систем.
  • Sitemap XML validator проверяет карту сайта на корректность XML-кода, чтобы вы смогли исправить ошибки до ее отправки в поисковые системы.
  • XML sitemaps validator идентифицирует все проблемы карты для их устранения перед отправкой карты в поисковые системы.
  • Online Merchant sitemap checker проверяет корректность XML-заголовков в файле sitemap.xml.

Генераторы RSS-фидов

Новостные фиды RSS - это отличный способ держать посетителей вашего сайта в курсе последних изменений его содержимого. Генераторы RSS-фидов популярны, например, среди пользователей, которые хотят просматривать заголовки новостных сайтов (например, CNN) или знать о последних спортивных новостях.

Разработчики Web-сайтов могут генерировать RSS-фиды при помощи следующих инструментальных средств:

  • IceRocket RSS builder - программа с простым интерфейсом, позволяющая добавлять темы, ссылки и содержимое с целью создания RSS-фидов для вашего Web-сайта.
  • Feedity создает RSS-фиды для Web-страниц, новостей или товаров.
  • RSSPect настраивает RSS-фиды для Web-сайтов, документов или подкастов.

Генераторы XML-схем

XML-схемы можно генерировать из экземпляра XML.

Доступные инструментальные средства:

  • - программа, запускаемая из командной строки, генерирует XML Schema Definition (XSD) из XML.
  • XMLBeans - программа из проекта Apache, предоставляющая несколько функций, в том числе генерирование схемы при помощи inst2xsd (Instance to Schema Tool).
  • XML for ASP BuildXMLSchema - интерактивный генератор XML-схем.

Программы для проверки корректности XML

Экземпляры XML-кода можно проверять на соответствие их схемам.

Используйте одно из следующих интерактивных инструментальных средств:

  • XMLValidation.com проверяет соответствие XML-документа XML-схеме или DTD, указанным в документе, либо, при отсутствии объявления схемы или DTD, проверяет синтаксис.
  • DecisionSoft.com Schema Validator проверяет корректность одной схемы и экземпляра документа и выводит список ошибок.
  • W3C XML validator - сервис проверки схем с URI пространства имен http://www.w3.org/2001/XMLSchema.

Программы форматирования XML

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

Редакторы XML

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

  • Xerlin XML Editor - Java™-программа, которая создает и проверяет XML-содержимое. Редактор имеет открытый исходный код, поддерживает XSLT и может проверять XML на соответствие DTD и схемам.
  • - еще один XML-редактор с открытыми исходными кодами на языке Java. Поддерживает экспорт содержимого в формат PDF и предварительный просмотр HTML с использованием XSLT; работает на нескольких платформах.
  • XMLFox - бесплатный XML-редактор с программой проверки корректности, позволяющий создавать грамматически правильные XML-документы и схемы. Этот редактор поддерживает и другие операции с XML.

Инструментальные средства для работы с XML

XSLT-преобразования полезны при преобразовании одной формы XML в другую с использованием таблиц стилей. В этом могут помочь многочисленные инструментальные средства; в качестве примеров можно привести Tiger XSLT Mapper и Kernow.

  • Tiger XSLT Mapper - программа для преобразования XML-структур, которую могут легко использовать новички. Она автоматически создает преобразования, которые можно редактировать, используя графический интерфейс, построенный по принципу перетаскивания.
  • - это Java-интерфейс, выполняющий преобразования программным способом. Kernow - это хороший выбор для разработчиков, которым нужно периодически выполнять XSLT-преобразования при помощи визуального интерфейса.

Также полезны несколько интерактивных XSLT-программ:

Разработчики, предпочитающие подключаемые к браузеру плагины, могут использовать следующие полезные плагины для работы с XML:

  • XSL Results Add-on отображает результаты XSLT-преобразования (XSLT 1.0 или XSLT 2.0 through Saxon-B) документа.
  • XML Developer Toolbar добавляет в панель инструментов стандартные инструменты для работы с XML.
  • XML Tree отображает XML-данные в удобном для пользователя виде.
  • XML Viewer - инструмент просмотра XML-документов для Google Chrome.

Инструментальные средства с открытыми исходными кодами для работы с XML

Пользователям, которые не могут купить коммерческие программы для работы с XML, будут полезны инструментальные средства с открытыми исходными кодами. Активная работа сообщества позволила создать очень хорошие программы для работы с XML.

Предоставляет ряд функциональных возможностей для обработки XML-документов:

  • Проверка на соответствие DTD.
  • Автоматическое завершение кода с использованием DTD.
  • Пользовательские шаблоны.
  • Обработка XSLT.
  • Редактирование по частям.

Это XML-редактор, работающий в Eclipse. Среди его возможностей:

  • Поддержка пространства имен.
  • Автоматическое завершение тегов и атрибутов.
  • Проверка корректности XML.

Эти инструментальные средства предоставляют также возможности для работы с Java-элементами:

  • Автоматическое завершение названий классов.
  • Открытие определения класса.

Это Java-программа с открытыми исходными кодами, обладающая следующими функциональными возможностями:

  • Форматирование и завершение кода.
  • XSL-преобразования.
  • Генерирование DTD и схемы.
  • Проверка корректности XML.

Интегрированные среды разработки XML

Интегрированные среды разработки (IDE) для работы с XML выполняют практически все операции, связанные с XML. Имеется ряд IDE с различными функциональными возможностями.

XMLSpy - это XML IDE для создания, редактирования и отладки XML, XML-схем, XSL/XSLT, XQuery, WSDL и SOAP. Дополнительные возможности:

  • Генератор кода.
  • Преобразователь файлов.
  • Отладчик.
  • Профайлер.
  • Поддержка интеграции в Visual Studio.NET и Eclipse IDE.
  • Мастер импорта из базы данных, позволяющий импортировать данные из Microsoft® Access®.

XML Marker - это XML-редактор, использующий синхронизированные табличное дерево (table-tree) и текстовый дисплей для отображения XML-данных в табличном и иерархическом виде. Эта программа может загружать очень большие документы (размером в сотни мегабайт и даже несколько гигабайт). Другие функциональные возможности:

  • Редактор с подсветкой синтаксиса.
  • Сортировка таблиц.
  • Автоматический отступ.
  • Проверка синтаксиса при вводе.

Liquid XML Studio - пакет из нескольких программ для работы с XML. Предоставляет следующие инструментальные средства:

  • Редактор XML-схемы.
  • Генератор кода связывания XML-данных.
  • Редактор WSDL.
  • Редактор XML.
  • Интеграция с Microsoft Visual Studio.
  • Тестовый клиент Web-сервисов.
  • Компоновщик XPath-выражений.
  • Генератор HTML-документации.
  • Редактор и отладчик XSLT.
  • Редактор больших файлов.
  • XML Diff - сравнение XML-файлов.

На рисунке 1 показан редактор Liquid XML с набором панелей для работы с XML-содержимым.

< oXygen /> XML Editor - это полнофункциональная интегрированная среда разработки XML с поддержкой разнообразных операций, связанных с XML. Ее возможности будут полезны опытным пользователям. Перечислим некоторые из них:

  • Интеллектуальный редактор XML.
  • Проверка корректности XML.
  • Поддержка XSL/XSLT.
  • Поддержка XQuery.
  • Поддержка XPath.
  • XML-публикация из одного источника.
  • Поддержка документов Microsoft Office.

На рисунке 2 показан редактор < oXygen /> XML Editor с исходным кодом и древовидным представлением XML-документа. (Увеличенная версия рисунка 2.)

Stylus Studio предлагает следующие функциональные возможности:

  • Профайлеры XSLT и XQuery.
  • Поддержка EDI.
  • Инструментальные средства работы с корпоративными Web-сервисами.
  • XML-конвейер.
  • Взаимодействие XML-схемы с XSLT 2.0 и XQuery 1.0.
  • Средства публикации XML.

XML Notepad от Microsoft помогает разработчикам создавать XML-документы. Эта бесплатная программа содержит инструмент XMLDiff, который можно использовать для сравнения двух XML-файлов. Ее интерфейс прост и удобен в использовании. Программа работает на платформе.Net. Вот некоторые ее возможности:

  • Древовидное представление, синхронизированное с текстовым.
  • Поддержка пространства имен при копировании и перемещении текста.
  • Инкрементный поиск в древовидном и текстовом представлениях.
  • Поддержка перетаскивания при редактировании.
  • Неограниченное количество операций отмены изменений и повтора изменений при редактировании.
  • Поддержка поиска с использованием регулярных выражений и XPath.
  • Мгновенная проверка на соответствие XML-схеме.
  • Технология Intellisense (автодополнение), основанная на ожидаемых элементах, атрибутах и значениях перечисляемых простых типов.
  • Поддержка специализированных редакторов для типов данных date, dateTime, time и других типов, например, color.
  • Встроенный просмотрщик HTML.
  • Поддержка XInclude.

На рисунке 3 показан редактор XML Notepad с древовидным представлением XML-файла и панелью ошибок. (Увеличенная версия рисунка 3.)

Это быстрый XML-редактор с поддержкой проверки корректности. Наличие вкладок позволяет редактировать несколько файлов одновременно. Другие функциональные возможности:

  • Проверка на соответствие DTD/XML Schema/RELAX NG.
  • Поддержка XSLT и XPath.
  • Форматированный вывод на печать и цветовая подсветка синтаксиса.
  • Свертывание и завершение тегов.
  • Импорт и экспорт документов Microsoft Word без потери информации.
  • Поддержка XHTML, XSL, DocBook и Text Encoding Initiative (TEI).

XRay XML Editor - бесплатная интегрированная XML IDE. Эта программа проверяет корректность XML-документа при вводе. Имеет встроенную поддержку стандартов W3C. Также имеет HTML-просмотрщик для предварительного просмотра Web-страниц, созданных с помощью XML. Можно создавать три типа схем, включая XSD, DTD и External Data Representation (XDR). Среди других функциональных возможностей:

  • XSLT-обработка в режиме реального времени.
  • Проверка корректности схемы в режиме реального времени.
  • Интегрированное интерактивное учебное руководство по XML.

XMLSpear - бесплатный XML-редактор, написанный на языке Java и доступный для многих платформ. Обладает расширенными функциональными возможностями, такими как интерактивная проверка на соответствие схеме, расширенная панель XPath и др. XML отображается в трех различных форматах, включая древовидную таблицу, просмотр элементов и просмотр исходного кода. XMLSpear доступен в виде Web-программы на Java или в виде автономного приложения. Дополнительные функциональные возможности:

  • Поддержка XPath и XSLT.
  • Способность генерировать завершенные XML-документы из схемы.
  • Поддержка нескольких форматов кодирования.
  • Интегрированный текстовый и HTML-плагин.
  • Проверка на соответствие схеме или DTD в режиме реального времени.
  • Генерирование схемы из экземпляров XML.
  • Древовидный редактор для работы с узлами.

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

  • Преобразование XML-документов в HTML, PDF, Eclipse и многие другие форматы.
  • Наличие DITA-преобразователя.
  • Поддержка DocBook, JavaDoc, XHTML и встроенных шаблонов для них.
  • Поддержка создания MathML-документов.
  • Редактируемые команды.
  • Интегрированный анализатор XML и механизм XSLT.

ElfData XML Editor - программа для пользователей Mac OS. Эта среда XML IDE имеет поддержку Unicode и может выполнять проверку XML-документов на грамматическую правильность с DTD и без него. Доступны два режима представления: в виде дерева и в виде кода. Поддержка технологии drag-and-drop позволяет перетаскивать на документ XML-элементы. Поиск облегчается благодаря наличию двух режимов: поиск по коду и поиск по дереву. Среди других функциональных возможностей:

  • Совместимость с XML 1.0.
  • Интерфейс пользователя в стиле Macintosh.
  • Подробные сообщения об ошибках с предоставлением помощи в их отладке.
  • Функция "Send to Browser" (отправка в браузер), позволяющая просматривать документ в браузере.
  • Возможность сохранять страницы в виде XHTML с DTD.

XMetaL похож на текстовый процессор. Аналогично большинству XML IDE, он может выполнять проверку корректности XML-документов и поддерживает схемы, DTD и XInclude. Другие функциональные возможности:

  • Проверка орфографии и автоматическое завершение кода.
  • Поддержка вывода в формате Web-справки.
  • Способность преобразовывать XML-документы в PDF, HTML и многие другие форматы.
  • Коннектор XMetal интегрируется с системами управления контентом (CMS) и системами управления версиями, например, SVN.
  • Поддержка Unicode позволяет создавать XML-документы на различных языках.
  • Поддержка DITA (с такими возможностями, как визуализация и ориентированный на темы пользовательский интерфейс) для создания DITA-содержимого.

Средства сравнения XML

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

< oXygen /> XML Diff & Merge может сравнивать файлы, каталоги и ZIP-архивы. После загрузки в программу исходного и целевого документов отображаются выделенные цветом различия; изменения в исходном и целевом файлах можно редактировать. Программа имеет много встроенных алгоритмов сравнения и способна автоматически выбирать алгоритмы на основе содержимого документа и его размера. Программа может выполнять пословное и посимвольное сравнение. При сравнении каталогов и архивов за основу сравнения можно выбрать следующие параметры:

  • Временная отметка.
  • Содержимое.
  • Двоичное сравнение.

Liquid XMLDiff имеет много специфичных для XML функций, например, удаление пробелов, комментариев и директив процессора. Эта программа достаточно функциональна, чтобы спрогнозировать, являются ли элементы новыми, удаленными или перемещенными. Программа доступна также в составе Liquid XML Studio в редакции для дизайнера и разработчика.

ExamXML - это мощное средство визуального сравнения и синхронизации различий между XML-документами. Входным XML для сравнения может быть либо файл, либо поле из базы данных. ExamXML может также сравнивать и сохранять части XML-документа; также можно выполнять импорт или экспорт из документов Microsoft Excel®. ExamXML работает на различных версиях Microsoft Windows®. Другие функциональные возможности:

  • Проверка корректности XML на соответствие DTD и XML-схеме.
  • Нормализация дат и чисел.
  • Поддержка drag-and-drop.
  • XML-документы отображаются в виде дерева.

DeltaXML позволяет искать, сравнивать, соединять и синхронизировать изменения в XML-документах. Поддерживает Java API, что облегчает программное сравнение XML-документов. Может работать с большими файлами. Программа может выдавать дельта-файл с результатами сравнения. Этот файл можно отобразить непосредственно либо использовать XSL; можно обработать этот файл в других XMKL-программах. Программа DeltaXML Sync может сравнивать три XML-документа и визуализировать различия. Кроме функции сравнения XML-документов, имеет несколько инструментов форматирования:

  • Сравнение DeltaXML DITA.
  • Сравнение DeltaXML DocBook.
  • Сравнение DeltaXML ODT.
  • Слияние DeltaXML ODT.

Инструментальные средства для работы с XQuery

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

Редактор XMLSpy XQuery Editor предоставляет подсветку синтаксиса и контекстно-чувствительные меню для XQuery. Его функции автоматического завершения кода облегчают создание XQuery-документов. Он также позволяет разрабатывать XQuery для баз данных, поддерживающих XML. Другие функциональные возможности:

  • Изоляция ошибок.
  • Упрощенная отладка.
  • Улучшенная производительность кода.
  • Улучшенный просмотр текста.

Программа Stylus Studio XQuery Editor имеет интегрированный редактор XQuery с широким набором функциональных возможностей, включая интеллектуальную проверку кода, автоматическое завершение кода, конструкторы элементов, функции, path-выражения и многое другое. Редактор основан на открытой архитектуре XQuery с поддержкой процессора Saxon XQuery. Окно дерева исходного кода XQuery поддерживает технологию drag-and-drop, а также удобные символы и пиктограммы. Дополнительные функциональные возможности:

  • Создание сценариев XQuery.
  • Предварительный просмотр XQuery.
  • Отображение результатов XQuery в XQuery-выражения.

Средства разработки XQuery для Eclipse помогают создавать, отлаживать и выполнять XQuery в среде Eclipse. Эти средства предоставляют также:

  • Поддержку обновлений XQuery и расширений функций работы со сценариями.
  • Завершение кода и шаблоны кода.
  • Проверку семантики и быстрое исправление.
  • Проверку корректности при вводе.

Инструментальные средства для работы с XPath

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

Программа SketchPath - это XPath-редактор и средство анализа и тестирования XML. Она предоставляет IDE для разработки и тестирования XPath-выражений с XML-документами. Программа использует.NET Framework для работы с XPath 1.0 и Saxon.NET для XPath 2.0. Другие функциональные возможности:

  • Использование XPath-переменных в выражениях.
  • Помощник по функциям XPath.
  • Встроенный пошаговый трассировщик и отладчик.
  • Цветовая подсветка синтаксиса для выражений.

XPath Visualizer - это бесплатная программа Microsoft Windows, выполняющая XPath-запросы к XML-документам и визуализирующая результаты. Входной информацией может быть файл в файловой системе или URL-адрес; также можно скопировать содержимое файла непосредственно в программу в виде текста. В программе можно вводить полные XPath-запросы. Другие функциональные возможности:

  • Автоматическое обнаружение и отображение пространств имен XML.
  • Проверка корректности XPath-запросов.
  • Автоматическое добавление пространства имен XML по умолчанию в выражение запроса и возможность удалить пространство имен XML из любого документа.

Доступны также Web-программы для работы с XPath, например:

  • XPath Query Expression Tool (XMLME.com).
  • XSLT Tryit Editor (W3Schools.com).






2024 © gtavrl.ru.