この例の形式の XML があります。
<ExternalEvent xmlns="http://www.redeyedmonster.co.uk/Integration/ESB">
<EventType>Create</EventType>
<Message>SomeMessage</Message>
<ServiceRequestId>75a144b8-5a11-e311-bd23-0050569f00cc</ServiceRequestId>
<SourceSystem>MySource</SourceSystem>
</ExternalEvent>
そして私はそれで立ち往生しています。
EventType ノードの値を評価しようとしています。私が試してみました:
/ExternalEvent/EventType
と
/*[local-name() = 'ExternalPath' and *[local-name() = 'EventType']]
と
/*[local-name()='ExternalEvent' and namespace-uri()='http://www.redeyedmonster.co.uk/Integration/ESB']/*[local-name()='EventType' and namespace-uri()='http://www.redeyedmonster.co.uk/Integration/ESB']
プラス他の多くのバリエーション。ただし、XPath Testerでは、次のような同じエラーが常に発生します。
XPath クエリのデフォルト (プレフィックスなし) の名前空間 URI は常に '' であり、' http://www.redeyedmonster.co.uk/Integration/ESB ' に再定義することはできません。
名前空間フレーズ (xmlns="http://www.redeyedmonster.co.uk/Integration/ESB") を XML から削除すると、イベント タイプの値を問題なく評価できますが、残念ながら XML で立ち往生しています。この形式であり、私のソリューションでは変更できません。
これを回避する方法はありますか?ESB ソリューションで発生したルーティングの問題の根本的な原因である可能性があると私は信じています。