简而言之:我可以阻止 Visual Studio 在其内部智能感知引擎中加载一些 xsd 吗?加载某些 xsd 会破坏智能感知。
为了对各种 xml 文档执行输入验证,我使用 xsd。我使用的一些 xsd 文件是标准的,例如 xml.xsd 和各种 xhtml xsd。这些 xsd 文件作为嵌入式资源包含在类库中。
但是,在解决方案中包含这些文件会破坏 Visual Studio 对各种 xml 文件的智能感知,即使在不同的项目中也是如此。似乎正在发生的事情是,Visual Studio 自己的 xsd 文件和“自定义”嵌入式 xsd 文件都已加载,可能是因为它们适用于相同的targetNamespace
. 但是,这会导致很多警告,例如:The global attribute 'http://www.w3.org/XML/1998/namespace:lang' has already been declared.
xslt 文件特别烦人,但似乎所有匹配多个模式的 xml 文件都会发生这种情况。XHTML 是另一种特别有问题的情况,因为只有一个名称空间(严格的、过渡的......)有多个模式。因此,智能感知停止为打开的 xml 文件工作。此外,VS 的错误列表中充斥着大量虚假警告,隐藏了潜在有用的警告。
我可以使用禁用或删除这些模式,XML > Schemas...
但这是一个不可行的解决方案,因为每当我打开不同的 xml 文件时它们都会重新添加。我必须每天可能数百次删除模式。
有没有办法将 Visual Studio 配置为不自动加载嵌入式模式,或者一劳永逸地只加载特定的模式?