Хорошо, это заняло некоторое время.
Согласно этой записи , существуют определенные теги, которые инструмент .NET wsdl.exe просто не распознает при импорте файла wsdl. Согласно MSDN :
attributeGroup : игнорируется. DataContractSerializer не поддерживает использование xs: group, xs: attributeGroup и xs: attribute. Эти объявления игнорируются как дочерние элементы схемы xs:, но на них нельзя ссылаться из complexType или других поддерживаемых конструкций.
Это поведение также описано (хотя и в очень трудной для понимания форме) в одном из MSDN-блогов . В моем конкретном случае конкретная часть файла wsdl, вызывающая проблему, выглядит следующим образом:
<xs:complexType name="PhonesType">
<xs:annotation>
<xs:documentation xml:lang="en">Provides detailed phone information.</ xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element maxOccurs="unbounded" name="Phone">
<xs:annotation>
<xs:documentation xml:lang="en">Used to pass detailed phone information.</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:attributeGroup ref="TelephoneInfoGroup"/>
<xs:attributeGroup ref="ID_OptionalGroup">
<xs:annotation>
<xs:documentation xml:lang="en">The ID attribute in this group is a unique identifying value assigned by the creating system and may be used to reference a primary-key value within a database or in a particular implementation.</xs:documentation>
</xs:annotation>
</xs:attributeGroup>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
Кажется, что <xs:attributeGroup ref="TelephoneInfoGroup"/>
игнорируется инструментом .NET wsdl.exe, точно так же, как он игнорировался импортером Delphi wsdl. В такой ситуации, когда импорт не удается выполнить как в Delphi, так и в .NET, файл wsdl, вероятно, необходимо изменить, и это означает, что мне все-таки придется использовать мой самодельный ref-flattener python.