私が取り組んでいるプロジェクトでは、XML の XSD を書き終えたところです。これにより、他のエンジニアが XML に簡単に取り組めるようになりました。この XSD とともに、XML 名前空間が登場しました。現在の解析コードでは、次のようなものを使用しています。
XElement element = xmlRoot.Element(XML.ELEMENT_NAME);
XML は、プログラム全体で XML の入力と出力に使用される定数でいっぱいのクラスです。しかし、名前空間が使用されるようになったため、これは機能しなくなりました。明らかですが、ほとんど洗練されていない解決策は、すべての解析コードを次のようにすることです。
XElement element = xmlRoot.Element(XML.NAMESPACE + XML.ELEMENT_NAME);
もっと考えてみると、拡張メソッドを定義してこの名前空間に追加し、XElement を返す方がはるかに優れているように見えます。このアイデアにより、コードは次のようになります。
XElement element = xmlRoot.GetMyElement(XML.ELEMENT_NAME);
これらのアイデアは、名前空間の問題に対処するためにこれまでに思いついたものです。基本的に、ここでの私の質問は次のとおり
です。既知の定数名前空間で XElements を解析するためのより良い方法はありますか? もしそうなら、それは何ですか?