Ошибки схемы при проверке «CustomDictionary.xml» через «CustomDictionary.xsd» в Visual Studio - PullRequest
0 голосов
/ 08 мая 2019

Теперь я получаю проверку IntelliSense в Visual Studio при редактировании CustomDictionary.xml, включив ссылку на CustomDictionary.xsd, как рекомендовано здесь . Тем не менее, я получаю ошибки проверки по умолчанию Microsoft CustomDictionary.xml, чего я не ожидал. Например, для этой записи:

<Term PreferredAlternate="EnterpriseServices">complus</Term>

... Я вижу ошибку:

Элемент не может содержать текст. Модель содержимого пуста.

(Обратите внимание, что под словом complus. Я вижу синюю кривую линию). Это говорит о том, что существует проблема с файлом схемы CustomDictionary.xsd. Обратите внимание, что я получил свою копию файла схемы из этого места в ходе установки Visual Studio 2017:

C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\Team Tools\
    Static Analysis Tools\Schemas\CustomDictionary.xsd

А что по умолчанию CustomDictionary.xml можно найти здесь:

C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\Team Tools\
    Static Analysis Tools\FxCop\CustomDictionary.xml

Предлагаемое решение: Чтобы получить правильную проверку CustomDictionary.xml в Visual Studio, кажется, что необходимо внести изменения в CustomDictionary.xsd. Кто-нибудь может это подтвердить?


Дополнительный комментарий: Мне примечательно, что эти файлы не изменились с момента выпуска Visual Studio 2013. Вот их расположение:

C:\Program Files (x86)\Microsoft Visual Studio 12.0\Team Tools\
    Static Analysis Tools\Schemas\CustomDictionary.xsd

C:\Program Files (x86)\Microsoft Visual Studio 12.0\Team Tools\
    Static Analysis Tools\FxCop\CustomDictionary.xml

1 Ответ

0 голосов
/ 08 мая 2019

Я исследовал свой вопрос и внес изменения в CustomDictionary.xsd, которые исправили ошибки проверки IntelliSense, которые я видел. Вот эти изменения:

До:

<xs:attribute name="PreferredAlternate" type="xs:string" use="required" />

<xs:attribute name="CompoundAlternate" type="xs:string" use="required" />

После того, как:

<xs:simpleContent>
  <xs:extension base="xs:string">
    <xs:attribute name="PreferredAlternate" type="xs:string" use="required" />
  </xs:extension>
</xs:simpleContent>

<xs:simpleContent>
  <xs:extension base="xs:string">
    <xs:attribute name="CompoundAlternate" type="xs:string" use="required" />
  </xs:extension>
</xs:simpleContent>
...