Xsd схема visual studio
Я знаю, что делал это раньше, но сегодня это не работает, и я не могу найти нигде, что объясняет, как это сделать. Возможно, из-за недосыпа, но я подозреваю гремлинов.
У меня есть 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?
Проверять файл по 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-схеме будет осуществляться автоматически на лету. Внизу в окне Списка ошибок будет отображаться список ошибок. При нажатии на ошибку, она будет подсвечена в редакторе.
Добавить окно Списка ошибок можно через Вид > Списка ошибок.
Итак, что же мы будем делать, для того, что бы научиться штамповать XML на основе вашего эталона? Опишу всё по порядку.
Имеется:
Какой то XML (xmlfile.xml), сохраненный в текстовом формате в файл. Ниже приведу текст:
Шаг 1. Создание XSD из XML.
- Утилита xsd.exe - создатель Microsoft.
- Утилита xsd2code.exe - стороннее приложение, которое умеет все тоже самое, что и xsd.exe, но доступно для скачивания напрямую (на данный момент стала платной с Trial периодом).
- Использование любых онлайн сервисов.
- Далее перейдя в папку:
C:\Program Files (x86)\Microsoft SDKs\Windows>
- Воспользуемся поиском, и найдем файл xsd.exe, после чего (что бы упростить себе работу), скопируем его в созданную в корне диска папку C:\xmltoxsd. Далее в эту же папку мы копируем наш xmlfile.xml и все готово к началу.
Отрываем "Командную строку" (Пуск -> "Выполнить" -> "cmd"), переходим в наш каталог и вызываем с параметрами по умолчанию xsd.exe, передавая наш xmlfile.xml параметром:
И видим, что рядом появился файл xmlfile.xsd с содержимым.
Вот и все! Этих действий достаточно, для создания примитивного XSD файла, с которым можно работать. Но стоит понимать, что сам xsd.exe, как и любая другая утилита, ничего не знает про типы ваших полей (поэтому почти всегда тип полей будет string), а так же о всех вариациях атрибутов и параметров. То есть, если у какого-то тега нет атрибута в вашей XML, тогда его и не будет в описании. Поэтому XML должен быть наиболее полным и в случае, если элемент может содержать несколько дочерних полей, лучше добавить как минимум два, что бы xsd.exe понял, что это коллекция.
Синтаксис XSD не очень сложный, поэтому, если пишется достаточно серьезное описание, возможно придется поработать и напильником.
Шаг 2. Создание Class из XSD.
После выполнения появится файл xmlfile.cs, содержимое которого приведено ниже в сжатом виде:
Как видите, для внутреннего элемента catalog был создан класс catalogBook, у которого поля соответствуют полям в XML, а поле Id помечено как атрибут. Xsd.exe корректно понял, что внутри catalog хранится коллекция книг, поэтому появилось свойство Items, для наполнения дочерней коллекции.
Замечание: xsd.exe не умеет добавлять комментарии к получившимся классам и полям. В описании XSD существует элемент под названием < xs:annotation > , который чаще всего содержит < xs:documentation >, внутри которого размещено описание поля. По идее, оно должно быть размещено в /// описании, но на текущий момент xsd.exe отказывается добавлять текст в описание, поэтому приходится прибегать к альтернативам, таким как xsd2code или онлайн сервисам.
Шаг 3. Сериализация объектов в XML.
Получившиеся классы у нас лежат в файле xmlfile.cs. Далее его содержимое или сам файл добавляем в проект Visual Studio, после чего можно с ним работать. Я создам демонстративный объекты книг, после чего сохраню в файл в формате XML.
После запуска и открытия Output.xml можно увидеть, что мы сохранили так, как мы хотели (Нижний файл - "Созданный кодом").
Как мы видим, форматирование было соблюдено, а данные были наполнены нами.
- 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
- Откройте 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-схеме будет осуществляться автоматически на лету. Внизу в окне Списка ошибок будет отображаться список ошибок. При нажатии на ошибку, она будет подсвечена в редакторе.
Добавить окно Списка ошибок можно через Вид > Списка ошибок.
Читайте также: