ProjectA.csproj 包含一个这样定义的 XSD 架构:
<?xml version="1.0" encoding="utf-8"?>
<xs:schema id="ItaXmlConfigFileSchemaV1"
targetNamespace="http://tempuri.org/ItaXmlConfigFileSchemaV1.xsd"
elementFormDefault="qualified"
xmlns="http://tempuri.org/ItaXmlConfigFileSchemaV1.xsd"
xmlns:mstns="http://tempuri.org/ItaXmlConfigFileSchemaV1.xsd"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:r="http://tempuri.org/ItaXmlConfigFileSchemaV1.xsd"
>
...schema definitions...
</xs:schema>
ProjectA 将被编译成 ProjectA.dll,其中 ItaXmlConfigFileSchemaV1.xsd 作为嵌入式资源包含在内。
然后,我创建 ProjectB.csproj,并在其中包含一个带有以下标头的 XMLFile1.xml:
<?xml version="1.0" encoding="utf-8" ?>
<utilityConfigData xmlns="http://tempuri.org/ItaXmlConfigFileSchemaV1.xsd">
</utilityConfigData>
ProjectB 引用 ProjectA.dll。
当我将 ProjectA.csproj 添加到 ProjectB 解决方案并在 XML 编辑器中打开 XMLFile1 时,Visual Studio 2010 在 XMLFile1.xml 的 XML 编辑器中为我提供了所有不错的自动完成/验证内容。
但是,当 ProjectB 引用未加载项目源的 DLL 时,XML 编辑器不提供任何基于架构的自动完成或验证。
有什么方法可以仅使用对 DLL 的引用来使这些功能可用?