Проверка XML с помощью стандартной схемы XSD в Visual Studio 2017 - PullRequest
0 голосов
/ 02 ноября 2018

Как я могу использовать 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 похож на мою проблему - https://stackoverflow.com/a/21562249/90236 - 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 без действительного заголовка user-agent. Поэтому моя операция истекает?

1 Ответ

0 голосов
/ 05 декабря 2018

У меня была похожая проблема в VS2015: когда я пытался использовать файл dtd или xsd для проверки / intellisense, я получал сообщения об ошибках. Я попытался удалить схемы в селекторе схем , но некоторая схема, связанная с sharepoint, осталась (не удалена).

Наконец я переименовал папки, в которых находились эти shemas, и intellisense начал работать (после перезапуска VS). Папка следующая:

C: \ Program Files \ Common Files \ Microsoft Shared \ Веб-сервер Расширения \ 15 \ TEMPLATE \ XML

...