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 名前空間をどうすればよいかわかりません。