当我打开包含其他 xsd 文件的 xsd 文件时,所有包含的文件都会添加到名为“未经授权的区域”的部分。 Visual Studio 会突出显示
xs:include
元素,并在尝试解析 schemaLocation 属性时给出以下错误:
请求“System.Security.Permissions.FileIOPermission,mscorlib,Version=4.0.0.0,Culture=neutral,PublicKeyToken=b77a5c561934e089”类型的权限失败。
我已阅读以下博客文章,但我对 xsd 还不够熟悉,尚未完全理解它。
任何人都可以解释为什么会发生这种情况,或者为我指出一个可以提供帮助的好资源吗?
[编辑] 所有要包含的 xsd 文件都位于 Visual Studio 项目中。
对我来说,在转到 XSD 文件的属性并单击“取消阻止”后,它就起作用了。我从如何修改我的设置以允许 VS2010 从“未经授权的区域”加载第 3 方 XSD 文件得到这个答案?
当您将 XSD 架构添加到编辑器时,Visual Studio 会使用目标命名空间属性(架构文件的 URL)将 XSD 架构缓存在
%VsInstallDir%\xml\Schemas
。
博客文章说的是
The inclusion of Local.xsd in the “Unauthorized Zone” and the warnings in the error pane about not being able to resolve the schema location are an indication to the end user that the schema they were visiting attempted to bring in a schema from a zone that it is not authorized to access.
出现 IO Permission 错误的原因是您的计算机无权从该位置下载外部 xsd 文件。因此,没有缓存供 Visual Studio 验证您的其他 xsd 文件。
您应该检查您的网络选项,以便您可以下载这些 xsd 文件。虽然您可以,但这意味着您有权访问该位置,因此 Visual Studio 可以缓存它们。如果您确定您有权访问,您也可以下载这些 xsd文件并将它们放入 Visual Studio 的默认架构位置,然后将它们添加到编辑器中。
另请检查缓存此处
希望这有帮助
迈拉
需要做两件事:
如果您尝试解锁未授权区域中的特定文档但不起作用,请尝试解锁 zip 文件。
在从 zip 文件中提取所有文件之前,右键单击 -> 属性 -> 取消阻止,然后提取 zip 文件。
当您以管理员身份运行 Visual Studio 时,这些警告将会消失。