Проверка xml по xsd схеме в notepad

Обновлено: 04.07.2024

Хотите улучшить этот вопрос? Обновите вопрос, чтобы он соответствовал теме переполнения стека.

Закрыто 4 года назад .

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

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

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

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

Я понимаю, откуда взялись неконструктивные. Честно говоря, хотя это великий вопрос, и споры / аргументы иногда в конечном итоге превращаются в отличные ответы это как раз тот случай, когда администраторы контрпродуктивны Возможно, стоит взглянуть на подобный вопрос в контексте инструмента Maven .

После некоторого исследования, я думаю, что лучший ответ - Xerces , поскольку он реализует весь XSD, является кроссплатформенным и широко используется. Я создал небольшой проект Java на github для проверки из командной строки с использованием анализатора JRE по умолчанию, обычно это Xerces. Это может быть использовано в Windows / Mac / Linux.

Существует также версия Xerces для C ++, если вы предпочитаете ее использовать. Утилита StdInParse может быть использована для вызова из командной строки. Кроме того, комментарий ниже указывает на эту более полную утилиту обертки .

Вы также можете использовать xmllint, который является частью libxml . Возможно, вы уже установили его. Пример использования:

Одна из проблем заключается в том, что libxml не реализует всю спецификацию, поэтому вы можете столкнуться с проблемами :(

В качестве альтернативы, если вы работаете в Windows, вы можете использовать msxml , но вам понадобится какая-то оболочка для ее вызова, например GUI, описанный в этой статье DDJ . Тем не менее, кажется, что большинство людей в Windows используют XML-редактор, такой как Notepad ++ (как описано в ответе Нейта ) или XML Notepad 2007, как предложено SteveC (есть также несколько коммерческих редакторов, которые я не буду здесь упоминать).

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

  • Open with Desktop
  • View raw
  • Copy raw contents Copy raw contents Loading

Copy raw contents

Copy raw contents

V. Проверка XML-файла по XSD-схеме

Проверять файл по XSD-схеме целесообрано в исключительных случаях, например, если скрипт xml-healer.py не справился с исправлением файла. Подробнее в главе :ref:`xml-healer` .

XMLPad уступает по удобству и возможностям MS Visual Studio, но если вы не являетесь программистом и у вас не установлена MS Visual Studio, лучше воспользоваться XMLPad.

Проверка по XSD-схеме в XMLPad

  1. Откройте XML-файл, который требуется проверить в XMLPad File > Open.


  1. Чтобы проверить файл по заданной XSD-схеме, его надо с ней ассоциировать. Перейдите в меню XML > Assign Schema/DTD.


  1. Выберите W3C Schema и нажмите Browse, затем выберите XSD-схему для проверки.



  1. После того, как XSD-схема ассоциирована, нажмите F7 или XML > Validate, чтобы проверить файл. В нижней части окна будут выведены ошибки, нажав на которые можно подсветить строку, в которой они находятся.


Для удобства отображения можно включить переносы строк Edit > Word Wrap.

Проверка по XSD-схеме в MS Visual Studio

  1. Откройте XML-файл, который требуется проверить в MS Visual Studio Файл > Открыть > Файл.


  1. Чтобы проверить файл по заданной XSD-схеме, его надо с ней ассоциировать. Перейдите в меню XML-код > Схемы. .



Проверка на соответсвие XSD-схеме будет осуществляться автоматически на лету. Внизу в окне Списка ошибок будет отображаться список ошибок. При нажатии на ошибку, она будет подсвечена в редакторе.

Добавить окно Списка ошибок можно через Вид > Списка ошибок.

Оригинальная версия продукта: Visual Basic
Исходный номер КБ: 315533

Аннотация

Документы языка разметки (XML) содержат элементы и атрибуты и предоставляют гибкий и мощный способ обмена данными между приложениями и организациями. Чтобы указать допустимую структуру и содержимое документа XML, можно написать определение типа документа (DTD), схему Microsoft XML-Data Reduced (XDR) или схему определения XML-схемы (XSD).

Требования

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

Создание документа XML

Выберите тип XML-файла и нажмите кнопку Открыть.

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

Сохраните файл Product.xml в папке, к которую вы сможете легко получить доступ позже (в примерах кода в этой статье предполагается папка с C:\MyFolder именем).

Создание DTD и ссылки на XML-документ

Выберите тип текстового файла и нажмите кнопку Открыть.

Добавьте в файл следующие DTD-декларации, чтобы описать грамматику документа XML:

Сохраните файл как Product.dtd в той же папке, что и XML-документ.

Сохраните измененный XML-документ вProductWithDTD.xml.

Выполнение проверки с помощью DTD

В Module1 (перед началом основного субраутина) заявите переменную boolean с именем isValid следующим образом:

В главном субраутине создайте объект XmlTextReader для чтения XML-документа из текстового файла. Затем создайте XmlValidatingReader объект для проверки данных XML:

Объект XmlValidatingReader имеет свойство ValidationType, которое указывает тип проверки, необходимый (DTD, XDR или Схема). Задайте это свойство DTD следующим образом:

Если возникают какие-либо ошибки проверки, считыватель проверки создает событие проверки. Добавьте следующий код, чтобы зарегистрировать обработчитель событий проверки (вы реализуете субраутин MyValidationEventHandler в шаге 8 этого раздела):

Добавьте следующий код для чтения и проверки документа XML. В случае возникновения ошибок проверки для обработки ошибки будет вызван MyValidationEventHandler. Этот подраутин задает isValid false (см. шаг 8 этого раздела). Вы можете проверить состояние isValid после проверки, чтобы узнать, является ли документ действительным или недействительным.

После главного субраутина напишите субраутин MyValidationEventHandler следующим образом:

Сборка и запуск приложения.

Элемент события проверки "Продукт" имеет неполное содержимое. Ожидаемый "ProductName". Ошибка произошла в file:///C:/MyFolder/ProductWithDTD.xml (4, 3). Документ недействителен

Создание схемы XDR и ссылки на документ XML

Выберите тип текстового файла и нажмите кнопку Открыть.

Добавьте в файл следующие определения схемы XDR, чтобы описать грамматику документа XML:

Сохраните файл как Product.xdr в той же папке, что и XML-документ.

Открыть исходный Product.xml, а затем связать его с схемой XDR, следующим образом:

Сохраните измененный XML-документ вProductWithXDR.xml.

Выполните проверку с помощью схемы XDR

Измените приложение таким образом, чтобы XmlTextReader загружал ProductWithXDR.xml, следующим образом:

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

Сборка и запуск приложения.

Приложение должно сообщить, что XML-документ действителен.

Измените ProductWithXDR.xml, чтобы сделать его намеренно недействительным.

Запустите приложение снова.

Приложение должно сообщить об ошибке проверки.

Создание схемы XSD и ссылки на XML-документ

Выберите тип текстового файла и нажмите кнопку Открыть.

Добавьте в файл следующее определение схемы XSD, чтобы описать грамматику документа XML:

Сохраните файл, как Product.xsd, в той же папке, что и XML-документ.

Переоценка исходногоProduct.xml и ссылка на схему XSD следующим образом:

Сохраните измененный XML-документ вProductWithXSD.xml.

Выполните проверку с помощью схемы XSD

Измените приложение так, XmlTextReader чтобы нагрузки ProductWithXSD.xml, следующим образом:

Установите схему так, чтобы считыватель проверки XSD выполнял проверку схемы ValidationType XSD следующим образом:

Создайте и запустите приложение для проверки XML-документа с помощью схемы XSD.

Приложение должно сообщить, что XML-документ действителен.

Использование пространств имен в схеме XSD

Откройте product.xsd, щелкните вкладку XML, а затем измените стартовую метку xsd:schema следующим образом, чтобы схема применялась к пространству urn:MyNamespace имен:

Запустите приложение для проверки XML-документа с помощью схемы XSD.

Пространства имен кэша

Объект позволяет кэшировали схемы в XmlSchemaCollection памяти для повышения производительности. Каждая схема связана с другим пространством имен. Добавьте следующий код в кэш Product.xsd:

После создания кода добавьте следующее XmlValidatingReader утверждение. Это добавляет кэш схемы в схему, чтобы читатель может использовать схемы в XmlValidatingReader памяти.


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

Рассмотрим наиболее популярные из них.

Oxygen

Oxygen – это кроссплатформенный редактор, написанный на Java. Он поддерживает несколько функций для редактирования документов:

  • проверку правильности формы XML;
  • валидацию по таким схемам, как DTD, W3C XML Schema, RELAX NG, Schematron, NRL и NVDL schemas.

Oxygen XML предлагает три подхода к редактированию документа XML:

  • Текстовый: вариант по умолчанию.
  • Вид сетки: документ XML форматируется в электронную таблицу, в которой левый столбец хранит элементы, комментарии и инструкции по обработке, а следующий столбец показывает атрибуты корневых элементов и каждого первого уникального дочернего элемента.
  • Авторское представление: предлагает формат WYSIWYM (то, что ты видишь, есть то, что ты имеешь в виду). Такой формат понятен и удобен человеку, при этом он сохраняет вложенность и семантику.

Emacs для XML


Emacs известен как мощный текстовый редактор, предпочитаемый разработчиками UNIX. Он может работать с XML не только на UNIX-платформах, но и в Windows, MS-DOS и OS X.

В Emacs существуют следующие режимы редактирования XML:

  • sgml-mode.el
  • PSGML
  • PSGMLx
  • nXMLMode
  • XML-poly
  • xml-lite.el
  • XML Authoring Environment (XAE)
  • XSL-Mode

nXMLMode – основной режим редактирования XML в Emacs. Он поддерживает schema-sensitive.

XML Notepad

XML Notepad – редактор для XML с открытым исходным кодом. Он поддерживает древовидное представление, вывод XSL в левой панели, текст ноды справа и окно отладки внизу.


Программа поставляется с редактируемым Tree View, которое содержит обновляемые имена и значения нод, обновляемые в текстовом представлении.

Поддерживается IntelliSense для автодополнения кода и поиска синтаксических ошибок. Также включены выражения XPath и XInclude. Редактор имеет хорошую производительность при работе с большими документами XML и проверяет XML-схемы на лету. В него включено средство просмотра HTML для изучения выходных данных преобразования XSLT.

Liquid XML Studio IDE


Liquid XML Studio IDE – XML-редактор, основанный на Windows и биндинге данных. Включает в себя Graphical XML Schema Editor, Graphical JSON Schema Editor, Graphical XML editor и редактор DTD. Он также поставляется с расширением пользовательского интерфейса для Microsoft Visual Studio через Visual Studio Industry Partner (VSIP).

Stylus Studio

Stylus Studio – эта IDE написана на C++ и распространяется на условиях проприетарной лицензии стоимостью от 99 долларов. Программа позволяет редактировать и преобразовывать XML-документы для электронного обмена данными(EDI), CSV и реляционные данные. Поддерживаются XQuery Editing, XQuery Mapping, XQuery Debugging.


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

Komodo

Помимо поддержки XML, Komodo умеет работать с HTML, Perl, Ruby, Python, Java и т. д. Это простой, но функциональный инструмент. Автодополнение кода функционирует великолепно, макет лаконичен и интуитивно понятен. Софт имеет платную версию под названием Komodo IDE, включающую в себя модульное тестирование, синхронизацию нескольких рабочих станций и интеграцию с GitHub и BitBucket.


Komodo поддерживает закладки и метки, позаимствованные у Emacs.

Отслеживание изменений позволяет откатиться назад. Поле трекера позволяет управлять изменениями исходного кода (SCC), когда документ находится на стадии пересмотра. Если архив находится в SCC, то ядро трекера показывает изменения, сопоставленные с последним коммитом.

Редактор исходного кода Kate предлагает окно отладки, проводник и плагины. Среди них KTextEditor для редактирования тем, предоставляемых KSyntaxHighlighting. Он имеет возможность просмотра источников HTML, редактирования конфигурационных файлов и выполнения задач по расписанию.

Плагин проверки XML проверяет файл на наличие предупреждений и ошибок, которые появятся в окне Kate, а основанный на libxmlcalled плагин под названием «XML Completion» проверяет, следует ли документ правилам DTD.


NotePad ++


Notepad++ – это текстовый редактор с лицензией GPL. Он имеет хорошую производительность, потому как основан на компоненте редактирования Scintilla и написан на C++. Инструмент поддерживает подсветку синтаксиса, форматирование/минимизацию кода, а также незначительное автодополнение для разных языков программирования, сценариев и разметки.

К сожалению в редакторе нет интеллектуального автодополнения кода и проверки синтаксиса.

Notepad++ поставляется с основанным на libXML2 плагином XML Tools для поддержки набора полезных инструментов и редактирования XML-документов.

Для установки переходим в раздел Plugins -> Plugin Admin и находим «XML tools». Плагин обеспечивает проверку XML, XSD и DTD путем верификации формата и синтаксиса. Он поддерживает текущий XML Path и Xpath.

Это онлайн-едактор XML , предоставляющий различные сервисы:

  • XML Sitemap Editor: позволяет редактировать кастомные XML sitemap-ы сайтов, которые можно загрузить по URL-адресу или загрузить файл локально.
  • Online XML To Text Converter: преобразование XML в текстовые файлы.
  • Online XML Validator: проверка и валидация схемы на соответствие DTD.
  • XPath Editor: создание и оценка выражения XPath, а также проверка путей.

Плагин обеспечивает преобразование из XSD в XML, XML в Excel, JSON в XML, а также имеет редактор JSON и вьювер.

Adobe FrameMaker

Adobe FrameMaker – инструмент от Adobe для XML и DITA (Darwin Information Typing Architecture). Он содержит редактор WYSIWYG для XML-дизайна и обладает удобными сочетаниями клавиш для навигации.


Редактор имеет удобные для начинающих структурированные средства просмотра для нод и атрибутов XML-данных. Также он обеспечивает простое встраивание роликов из Youtube, CSS3, markdown и поддержку медиафайлов. Может быть использован в качестве PDF-редактора путем преобразования XML в DITA, который визуализируется в формат PDF.

XMLSpy

XMLSpy позиционируется как редактор JSON и XML со встроенным конструктором схем. Он поддерживает интеграцию с Visual Studio и Eclipse, а также имеет XPath builder, валидатор и отладчик.


Редактор может генерировать визуальные диаграммы из XML-данных.

Особенностью XMLSpy является валидация XML SmartFix, которая обнаруживает ошибки и автоматически применяет выбранные пользователем исправления.

ExtendsClass

ExtendsClass – это бесплатный набор инструментов для разработчиков, позволяющий сравнивать ноды XML и визуализировать семантические различия.


Инструмент XML diff выполняет семантическое сравнение пары «атрибут-значение» у каждого объекта. Сравнение затрагивает каждый узел в соответствии с его положением в массиве, а XML-строки сортируются и форматируются, чтобы найти семантические различия, а не только текстовые.

Editix

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


В последней версии предусмотрен бесплатный онлайн-инструмент – XPath tester. Разработчики также включили новую опцию – создание XML-документов из JSON и построение схемы из XML-документа с помощью редактора схем W3C.

Code Beautify


Code beautify отлично подходит для быстрого редактирования. Вы можете загрузить XML-файл по URL. Софт генерирует древовидное представление для XML, позволяет конвертировать XML в JSON, поддерживает проверку синтаксиса XML, минификацию и предоставляет онлайн-тестер XPath.

Online XML Tools

Online XML Tools – набор XML-инструментов, разработанных компанией B rowserling . Он поддерживает следующие функции: prettify, minify, validate , конвертацию XML в YAML, JSON TSV, Base64, CSV и наоборот.


Заключение

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

Читайте также: