C#-将xml模式编译为DLL?

C#-将xml模式编译为DLL?,c#,xml,visual-studio-2010,C#,Xml,Visual Studio 2010,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

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时,VisualStudio2010使我可以在XMLFile1.XML的XML编辑器中使用所有优秀的自动完成/验证功能

但是,当ProjectB引用DLL而没有加载项目源时,XML编辑器不会提供任何基于模式的自动完成或验证


是否有任何方法仅通过引用DLL就可以使用这些功能?

我认为没有。VS需要通过文件(或URL)访问模式才能加载它。在您有项目引用的情况下,VS使文件随时可用,因此您不必做任何特殊的事情。我已经找到了很多理由,为什么在构建过程中将XML模式导出为普通文件是有意义的。您可能需要这样做。

选择xml文件后,您可以通过我相信的属性指向架构。然后你就有了智能感知。我不认为仅仅通过引用dll就可以做到这一点。