2

各スキーマが wsdl に一意の名前空間を持つ必要がありますか? 例として、スキーマのネームスペースを持たない以下の WSDL スニペットを考えてみましょう。

<wsdl:types>
 <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <xsd:import namespace="http://example.com/WSDL/service/1.0.0/" schemaLocation="GetFilterValuesRequest.xsd"/>
 </xsd:schema>
 <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <xsd:import namespace="http://example.com/WSDL/service/1.0.0/" schemaLocation="GetFilterValuesReply.xsd"/>
 </xsd:schema>
 <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <xsd:import namespace="http://example.com/WSDL/service/1.0.0/" schemaLocation="IRequest.xsd"/>
 </xsd:schema>
 <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <xsd:import namespace="http://example.com/WSDL/service/1.0.0/" schemaLocation="IReply.xsd"/>
 </xsd:schema>
</wsdl:types>

私が質問している理由は、ノード ソープライブラリを使用して WSDL サービスを記述しており、スキーマに競合する名前空間がある場合、または名前空間がまったくない場合、ライブラリ サービスが機能しないためです。

Cannot read property 'input' of undefinedSOAP リクエストが送信されると、名前空間によってスキーマのマップを作成し、後で特定のリクエストに対して一意のスキーマを見つけることができないため、エラーが発生します。

エラーやその修正について詳しく説明するつもりはありませんが、有効な WSDL であるために必要なものであることを理解したいですか?

4

1 に答える 1