簡體   English   中英

C#-將XML模式編譯為DLL嗎?

[英]C# - compile xml schema into DLL?

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來使這些功能可用?

我不相信那里。 VS需要通過文件(或URL)訪問架構以便加載它。 在有項目引用的情況下,VS具有隨時可用的文件,因此您無需執行任何特殊操作。 我發現了很多原因,為什么將XML模式導出為純文件作為構建過程的一部分是有意義的。 您可能想要這樣做。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM