プロキシ サービスのバージョンを WSDL ドキュメント内の要素 /definitions/documentation に格納します。
<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
xmlns:tns="http://mynamespace.cz/1.0"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
name="MyService" targetNamespace="ttp://mynamespace.cz/1.0">
<wsdl:documentation>
<version>2.0</version>
</wsdl:documentation>
Service Bus 12c (12.2.1) にサービスをデプロイでき、サービスは正常に動作します。Service Bus コンソール (いわゆるリソース WSDL) から WSDL を表示すると、期待どおりの WSDL が表示され、以下が含まれます。
<wsdl:documentation>
<version>2.0</version>
</wsdl:documentation>
ただし、有効な WSDL (リソース WSDL から Service Bus によって作成されたもの) を次の URL で取得した場合: http://myserver:port/sbresource?PROXY/MyService/MyService
要素のドキュメントは上書きされます:
<WL5G3N0:documentation>
2.0
</WL5G3N0:documentation>
要素のバージョンは完全に欠落していますが、コンテンツはまだ存在しています。
なぜこれが起こっているのか、また回避策があれば教えてください。パーサーがサービスのバージョンを取得できるように、要素「バージョン」を保持する必要があります。
私の目的は、サービスの利用者にとって使いやすいソリューションを実現することです。つまり、単一の WSDL を情報のソースとして使用し、WSDL をできるだけ単純にして XPath で簡単に解析できるようにすることです。