C#-将xml模式编译为DLL?
ProjectA.csproj包含一个XSD模式,定义如下: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
<?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就可以做到这一点。