XML 编辑器提供位于 %VSInstallDir%\xml\Schemas 目录中的 架构缓存。 架构缓存对计算机上的所有用户都是全局的,包括用于 IntelliSense 和 XML 文档验证的标准 XML 架构。
XML 编辑器还可以查找位于解决方案中的架构、文档“属性”窗口的“架构”字段中指定的架构以及由xsi:schemaLocation属性xsi:noNamespaceSchemaLocation标识的架构。
下表描述了随 XML 编辑器一起安装的架构。
| Filename | Description |
|---|---|
| catalog.xsd | XML 编辑器架构目录文件的架构。 有关架构目录的信息,请参阅下文。 |
| DotNetConfig.xsd | Web.Config 文件的架构。 http://schemas.microsoft.com/.NETConfiguration/v2.0 |
| msbuild.xsd | MSBuild 的架构生成文件。 http://schemas.microsoft.com/developer/msbuild/2003 |
| msdata.xsd | 由DataSet 类添加的 XSD 批注的架构,"urn:schemas-microsoft-com:xml-msdata"。 |
| msxsl.xsd | Microsoft XSLT 脚本块扩展的架构,urn:schemas-microsoft-com:xslt。 |
| SnippetFormat.xsd | 代码片段 XML 文件的架构。 有关示例,请参阅 %VSInstallDir%\VC#\Expansions。 |
| Soap1.1.xsd | 简单对象访问协议 (SOAP) 1.1 http://schemas.xmlsoap.org/soap/envelope/的架构。 |
| Soap1.2.xsd | 简单对象访问协议 1.2 的架构。 |
| SiteMapSchema.xsd | ASP.NET sitemap XML 文件的架构。 http://schemas.microsoft.com/AspNet/SiteMap-File-1.0 |
| wsdl.xsd | Web 服务描述语言的架构。 http://schemas.xmlsoap.org/wsdl/ |
| xenc.xsd | XML 加密的架构。 http://www.w3.org/2000/09/xmldsig# |
| xhtml.xsd | XHTML http://www.w3.org/1999/xhtml的架构 。 |
| xlink.xsd | XLink1.0 的 http://www.w3.org/1999/xlink架构。 |
| xml.xsd | 描述 xml:space 和 xml:lang 属性的 http://www.w3.org/XML/1998/namespace架构。 |
| xmlsig.xsd | XML 数字签名的架构。 http://www.w3.org/2000/09/xmldsig# |
| xsdschema.xsd | 描述 XSD 本身的 http://www.w3.org/2001/XMLSchema架构。 |
| xslt.xsd | XML 转换的架构。 http://www.w3.org/1999/XSL/Transform |
更新缓存中的架构
当加载 XML 编辑器包并在运行时监视任何更改时,编辑器将加载架构缓存目录。 如果已添加架构,则会自动将其加载到已知架构的内存中索引中。 如果架构已删除,则会自动从内存中索引中删除该架构。 如果架构已更新,则会自动使此架构的内存中缓存失效。
注释
由于架构缓存目录是计算机的全局目录,因此你应仅在此处添加对计算机上可能创建的所有 Visual Studio 项目的标准和有用的架构。
XML 编辑器还支持架构缓存目录中的任意数量的架构目录文件。 架构目录可以指向你始终希望编辑器知道的架构的其他位置。 catalog.xsd 文件定义目录文件的格式,并包含在架构缓存目录中。 catalog.xml 文件是默认目录,其中包含指向 %VSInstallDir%中其他架构的链接。 下面是 catalog.xml 文件的采样:
<SchemaCatalog xmlns="http://schemas.microsoft.com/xsd/catalog">
<Schema href="%VSInstallDir%/help/schemas/Favorites.xsd" targetNamespace="urn:Favorites-Schema"/>
<Schema href="%VSInstallDir%/help/schemas/Links.xsd" targetNamespace="urn:Links-Schema"/>
<Schema href="%VSInstallDir%/help/schemas/MyHelp.xsd" targetNamespace="urn:VSHelp-Schema"/>
</SchemaCatalog>
该 href 属性可以是指向架构的任何文件路径或 http URL。 文件路径可以相对于索引目录。 以下由 %%分隔的变量由编辑器识别,并在路径中展开:
VSInstallDir
System
ProgramFiles
程序
CommonProgramFiles
应用数据
公共应用程序数据
LCID
目录文档可以包含一个元素 Catalog,该元素指向其他目录。 可以使用 Catalog 该元素指向团队或公司共享的中央目录,或与业务合作伙伴共享的联机目录。 该 href 属性是其他目录的文件路径或 http URL。 下面是元素的示例 Catalog :
<Catalog href="file://c:/xcbl/xcblCatalog.xml"/>
该目录还可以使用特殊 Association 元素控制架构与 XML 文档的关联方式。 此元素将没有目标命名空间的架构与特定文件扩展名相关联,这很有用,因为 XML 编辑器不执行任何没有 targetNamespace 属性的架构的自动关联。 在以下示例中, Association 该元素将 dotNetConfig 架构与扩展名为“config”的所有文件相关联:
<Association extension="config" schema="%VSInstallDir%/xml/schemas/dotNetConfig.xsd"/>
本地化架构
在许多情况下, catalog.xml 文件不包含本地化架构的条目。 可以将其他条目添加到指向本地化架构目录 的catalog.xml 文件中。
在以下示例中,已创建一个新 Schema 元素,该元素使用 %LCID% 变量指向本地化架构。
<Schema href="%InstallRoot%/Common7/IDE/Policy/Schemas/%LCID%/TDLSchema.xsd"
targetNamespace="http://www.microsoft.com/schema/EnterpriseTemplates/TDLSchema"/>
更改架构缓存的位置
可以使用 “杂项 选项”页自定义架构缓存的位置。 如果你有收藏架构的目录,则可以将编辑器配置为改用这些架构。
注释
此更改仅影响当前 Visual Studio 用户。
更改架构缓存位置
从 “工具” 菜单中,选择 “选项” 。
展开 文本编辑器,展开 XML,然后单击 “杂项”。
单击“架构”字段上的“浏览”按钮。
选择架构缓存的文件夹,然后单击“ 确定”。
添加另一个常见架构目录
在 XML 编辑器架构缓存目录中编辑 catalog.xml 文件。
添加指向其他架构目录的新
<Catalog href="..."/>元素。保存更改。
会自动重新加载目录。