Проверка по xsd схеме в ms visual studio
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 кода все что вам нужно сделать, набрать имя элемента также как это показано в следующем примере:
и нажмите клавишу 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" />
Наконец, вы можете создать цепочку ссылаясь из одного файла каталога на другой:
Работа с большими файлами
Другая важная функция редактирования которую я хотел бы отметить это поддержка редактором 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 трансформаций.
CLR-интегрированная отладка
XslCompiledTransform xsltcmd =
new XslCompiledTransform( true );
xsltcmd.Load(XSLTFile);
XmlUrlResolver resolver = new XmlUrlResolver();
XmlWriter writer = XmlWriter.Create(OutputFile);
* This source code was highlighted with Source Code Highlighter .
Если вы установите точку останова на вызове метода и пройдете в него, отладчик покажет вам стилевую таблицу XSLT (Рисунок 3). Все функции описанные в разделе отладки отдельной таблицы стилей также применимы здесь. Единственным исключением является возможность устанавливать точки останова в файлах данных. Эта функция не доступна, когда вы переходите из в XSLT из другой программы на CLR. Все остальное будет вести себя точно также как описано в выше.
Таблица 2 представляет сводку различных функций доступных во время отладки XSLT трансформаций.
Feature | Visual Studio 2008 Support |
Browser view | X |
Locals, watch, call stack | X |
Viewing input XML, output, and XLST during debugging | X |
Breakpoints in XML | X |
Breakpoints in XSLT | X |
CLR language debugger integration | X |
Расширение инструментов 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.
Проверять файл по XSD-схеме целесообрано в исключительных случаях, например, если скрипт xml-healer.py не справился с исправлением файла. Подробнее в главе IV. Скрипт для замены служебных символов в XML .
XMLPad уступает по удобству и возможностям MS Visual Studio, но если вы не являетесь программистом и у вас не установлена MS Visual Studio, лучше воспользоваться XMLPad.
Проверка по XSD-схеме в XMLPad¶
- Откройте XML-файл, который требуется проверить в XMLPad File > Open.
- Чтобы проверить файл по заданной XSD-схеме, его надо с ней ассоциировать. Перейдите в меню XML > Assign Schema/DTD.
- Выберите W3C Schema и нажмите Browse, затем выберите XSD-схему для проверки.
- После того, как XSD-схема ассоциирована, нажмите F7 или XML > Validate, чтобы проверить файл. В нижней части окна будут выведены ошибки, нажав на которые можно подсветить строку, в которой они находятся.
Для удобства отображения можно включить переносы строк Edit > Word Wrap.
Проверка по XSD-схеме в MS Visual Studio¶
- Откройте XML-файл, который требуется проверить в MS Visual Studio Файл > Открыть > Файл.
- Чтобы проверить файл по заданной 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-документ и каталог, полный XSD, которые его определяют. Как настроить Visual IDE для уведомления о сбоях проверки, а затем предоставить intellisense список допустимых тегов и атрибутов в данном контексте?
- я добавил XSD для проекта с XML-документом.
- я добавил XSD в список схем XML (в разделе XML / Schemas. пункт меню.)
- Я даже включил атрибуты schemaLocation и noNamespaceSchemaLocation в XML-документ.
Visual Studio по-прежнему не отказывается от полезной информации об отладке или редактировании. Я пробовал как 2010, так и 2008 (я делал это раньше в 2008 я думал)
обновление: у меня был другой разработчик попробовать это, и это не удалось для него тоже. Он знает, что сделал это с другими XML-документами и работал. Затем я загрузил Oxygen XML editor, и он отлично работал на тех же XML и XSD-файлах, поэтому файлы кажутся прекрасными (или кислород более прощающий / гибкий . . . )
вам нужно связать XML-документ в Visual Studio с xsd - файлом, который у вас есть-вы должны увидеть что-то подобное в окне свойств XML-документа:
в Редакторе набора схем XML (открывается при нажатии на кнопку (. ) многоточие в текстовом поле "схемы" в окне свойств) вам нужно убедиться, что у вас есть ваша схема. Кроме того, убедитесь, что Use столбец для этой схемы включен-если нет, нажмите на него - вы получите раскрывающийся список опций, выберите Use один с зеленой галочкой:
убедитесь, что окна списка ошибок Visual Studio видны (меню Вид > список ошибок). Это покажет все несоответствия между определениями схем XML и XSD.
Как только все это будет на месте, редактор Visual Studio XML должен выделить проблемы с вашим XML в редакторе с помощью синего squigglies:
вам не нужно вручную связывать файлы в Visual Studio-это будет автоматически сопоставьте XML-файл с xsd-файлом, если они оба открыты, и у вас правильно определено пространство имен.
чтобы определить пространство имен:
в корневом элементе XML-файла:
в элементе схемы XSD-файла:
примечание об использовании типов в схеме, когда у вас есть параметр targetnamespace
потому что вы указываете targetNamespace в вашей схеме любые ссылки на типы, определенные в схеме, должны иметь префикс с пространством имен (поэтому мы добавили выше <xs:schema /> элемент).
другой точкой отказа здесь является Windows 7 "блокировка" файлов схемы. щелкните правой кнопкой мыши файл xsd на диске, свойства > общие, и если он заблокирован, у вас будет кнопка" разблокировать". Это привело к сбою проверки XML в VS2012.
содержит ли ваш xsd атрибут "targetNamespace" /schema / @targetNamespace, похожий на пространство имен, на которое вы ссылаетесь в 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 кода все что вам нужно сделать, набрать имя элемента также как это показано в следующем примере:
и нажмите клавишу 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" />
Наконец, вы можете создать цепочку ссылаясь из одного файла каталога на другой:
Работа с большими файлами
Другая важная функция редактирования которую я хотел бы отметить это поддержка редактором 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 трансформаций.
CLR-интегрированная отладка
XslCompiledTransform xsltcmd =
new XslCompiledTransform( true );
xsltcmd.Load(XSLTFile);
XmlUrlResolver resolver = new XmlUrlResolver();
XmlWriter writer = XmlWriter.Create(OutputFile);
* This source code was highlighted with Source Code Highlighter .
Если вы установите точку останова на вызове метода и пройдете в него, отладчик покажет вам стилевую таблицу XSLT (Рисунок 3). Все функции описанные в разделе отладки отдельной таблицы стилей также применимы здесь. Единственным исключением является возможность устанавливать точки останова в файлах данных. Эта функция не доступна, когда вы переходите из в XSLT из другой программы на CLR. Все остальное будет вести себя точно также как описано в выше.
Таблица 2 представляет сводку различных функций доступных во время отладки XSLT трансформаций.
Feature | Visual Studio 2008 Support |
Browser view | X |
Locals, watch, call stack | X |
Viewing input XML, output, and XLST during debugging | X |
Breakpoints in XML | X |
Breakpoints in XSLT | X |
CLR language debugger integration | X |
Расширение инструментов 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.
Читайте также: