2

つまり、Visual Studioが内部インテリセンスエンジンにいくつかのxsdをロードしないようにすることはできますか?特定のxsdのブレークインテリセンスをロードします。


さまざまなxmlドキュメントで入力検証を実行するには、xsdを使用します。xml.xsdやさまざまなxhtmlxsdなど、私が使用するxsdファイルの一部は標準です。これらのxsdファイルは、埋め込みリソースとしてクラスライブラリに含まれています。

ただし、これらのファイルをソリューションに含めると、さまざまなプロジェクトであっても、あらゆる種類のxmlファイルのVisualStudioインテリセンスが損なわれます。起こっているように見えるのは、おそらく同じに適用されるため、VisualStudio独自のxsdファイルと「カスタム」埋め込みxsdファイルの両方がロードされることですtargetNamespace。ただし、これにより、次のような多くの警告が発生しますThe global attribute 'http://www.w3.org/XML/1998/namespace:lang' has already been declared. 。xsltファイルでは特に厄介ですが、複数のスキーマに一致するすべてのxmlファイルで発生するようです。XHTMLは、1つの名前空間(厳密、移行...)に対して複数のスキーマがあるため、特に問題となるもう1つのケースです。結果として、インテリセンスは開いているxmlファイルに対して機能しなくなります。また、VSのエラーリストには多くの偽の警告がスパム送信されており、潜在的に有用な警告が見えないようになっています。

を使用してこれらのスキーマを無効化または削除できXML > Schemas... ますが、別のxmlファイルを開くたびにすべてが再追加されるため、これは実行不可能なソリューションです。おそらく1日に何百回もスキーマを削除する必要があります。

埋め込まれたスキーマを自動ロードしないように、または特定のスキーマのみを一度だけロードするようにVisual Studioを構成する方法はありますか?

4

1 に答える 1

2

応答の欠如に基づいて、これは単なるバグだと思います。インテリセンスはこの状況に対処できません。

バグレポートを送信しました。解決策が見つかった場合は、この回答を更新します:http: //connect.microsoft.com/VisualStudio/feedback/details/777572/visual-studio-2012-xml-intellisense-broken-due- to-auto-loading-duplicate-xsd-files

解決策/回避策

標準のxsdをローカルに含めている場合(ビジュアルスタジオ自体と競合していることを考えるとほぼ確実ですxsd)、リソースとして含めるためだけに、それらをあまり編集する必要はないでしょう。そのため、などの問題のあるファイルの名前をに変更することにしxml.xsdましたxml.xsd.intellisensehack。ファイル拡張子はリソースコードとは無関係ですが(他のストリームと同じように開くことができます)、VisualStudioはファイルをインテリセンススキーマソースとして自動的に使用しようとしなくなりました。

于 2013-02-18T13:14:25.290 に答える