Я знаю, что делал это раньше, но сегодня это не работает, и я не могу найти нигде, объясняющего, как это сделать. Может быть, я недосыпаю, но я подозреваю гремлинов.
У меня есть XML-документ и каталог, полный XSD, которые его определяют. Как мне настроить Visual IDE так, чтобы он уведомлял меня об ошибках проверки, а затем предоставлял intellisense список допустимых тегов и атрибутов в данном контексте?
Что я пробовал:
- Я добавил XSD в проект вместе с XML-документом.
- Я добавил XSD в список XML Schema (в пункте меню XML / Schemas ...).
- Я даже включил атрибуты schemaLocation и noNamespaceSchemaLocation в XML-документ.
Visual Studio по-прежнему не отказывается от полезной информации для отладки или редактирования. Я пробовал и 2010, и 2008 (думал, что делал это раньше, в 2008 году)
Обновление: у меня был другой разработчик, который попробовал это, и он тоже не смог. Он знает, что проделал это с другими XML-документами и заставил это работать. Затем я загрузил редактор XML Oxygen, и он отлично работал с теми же файлами XML и XSD, поэтому файлы кажутся в порядке (или Oxygen более снисходительный / гибкий ...)
источник
Вам не нужно вручную связывать файлы в Visual Studio - он автоматически сопоставляет файл XML с файлом XSD, если они оба открыты и пространство имен определено правильно.
Чтобы определить пространство имен:
В корневом элементе XML-файла:
В элементе схемы файла XSD:
Примечание об использовании типов в вашей схеме, когда у вас есть targetNamespace
Поскольку вы указываете a
targetNamespace
в своей схеме, любые ссылки на типы, определенные в схеме, должны иметь префикс пространства имен (именно поэтому мы добавилиxmlns:this
атрибут в указанный выше<xs:schema />
элемент).источник
Еще одна точка отказа - это "блокирующие" файлы схемы Windows 7 ... щелкните правой кнопкой мыши файл xsd на диске, выберите "Свойства"> "Общие", и если он заблокирован, у вас появится кнопка "Разблокировать". Это приводило к сбою моей проверки XML в VS2012.
источник
Содержит ли ваш xsd атрибут
"targetNamespace"
/schema/@targetNamespace
, похожий на пространство имен, на которое вы ссылаетесь в xml?Примеры:
XSD :
XML :
См. Также: XML / XSD intellisense не работает в Visual Studio 2010
источник
У меня была такая же проблема, но VS уже правильно ссылался на мою схему. Оказывается, файл, который я пытался проверить, не имел расширения xml. Добавил .xml в конец моего имени файла, и проверка начала работать.
источник