Проверка XML с помощью стандартной схемы XSD в Visual Studio 2017
Как я могу использовать Visual Studio 2017 для проверки моего XML с помощью общедоступных схем XSD?
В Visual Studio 2017 сначала я включаю "Автоматическую загрузку DTD и схем" в меню "Инструменты" -> "Параметры" -> "Текстовый редактор" -> "XML" -> "Разное". Затем, когда я указываю документ XML, который включает в себя и xsi:schemaLocation, Visual Studio не может загрузить ссылочную схему, и я не могу воспользоваться такими функциями Visual Studio, как проверка XML и редактирование intellisense.
Вот пример, возьмите стандартный пример документа из VXML 2.1
<?xml version="1.0" encoding="UTF-8"?>
<vxml version="2.1" xmlns="http://www.w3.org/2001/vxml"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.w3.org/2001/vxml
http://www.w3.org/TR/2007/REC-voicexml21-20070619/vxml.xsd">
<form>
<block>hello</block>
</form>
</vxml>
Если я введу это как документ XML в Visual Studio, я получу кучу предупреждений:
The operation has timed out
The schema referenced from this location in your document contains errors
Я думаю, что этот ответ от @Petru Gardea похож на мою проблему - /questions/45105055/kak-pravilno-vklyuchit-schemalocation-dlya-ssyilki-na-fajl-xsd-v-xml/45105070#45105070 - W3C явно ограничивает свои серверы и инструменты, такие как Visual Studio, будут зависать. В ответе выше предлагается перевести локальный файл XSD и обновить путь xsd. К сожалению, сложная схема может включать другие схемы с помощью xsd: include или xsd: import. Я не смог правильно загрузить все включенные схемы, чтобы это работало.
Разве Visual Studio не должна загружать и кэшировать ссылочные схемы как часть набора XML-схем? Нужно ли вручную загружать и добавлять некоторые схемы в набор, как описано в разделе Проверка XML с помощью XSD в Visual Studio IDE?
Другие инструменты, особенно XMLSpy, просто делают правильные вещи, и валидация работает отлично. Могу ли я заставить это работать в Visual Studio?
-- Обновить --
Я нашел этот пост Чрезмерный трафик DT3 W3C. Но мне не ясно, что является принятым решением. Разве Visual Studio не должна управлять каталогом XML для схем? Мне также сказали, что w3.org не будет отвечать на запросы XSD без действительного заголовка агента пользователя. Поэтому моя операция истекает?
0 ответов
У меня была похожая проблема в VS2015: когда я пытался использовать файл dtd или xsd для проверки /intellisense, я получал сообщения об ошибках. Я попытался удалить схемы в селекторе схем, но некоторая схема, связанная с sharepoint, осталась (не удалена).
Наконец я переименовал папки, в которых находились эти shemas, и intellisense начал работать (после перезапуска VS). Папка следующая:
C: \ Program Files \ Common Files \ Microsoft Shared \ Расширения веб-сервера \15\ ШАБЛОН \XML