singleWSDL パラメータが適用された WCF サービスからエクスポートされた WSDL があります。
以下の型とメソッドのフラグメントのように、多くの qXX XML 名前空間が使用されています。
<xs:complexType name="PrincipalReference">
<xs:complexContent mixed="false">
<xs:extension base="q2:EntityReferenceBase">
<xs:sequence/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:element name="GetPermissions">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" name="principal" nillable="true" type="q1:PrincipalReference"/>
</xs:sequence>
</xs:complexType>
</xs:element>
PrincipalReference クラスは EntityReferenceBase から継承されます。PrincipalReference と EntityReferenceBase はどちらも同じ C# 名前空間にあり、DataContractAttribute の Namespace フィールドの同じ値を持ちます。したがって、それらは必ず 1 つの名前空間にあります。
これらの q1 および q2 XML 名前空間をどうにかして取り除くことはできますか? Web サービスはさまざまな環境 (プラットフォーム/言語) から使用することを目的としているため、WSDL が明確であるほど嬉しいです。
たとえば、回避策として、継承の使用を停止し、基本クラスのコンテンツを派生コンテンツにコピーして、q2 の問題を解決できますが、メソッド パラメーターの型に適用される q1 名前空間をどうすればよいかわかりません。