Как редактировать xml файл

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

Использование текстовых редакторов

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

Блокнот Windows и его аналоги

В составе Windows изначально есть программа, которая умеет работать с любым текстом – Блокнот. Найти её можно в списке стандартных приложений в меню «Пуск». Вместе с ним предустанавливается еще один текстовый редактор – WordPad. Его также можно использовать для просмотра документов с расширением XML.

Если щелкнуть по XML-файлу правой кнопкой, то сразу под пунктом «Открыть» будет строка «Изменить». При нажатии на неё содержимое документа отобразится в Блокноте. Если так открыть файл не получается, или вы хотите использовать для просмотра WordPad, раскройте меню «Открыть с помощью».

Для чтения и редактирования XML-документов можно использовать и блокноты от сторонних разработчиков: например, NotePad++. В нем реализована подсветка синтаксиса, что может показаться удобным при редактировании файла.

Пакет Microsoft Office

Вместо Блокнота, WordPad и других подобных программ можно использовать приложения из пакета Microsoft Office – Word и Excel.

  1. Запустите Word.
  2. Раскройте главное меню, нажмите «Открыть».
  3. Укажите путь к XML-документу.

Минус Word в том, что в нем тяжело редактировать XML. Поэтому если вы хотите изменить какие-то данные, то лучше использовать Excel.

  1. Запустите Excel.
  2. Раскройте главное меню, нажмите «Открыть».
  3. Выберите XML-документ.
  4. Укажите на необходимость открыть его как XML-таблицу.

Если вместо пакета приложений Microsoft Office на компьютере установлена библиотека приложений OpenOffice, то ничего страшного: открыть XML можно через OpenOffice Calc, аналог Excel.

Редакторы XML

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

  • XML Editor от Oxygen
  • XML Marker
  • Xsemmel
  • EditiX Lite Version
  • XMLSpear

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

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

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

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

Браузеры

Все современные браузеры поддерживают чтение формата XML. Однако нужно понимать, что раз в документе нет сведений о том, как отображать данные, веб-обозреватели показывают их «как есть». Чтобы использовать для открытия браузер (на примере Chrome):

  1. Щелкните правой кнопкой по XML-файлу. Выберите «Открыть с помощью».
  2. Если веб-обозревателя нет в списке приложений, которые можно использовать для просмотра файла, нажмите «Выбрать программу».
  3. Если в появившемся окне тоже не будет обозревателя, кликните по кнопке «Обзор».
  4. Пройдите к исполняемому файлу обозревателя в папке Program Files (Chrome по умолчанию устанавливается в этот каталог, но если вы меняли место инсталляции, то используйте другой путь).
  5. Выберите chrome.exe и нажмите «ОК».

Аналогичным образом запуск выполняется через другие браузеры. В обозревателе откроется новая вкладка, внутри которой отобразится содержимое документа XML.

В Mozilla Forefox можно открыть файл другим способом:

  1. Щелкните правой кнопкой по верхней панели. Отметьте пункт «Панель меню».
  2. Раскройте раздел «Файл». Нажмите «Открыть файл».
  3. Найдите документ XML через проводник и нажмите «Открыть».

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

Онлайн-сервис

Просмотреть и отредактировать XML-файл можно на онлайн-сервисе xmlgrid.net. Порядок работы такой:

  1. Откройте страничку онлайн-редактора, нажмите «Open File».
  2. Щелкните по кнопке «Выберите файл» и укажите путь к документу. Нажмите «Submit».

На странице отобразится содержимое документа. Вы можете его просматривать и редактировать прямо в окне браузера. Есть и другие онлайн-сервисы — например, CodeBeautify, XML Editor от TutorialsPoint. Так что файл XML при любом раскладе будет прочитан и отредактирован, если у пользователя возникнет такое желание.

Записав вчера видео о выгрузке отчета РСВ-1, я вспомнил еще об одной детали, о которой стоит рассказать в связи с этой темой.

Не секрет, что номер файла, который формируется при выгрузке РСВ-1 из Бухгалтерии или УСН 7.7 при каждой новой выгрузке увеличивается на «1»:

И если номера пачек персонифицированного отчета, например, «4» и «5», то хотелось бы, чтобы номер файла РСВ-1 был бы «6». Как это сделать? Дело в том, что мало просто переименовать файл исправив номер в имени файла. Ведь номер файла прописан и в самом файле. Это можно легко проверить: если кликнуть по файлу с расширением xml он откроется для просмотра программой Explorer (или какой-то другой, в зависимости от настроек вашей операционной системы):

Итак, вначале исправляем имя файла. В нашем случае заменяем «21» на «06». А для исправления содержимого — воспользуемся программой «Блокнот», который есть на любом компьютере. Дело в том, что файл «xml» это простой текстовый файл, который легко исправить блокнотом. Кликаем правой клавишей мышки по файлу и в открывшемся контекстном меню выбираем «Открыть с помощью» и из появившегося списка программ выбираем «блокнот».

Если в перечне программ блокнота нет, то выбираем пункт «Выбрать программу»:

И в появившемся окне «Выбор программы» выбираем блокнот и нажимаем «ОК».

Теперь в блокноте меняем номер в названии файла (например, «21» на «06») и закрываем блокнот с сохранение. Вот и все. Можно сдавать в ПФР 🙂

В заключении хочу отметить, что описанный способ применим для небольших изменений в небольших файлах. Если вам приходится часто редактировать xml файлы — найдите какой-нибудь специальный редактор с подсветкой синтаксиса и поддержкой юникода. Это сильно уменьшит вероятность возможных ошибок.

XML используется повсюду от веб-служб, баз данных, конфигурационных файлов, до офисных документов. Эта статья познакомит вас с инструментальной поддержкой предлагаемой Visual Studio 2008, которая облегчает работу с XML. В статье рассматривается редактирование XML файлов, работа со схемами XML, отладка стилевых таблиц XSLT и расширение Visual Studio при помощи написания собственных XML дизайнеров.
Когда вы открываете XML файл в Visual Studio 2008 (например .xml, .xsd, .xslt, .svg или .config), вы запускаете встроенный редактор XML. XML редактор поставляется с полным набором функций который можно ожидать от редактора Visual Studio, включая IntelliSense, раскраску кода, подсветку скобок, сворачивание/разворачиваине и форматирование кода. Он предоставляет полную проверку синтаксиса XML 1.0, завершение тэгов, также как и поддержку схемы XML с валидацией в реальном времени.
Редактирование XML файлов
Нужно признать, что ручное редактирование XML-файлов может быть очень утомительным и отнимать много времени. Чтобы помочь в этом XML редактор Visual Studio 2008 поставляется с большим количеством функций для улучшения производительности. Одной из таких функций является расширяемая библиотека фрагментов XML кода — XML файлов которые содержат конфигурируемые участки кода, которые выступают в роли шаблонов для использования во время редактирования документа. С Visual Studio устанавливается много файлов фрагментов XML кода, которые помогают разработчикам при написании схем XML и стилевых страниц XSLT. Чтобы вызвать фрагмент во время редактирования XML-файла, выберите «Insert Snippet» («Вставить Фрагмент») из меню «Edit > IntelliSense» («Редактировать > IntelliSense»). Как только вы вставили фрагмент, вы можете перемещаться между подсвеченными полями, которые можно изменять клавишей TAB, чтобы вводить данные. На Рисунке 1 показан пример вставки фрагмента.
Рисунок 1: Вызов фрагмента XML кода в Visual Studio 2008.
Вы также можете записывать ваши собственные фрагменты. Если вы хотите создать простой фрагмент, выполните следующие шаги:
Создайте XML файл и наберите в нем:
<snippet
Нажмите ESCAPE, чтобы закрыть окно IntelliSense.
Нажмите TAB.
Введите значение.
Нажмите ENTER для завершения.
Для более подробной информации Я рекомендую публикацию в блоге редактор Visual Studio
«Code Snippet — Schema Description».
Что вы будете делать, когда нету готовых фрагментов XML кода, а вам нужно создать XML файл основанный на существующей схеме? Редактор XML предлагает широкий диапазон возможностей при помощи которых вы можете ассоциировать ваши XML документы с XML схемами. IntelliSense основанные на схеме, валидацию в режиме реально времени, а также отчет об ошибках это всего несколько из них. В дополнение к названному, XML редактор может динамически генерировать фрагменты кода основанные на существующей схеме. После того как вы предоставили имя элемента который нужно добавить XML редактор может проанализировать схему на требующуюся информацию, сгенерировать фрагмент кода и вставить его для вас. Чтобы вызвать функции динамического построения фрагментов XML кода все что вам нужно сделать, набрать имя элемента также как это показано в следующем примере:
<element_name
и нажмите клавишу TAB. XML редактор создаст фрагмент кода, который будет выглядеть очень похоже с тем, что уже было показано на Рисунке 1 за исключением того, что вам ничего не нужно будет делать заранее. Это очень мощная функция, особенно, когда вам нужно создать документы с большими моделями содержимого.
По умолчанию XML редактор генерирует только требующееся содержимое, но это поведение может быть переопределено при помощи аннотаций в XML схемах. Больше информации вы найдете в MSDN под заголовком, «How to: Generate an XML Snippet From an XML Schema».
Кеш схемы и каталоги Схем
Для продвинутых пользователей XML редактор предлагает такие функций как кеш схемы каталоги файлов схем. Кеш схемы это папка которая содержит множество хорошо известных W3C схем, также как и много схем конкретно созданных Microsoft или связанных с их технологиями. Она служит как репозиторий широко используемых схем, которые обычно не меняются. Вы найдете расположение схем по умолчанию в %vsinstalldir%\xml\schemas, где «%vsinstalldir%» это переменная представляющая расположение в которое установлена Visual Studio. Когда вы объявляете одно из пространств имен определенных этими схемами в ваших XML файлах, редактор будет автоматически ассоциировать соответствующие схемы из расположения кеша и быстро предоставлять IntelliSense и валидацию для этой схемы.
Каталог схем это XML файлы размещающиеся в директории кеша схем (файл catalog.xml по умолчанию). Они дают продвинутым пользователям более точный контроль над различными пространствами имен, которые они возможно будут использовать. Например, вы можете ассоциировать определенные пространства имен с внешними источниками:
<Schema
href=»mylocation/myschema.xsd»
targetNamespace=»http://myschema»/>
Вы также можете использовать файлы каталогов для создания ассоциаций между файлами схемы и расширениями файлов вам может быть это иногда полезно, когда схема не имеет targetNamespace:
<Association
extension=»config»
schema=»xml/schemas/dotNetConfig.xsd»/>
Нововведение в Visual Studio 2008, вы также можете добавлять условия:
<Association
extension=»config»
schema=»xml/schemas/dotNetConfig30.xsd»
condition=»%TargetFrameworkVersion% = 3.0″ />
Это условие означает, что схема dotNetConfig30.xsd должна быть ассоциирована только когда текущий проект использует .NET Framework версии 3.0.
Наконец, вы можете создать цепочку ссылаясь из одного файла каталога на другой:
<Catalog href=»http://mycompany/catalog.xml»/>
Работа с большими файлами
Другая важная функция редактирования которую я хотел бы отметить это поддержка редактором XML больших файлов. Хотя вы и могли работать с большими файлами в предыдущих версиях, Visual Studio 2008 поддерживает инкрементальный анализ XML документов. Теперь, если вы работаете с файлом размером 10 Мб, вам не нужно ждать пока Visual Studio проанализирует файл целиком каждый раз как вы внесли изменения. XML редактор изолирует правки и переанализирует только те части которые требуется, предлагая таким образом лучшую производительность и отклик.
Я описал лишь несколько интересных функций XML редактора, но очевидно, нельзя рассмотреть здесь все из них. Таблица 1 показывает некоторые из функций которые доступны пользователям Visual Studio.

Функция Поддержка в Visual Studio 2008
Автозавершение X
Подсветка синтаксиса X
Сворачивание/Разворачивание кода X
IntelliSense X
Расширяемая библиотека фрагментов кода X
Динамические фрагменты кода X
Переход к определению (из XML к XSD) X
Навигация назад/вперед X
Поддержка проекта и профиля пользователя X
Валидация в режиме реального времени X
Полная поддержка XSD X
Поддержка пространств имен X
Поддержка DTD X
Генерация XSD по XML X
Конвертация DTD в XSD X
Поддержка Юникода X
Поддержка больших файлов (10 Мб+) X

Отладка стилевых таблиц XSLT
XSLT является стандартным языком трансформаций утвержденным W3C, который очень популярен среди большой группы разработчиков. Редакция Visual Studio Professional предоставляет поддержку редактирования и отладки стилевых таблиц XSLT. Редактирование файлов XSLT подобно редактированию XML файлов. Когда речь заходит об отладке XSLT, Visual Studio поддерживает два главных сценария:
Отладка отдельной трансформации, которая полезна, когда вашим изначальным интересом является документ на входе, собственно трансформация и документ на выходе.
Интегрированная в CLR отладка, которая полезна для отладки трансформаций в контексте вашего CLR приложения.
Отладка отдельных трансформаций
Рисунок 2 демонстрирует среду отладки, в момент когда вы работаете с XSLT трансформациями. В конфигурации по умолчанию, вы можете видеть XSLT файл и вкладки видов ввода документа и вывода документа. Вы также можете сконфигурировать Visual Studio, чтобы одновременно отображались все три документа. Когда вы проходите через код трансформации, вы можете видеть входящие данные, трансформацию которая обрабатывает этот ввод и генерацию выходного файла.
Рисунок 2: Отладка отдельных XSLT трансформаций.
Если вы используете среду отладки C# или Visual Basic вы заметите, что отладка XSLT выглядит очень похоже на отладку других программ использующих язык CLR. Все способы управления и комбинации клавиш остаются такими же. На Рисунке 2 вы также можете видеть окно Locals (Локальные переменные), в котором могут отображаться скрытые переменные XSLT (self, position, и last), точно также как и переменные которые определены в вашем шаблоне. Также вы можете видеть окно стека вызова, которое вы можете использовать, чтобы перемещаться к различным шаблонам XSLT вверху и внизу стека. Также вы можете использовать отладчик XSLT для установки точек останова и в коде XSLT и в XML документах.
CLR-интегрированная отладка
Хотя отладка отдельных трансформаций полезна, иногда вам нужно отлаживать XSLT как часть вашего приложения на C# или Visual Basic. Отладчик XSLT, который тесно интегрирован с другими отладчиками CLR позволяет вам бесшовно переходить из C# к XSLT, а затем к Visual Basic во время отладки приложения. Следующий пример показывает фрагмент кода C# который использует класс XslCompiledTransform для инициализации XSLT трансформации:
XslCompiledTransform xsltcmd =
new XslCompiledTransform(true);

xsltcmd.Load(XSLTFile);
XmlUrlResolver resolver = new XmlUrlResolver();
XmlWriter writer = XmlWriter.Create(OutputFile);
xsltcmd.Transform(XMLFile, writer);
* This source code was highlighted with Source Code Highlighter.
Если вы установите точку останова на вызове метода и пройдете в него, отладчик покажет вам стилевую таблицу XSLT (Рисунок 3). Все функции описанные в разделе отладки отдельной таблицы стилей также применимы здесь. Единственным исключением является возможность устанавливать точки останова в файлах данных. Эта функция не доступна, когда вы переходите из в XSLT из другой программы на CLR. Все остальное будет вести себя точно также как описано в выше.
Рисунок 3: Отладка XSLT трансформации из приложения C#.
Таблица 2 представляет сводку различных функций доступных во время отладки XSLT трансформаций.
Расширение инструментов XML
XML редактор предоставляет хорошую основ для разработчиков, чтобы создавать пользовательские дизайнеры поверх него. Рисунок 4 как это было сделано в предыдущей версии Visual Studio (Visual Studio 2005). Разработчики могли построить расширение поверх XML Editor через общий доступ к буферу. Они должны били создавать пользовательские дизайнеры путем предоставления общего доступа к буферу IVsTextLines и анализировать XML используя System.Xml.XmlReader или XmlDocument. Don Demsak использует этот способ, когда создает XPathmania и дополнения XPath к Visual Studio (для дополнительной информации об XPathmania, см http://www.donxml.com). Однако, так как интеграция происходит на уровне буфера, этот способ создает много больших правок буфера. В дополнение к этому, он имеет некоторые ограничения потому что анализатор System.Xml принимает только валидный XML в то время как дизайнеры, по определению, должны работать с не валидными файлами.
Рисунок 4: Старый способ создания пользовательских XML дизайнеров поверх XML редактора.
С другой стороны в XML редакторе есть свой собственный анализатор с восстановлением после ошибок. Она также создает свое собственное дерево анализа представляющее содержимое буфера. В Visual Studio 2008, Microsoft открыла это дерево LINQ to XML сторонним разработчикам. Новая архитектура показана на Рисунке 5. Новое API позволяет разработчикам создавать пользовательские виды поверх дерева анализа XML редактора, предоставляющие им логику восстановления после ошибок XML редактора и дерево анализа LINQ to XML с транзакциями по обновлению, результаты выполнения которых появляются в буфере интегрированным Visual Studio UndoManager. Эти изменения облегчают разработчикам создание XML инструментов поверх Visual Studio 2008.