Чем работать с XML - обзор онлайн-сервисов и xml редакторов. Собрать данные из XML файлов в Excel и экспортировать
Microsoft Excel – удобный инструмент для организации и структурирования самых разнообразных данных. Он позволяет обрабатывать информацию разными методами, редактировать массивы данных.
Рассмотрим возможности использования его для формирования и обработки файлов веб-приложений. На конкретном примере изучим основы работы с XML в Excel.
Как создать XML-файл из Excel
XML – стандарт файла для передачи данных в Сети. Excel поддерживает его экспорт и импорт.
Рассмотрим создание XML-файла на примере производственного календаря.
- Сделаем таблицу, по которой нужно создать XML файл в Excel и заполним ее данными.
- Создадим и вставим карту XML с необходимой структурой документа.
- Экспортируем данные таблицы в XML формат.
Сохраняем в XML файл.
Другие способы получения XML-данных (схемы):
- Скачать из базы данных, специализированного бизнес-приложения. Схемы могут предоставляться коммерческими сайтами, службами. Простые варианты находятся в открытом доступе.
- Использовать готовые образцы для проверки карт XML. В образцах – основные элементы, структура XML. Копируете – вставляете в программу «Блокнот» - сохраняете с нужным расширением.
Как сохранить файл Excel в формате XML
Один из вариантов:
- Нажимаем кнопку Office. Выбираем «Сохранить как» - «Другие форматы».
- Назначаем имя. Выбираем место сохранения и тип файла – XML.
Еще варианты:
- Скачать конвертер XLC в XML. Либо найти сервис, с помощью которого можно экспортировать файл онлайн.
- Скачать с официального сайта Microsoft надстройку XML Tools Add-in. Она в бесплатном доступе.
- Открываем новую книгу. Кнопка Office – «Открыть».
Как открыть XML файл в Excel
Жмем ОК. С полученной таблицей можно работать, как с любым файлом Excel.
Как преобразовать файл XML в Excel
Созданную таблицу редактируем и сохраняем уже в формате Excel.
Как собрать данные из XML файлов в Excel
Принцип сбора информации из нескольких XML-файлов такой же, как и принцип преобразования. Когда мы импортируем данные в Excel, одновременно передается карта XML. В эту же схему можно переносить и другие данные.
Каждый новый файл будет привязываться к имеющейся карте. Каждому элементу в структуре таблицы соответствует элемент в карте. Допускается только одна привязка данных.
Чтобы настроить параметры привязки, откройте в меню «Разработчик» инструмент «Свойства карты».
Возможности:
- Каждый новый файл будет проверяться программой Excel на соответствие установленной карте (если поставим галочку напротив этого пункта).
- Данные могут обновляться. Либо новая информация добавится в существующую таблицу (имеет смысл, если нужно собрать данные из похожих файлов).
Это все ручные способы импорта и экспорта файлов.
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 является элемент. Элементы выделяются начальным тегом, таким как
Листинг 1. Пример XML-документа
Имена XML-элементов и атрибутов могут состоять из латинских букв верхнего (A-Z) и нижнего (a-z) регистров, цифр (0-9), некоторых специальных и неанглийских символов, а также трех знаков пунктуации: дефиса, знака подчеркивания и точки. Другие символы в именах не допускаются.
XML чувствителен к регистру. В приведенном примере
Каждый документ XML содержит один и только один корневой элемент. Корневой элемент — это единственный элемент XML-документа, для которого нет родительского элемента. В приведенном выше примере корневым является элемент
Кроме вложенных элементов, что создает отношения родительский-дочерний, XML-элементы могут иметь атрибуты. Это пары имя-значение, присоединенные к начальному тегу элемента. Имена отделяются от значений знаком равенства, =. Значения заключаются в одинарные или двойные кавычки. В листинге 1 элемент
Достоинства XML
Одно из достоинств XML состоит в его относительной простоте. XML-документ можно составить в простом текстовом редакторе или текстовом процессоре, не прибегая к специальным инструментам или ПО. Базовый синтаксис XML состоит из вложенных элементов, некоторые из которых имеют атрибуты и содержание. Обычно элемент начинается открывающим тегом <тег> и заканчивается соответствующим закрывающим тегом тег >. XML чувствителен к регистру и не игнорирует пробелы и табуляции. Он очень похож на HTML, но, в отличие от HTML, позволяет присваивать тегам имена для лучшего описания свох данных. К числу преимуществ XML относится самодокументирование, читабельный для людей и компьютеров формат, поддержка Unicode, что позволяет создавать документы на разных языках, и простые требования к синтаксису и синтаксическому анализу. К сожалению, в РНР5 поддержка UTF-8 сопряжена с проблемами; это один из тех недостатков, которые привели к разработке РНР6.
Недостатки XML
XML многословен и избыточен, что порождает документы большого объема, занимающие много дискового пространства и сетевых ресурсов. Предполагается, что он должен быть читабелен для людей, но трудно представить себе человека, пытающегося прочесть файл XML с 7 млн. узлов. Простейшие синтаксические анализаторы функционально не способны поддерживать широкий набор типов данных; по этой причине редкие или необычные данные, каких бывает много, становятся серьезным источником затруднений.
Правильно построенный XML
XML-документ считается построенным правильно, если в нем соблюдены правила XML-синтаксиса. Неправильно построенный формат в техническом смысле не является XML-документом. Например, такой HTML-тег, как
, в XML неприемлем; соответствующий правильный тег выглядит как
. Корневой элемент можно представить себе как бесконечный шкаф с документами. У вас всего один шкаф, но почти нет ограничений на тип и количество его содержимого. В вашем шкафу помещается бесконечное количество ящиков и папок для документов.
Основы PHP
Большинство читателей этой статьи уже работают с РНР, но, возможно, незнакомы с его историей и эволюцией.
О PHP
Hypertext Preprocessor (PHP) — это не зависящий от платформы язык сценариев, используемый для создания динамических Web-страниц и серверных приложений. Он начинался как Personal Home Page/Form Interpreter (PHP/FI) и обрел новую жизнь в руках Сураски (Suraski) и Гутманса (Gutmans), которые в июне 1998 года выпустили РНР3. Их компания Zend Technologies до сих пор управляет разработкой PHP.
В июле 2004 года вышел PHP5 с Zend Engine II и многими новыми функциями, такими как:
- Поддержка объектно-ориентированного программирования
- Улучшенная поддержка MySQL
- Улучшенная поддержка XML
PHP5 и XML
Поддержка XML присутствовала в РНР с самых ранних версий, но в РНР5 она существенно улучшена. Поддержка XML в РНР4 была ограниченной, в частности, предлагался только включенный по умолчанию парсер на базе SAX, а поддержка DOM не соответствовала стандарту W3C. В РНР5 разработчики PHP XML, можно сказать, изобрели колесо, обеспечив соответствие общепринятым стандартам.
Новое в поддержке XML в версии PHP5
PHP5 содержит полностью переписанные и новые расширения, включая парсер SAX, DOM, SimpleXML, XMLReader, XMLWriter и процессор XSLT. Теперь все эти расширения основаны на libxml2.
Наряду с улучшенной по сравнению с PHP4 поддержкой SAX, в РНР5 реализована поддержка DOM в соответствии со стандартом W3C, а также расширение SimpleXML. По умолчанию включены и SAX, и DOM, и SimpleXML. Тем, кто знаком с DOM по другим языкам, станет проще реализовать аналогичную функциональность в РНР
Чтение, обработка и написание XML в PHP5
SimpleXML, при необходимости в сочетании с DOM, - идеальный выбор для чтения, обработки и составления в РНР5 простых, предсказуемых и относительно компактных документов.
Краткий обзор предпочтительных API
Из множества API, присутствующих в РНР5, DOM - самый знакомый, а на SimpleXML проще всего программировать. В типичных ситуациях, таких как те, что мы здесь рассматриваем, они наиболее эффективны.
Расширение DOM
Document Object Model (DOM) - это принятый W3C стандартный набор объектов для документов HTML и XML, стандартная модель сочетания этих объектов и стандартный интерфейс для доступа к ним и манипуляций с ними. Многие поставщики поддерживают DOM в качестве интерфейса к своим специальным структурам данных и API, благодаря чему модель DOM знакома массе разработчиков. DOM легко освоить и применять, так как его структура в памяти напоминает исходный документ XML. Чтобы передать информацию приложению, DOM создает дерево объектов, которое в точности повторяет дерево элементов файла XML, так что каждый элемент XML служит узлом этого дерева. DOM - это парсер, основанный на древовидной структуре. Поскольку DOM строит дерево всего документа, он потребляет много ресурсов памяти и времени процессора. Поэтому анализ очень крупных документов посредством DOM непрактичен из-за проблем производительности. В контексте данной статьи расширение DOM используется главным образом из-за его способности импортировать формат SimpleXML и выводить XML в формате DOM, или, наоборот, для использования в качестве строковых данных или XML-файла.
SimpleXML
Расширение SimpleXML – это предпочтительный инструмент для синтаксического анализа XML. Для его работы требуется РНР5. Оно взаимодействует с DOM при составлении XML-файлов и имеет встроенную поддержку XPath. SimpleXML лучше всего работает с несложными данными типа записей, такими как XML, передаваемый в виде документа или строки из другой части того же приложения. Если XML-документ не слишком сложный, не слишком глубокий и не содержит смешанного контента, для SimpleXML кодировать проще, чем для DOM, как и предполагает название. К тому же он надежнее при работе с известной структурой документа.
Простые примеры
Ниже приведены простые примеры работы с DOM и SimpleXML на компактных XML-файлах.
DOM в действии
Модель DOM, реализованная в PHP5, - это та же спецификация W3C DOM, с которой вы имеете дело в браузере и с которой работаете посредством JavaScript. Используются те же методы, так что способы кодирования покажутся вам знакомыми. Листинг 2 иллюстрирует использование DOM для создания XML-строки и XML-документа, отформатированных в целях читабельности.
Листинг 2. Применение DOM
$books = $dom->appendChild($dom->createElement("books")); //добавление элементаЭто приводит к созданию выходного файла, приведенного в листинге 3.
Листинг 3. Выходной файл
Листинг 4 импортирует объект SimpleXMLElement в объект DOMElement , иллюстрируя взаимодействие DOM и SimpleXML.
Листинг 4. Взаимодействие, часть 1 - DOM импортирует SimpleXML
Функция из листинга 5 берет узел документа DOM и превращает его в узел SimpleXML. Затем этот новый объект можно использовать в качестве «родного» элемента SimpleXML. В случае любой ошибки возвращается значение FALSE.
Листинг 5. Взаимодействие, часть 2 - SimpleXML импортирует DOM
loadXML("SimpleXML в действии
Расширение SimpleXML – это предпочтительный инструмент для синтаксического анализа XML. Оно взаимодействует с DOM при составлении XML-файлов и имеет встроенную поддержку XPath. Для SimpleXML проще писать код, чем для DOM, как и предполагает его название.
Для тех, кто не знаком с РНР, листинг 6 форматирует тестовый XML-файл как include-файл в целях читабельности.
Листинг 6. В следующих примерах тестовый XML-файл отформатирован как include-файл РНР с именем example.php.
В гипотетическом Ajax-приложении может, например, понадобиться извлечь из XML-документа почтовый индекс и обратиться к базе данных. В листинге 7 из XML-файла предыдущего примера извлекается элемент
Листинг 7. Извлечение узла – как легко его получить?
book->plot; // "Cliff meets Lovely Woman. ..." ?>С другой стороны, может понадобиться извлечь многострочный адрес. Когда у одного родительского элемента несколько экземпляров дочернего элемента, применяется обычная методика итерирования. Эта функциональность показана в листинге 8.
Листинг 8. Извлечение нескольких экземпляров элемента
node, echo a separate"; } ?>
Кроме чтения имен элементов и их значений, SimpleXML может также обращаться к атрибутам элемента. В листинге 9 производится обращение к атрибутам элемента; это делается точно так же, как обращение к элементам массива.
Листинг 9. Демонстрация обращения SimpleXML к атрибутам элемента
Чтобы сравнить элемент или атрибут со строкой или передать его функции, которой требуется строка, нужно преобразовать его в строку при помощи оператора (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
Начиная с версии PHP 5.1.3 SimpleXML дополнен возможностью легко добавлять дочерние элементы и атрибуты. Листинг 12 выводит XML-документ, основанный на исходном, но с добавленным новым персонажем и описанием.
Листинг 12. Добавление дочерних и текстовых узлов с помощью SimpleXML
Заключение
Эта первая статья серии из трех частей посвящена знакомству с 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 -документа
В строке 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 , состоит из сущностей. Сущность – это самая маленькая единица (элемент ). Каждая из сущностей содержит в себе символы.
Они делятся на:
- Символы разметки — теги, комментарии (< тег>, );
- Буквенные символы – из них состоит основное содержимое, заключенное между тегами.
Логическая структура языка представляет собой иерархически вложенные друг в друга элементы. Самый верхний из них называется корневым. Любой из элементов включает в себя открывающийся и закрывающийся тег. И должен закрываться в том корневом для него элементе, в котором был открыт:
Кроме корневого элемента 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).