通过 Visual Studio 中的 'CustomDictionary.xsd' 验证 'CustomDictionary.xml' 时的架构错误

Schema errors when validating 'CustomDictionary.xml' via 'CustomDictionary.xsd' in Visual Studio

当我按照建议 here 合并对 CustomDictionary.xsd 的引用编辑 CustomDictionary.xml 时,我现在在 Visual Studio 中获得 IntelliSense 验证。但是,我在 Microsoft 的默认值 CustomDictionary.xml 中收到了我没有预料到的验证错误。例如,对于此条目:

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

...我看到错误:

The element cannot contain text. Content model is empty.

(请注意,我在 complus 一词下方看到一条蓝色波浪线。)这表明 CustomDictionary.xsd 模式文件存在问题。请注意,我从我的 Visual Studio 2017 安装中的这个位置获得了模式文件的副本:

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

并且可以在此处找到默认值 CustomDictionary.xml

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

建议补救措施: 要在 Visual Studio 中对 CustomDictionary.xml 进行正确验证,似乎需要对 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

我研究了我的问题并对 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>