Введение
XML-редактор – это редактор языка разметки с расширенными функциями, облегчающими редактирование XML. Это можно сделать и в обычном текстовом редакторе, где весь код виден, но XML-редакторы предоставляют дополнительные возможности, такие как автозавершение тегов, меню и кнопки для часто выполняемых операций при редактировании XML, основанные на данных из определения типа документа (DTD) или структуры XML-дерева. Существуют также графические XML-редакторы, которые скрывают код и представляют содержимое пользователю в более удобном формате, приближенном к отображаемой версии или формам редактирования. Это особенно полезно, когда людям, не владеющим XML-кодом, необходимо вводить данные в XML-документы, например, табели учета рабочего времени и отчеты о расходах. И даже если пользователь хорошо знаком с XML, использование таких редакторов, которые автоматически контролируют синтаксис, часто оказывается более быстрым и удобным.
Функциональность, не связанная с выделением синтаксиса
Редактор XML предоставляет функциональность, выходящую за рамки синтаксической подсветки, предлагаемой многими текстовыми редакторами и редакторами исходного кода общего назначения, осуществляя проверку XML-документа на соответствие XML-схеме или XML DTD, причём некоторые делают это в режиме реального времени по мере редактирования. Другие особенности редактора, разработанного специально для работы с XML, могут включать автодополнение элементов и автоматическое добавление закрывающего тега при вводе открывающего. Эти функции помогают предотвратить опечатки и другие ошибки в коде XML. Некоторые XML-редакторы позволяют выполнять XSLT-преобразование или серию преобразований над документом. Более крупные XML-пакеты могут даже предлагать функции отладки XSLT и процессоры XSL FO для генерации PDF-файлов из документов. <?xml version="1.0" encoding="utf-8"?>
Графические редакторы
Графические редакторы, основанные на графических интерфейсах, могут быть проще в использовании для некоторых людей, чем текстовые редакторы, и могут не требовать знания синтаксиса XML. Их часто называют WYSIWYG ("Что вы видите, то и получаете") редакторами, но не все они являются WYSIWYG: графические XML-редакторы могут быть WYSIWYG, когда они пытаются отобразить окончательное отображение, или WYSIWYM ("Что вы видите, то и подразумеваете"), когда они пытаются отобразить фактический смысл элементов XML. Если они не являются WYSIWYG, они не отображают графический конечный результат документа, а вместо этого фокусируются на передаче смысла текста. Они используют DTD или XML-схемы и/или конфигурационные файлы для сопоставления XML-элементов с графическими компонентами. Такие редакторы, как правило, более полезны для XML-языков, предназначенных для данных, чем для хранения документов. Документы, как правило, имеют довольно свободную структуру, что часто противоречит обычно жесткой природе многих графических редакторов. В приведенном выше примере редактор использует конфигурационный файл, чтобы знать, что элемент TABLE представляет таблицу, элемент TR – строку таблицы, а элемент TD – ячейку таблицы. Он использует эту информацию для отображения таблицы на основе этой структурирующей информации, чтобы облегчить редактирование. Информация из схем и конфигурационных файлов также может использоваться для предотвращения создания пользователями недействительных документов. Например, в текстовом редакторе можно создать строку с чрезмерным количеством ячеек в таблице, в то время как это было бы невозможно с помощью данного графического интерфейса.
Редакторы WYSIWYG
WYSIWYG-редакторы позволяют пользователям редактировать файлы непосредственно с отображением тегов в графическом виде, а не в виде чистого XML-кода. Часто WYSIWYG-редакторы пытаются эмулировать результат применения преобразования или CSS-стиля. Такая эмуляция может быть как возможной, так и невозможной, в зависимости от преобразования XML в конечный результат. Неосторожное использование WYSIWYG-редактора может привести к созданию документов, лишенных внутренней семантики конкретного XML-языка. Это происходит, если пользователь сосредоточен на достижении определенного визуального оформления, а не использует WYSIWYG для упрощения редактирования. Например, при создании веб-страницы можно использовать элемент H2 (заголовок второго уровня) вместо H1 (заголовок первого уровня) только потому, что он выглядит меньше в текущем редакторе WYSIWYG. Такой автор делает выбор, основываясь на видимом визуальном представлении, в то время как посетитель веб-страницы может увидеть совершенно другое отображение в своем браузере. Однако, если автор понимает основное значение документа и не принимает решения, основываясь на точном внешнем виде в редакторе WYSIWYG, такой редактор может быть полезен. Как правило, гораздо легче читать документ, отображаемый в каком-либо виде, чем сырой XML-код. Кроме того, редактирование может быть более интуитивным, поскольку WYSIWYG-редактор может использовать инструменты, аналогичные многим текстовым процессорам. Некоторые WYSIWYG-редакторы даже позволяют пользователю использовать DTD или схему и определять собственный пользовательский интерфейс для редактирования. Обычно WYSIWYG-редакторы поддерживают CSS, но не XSLT, поскольку XSLT-преобразования могут быть очень сложными, и угадать, что имел в виду пользователь при изменении результата, может быть невозможно. WYSIWYG-редакторы, поддерживающие XSLT, такие как Syntext Serna, применяют изменения непосредственно к исходному XML, обновляя отображение путем повторного запуска XSLT при каждом изменении. В приведенном выше примере таблица стилей используется для окрашивания ячеек таблицы определенным образом. Например, четные строки имеют другой цвет фона, чем нечетные, чтобы облегчить чтение.