0

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 により、XML エディターで XMLFile1.xml の優れたオートコンプリート/検証機能がすべて利用できるようになります。

ただし、プロジェクト ソースが読み込まれていない状態で ProjectB が DLL を参照する場合、XML エディターはスキーマに基づくオートコンプリートまたは検証を提供しません。

DLL への参照のみを使用してこれらの機能を利用可能にする方法はありますか?

4

1 に答える 1

1

あるとは思いません。VS は、スキーマをロードするために、ファイル (または URL) を介してスキーマにアクセスする必要があります。プロジェクト参照がある場合、VS はすぐに利用できるファイルを持っているので、特別なことをする必要はありません。ビルド プロセスの一環として XML スキーマをプレーン ファイルとしてエクスポートすることが理にかなっている理由はたくさんあります。あなたはそれをしたいかもしれません。

于 2013-07-29T15:46:42.483 に答える