5

カスタム構成セクションを作成し、Intellisenseの付随するスキーマドキュメントを作成し、別の同様の質問に対するMichael Stumの回答に従って、Web.configのSchemasプロパティに追加しました。

xmlns残念ながら、おそらく限られた知識でXSDを手動で作成したため、Intellisenseは、カスタム構成要素に存在するXSDファイルの名前空間を指す属性に依存しています。ただし、プロジェクトを実行すると、認識されない属性「xmlns」が表示されます。属性名では大文字と小文字が区別されることに注意してください。

XSDファイルを変更してxmlnsその要素の属性を定義することもできますが、これはより大きな問題に対する単なるバンドエイドの修正であるのではないかと思います。XML名前空間についてあまりよく理解していないことを告白しなければならないので、これは私をいくつかのことにまっすぐに導く機会かもしれません。

XSDファイルのルートxs:schema要素の属性は次のとおりです。

<xs:schema id="awesomeConfig"
           targetNamespace="http://awesome.com/schemas"
           xmlns="http://awesome.com/schemas"
           elementFormDefault="qualified"
           xmlns:xs="http://www.w3.org/2001/XMLSchema">
    ...
</xs:schema>

また、Web.configファイルに要素を作成すると、VisualStudio2008は自動的に次の要素を追加します。

<awesomeConfig xmlns="http://awesome.com/schemas"></awesomeConfig>

それで、私は属性の意味をまったく誤解しましたxs:schemaか、それとも適切な解決策は見た目と同じくらい簡単ですか?

4

1 に答える 1

5

スキーマはtargetNamespace属性を省略する必要があります。実際には、これによりスキーマの内容がデフォルトの名前空間に配置されます。

.NET構成システムでは、要素を名前空間に含めることは許可されていないため、これが必要です。

于 2010-06-07T00:06:00.590 に答える