В SOA я считаю, что wsdl не поддерживает рекурсивные типы данных, но я видел несколько примеров, когда прокси действительно работает. Кто-нибудь знает больше об этом?
Рекурсивные определения типов разрешены, и даже циклические графы объектов разрешены и сериализуемы. Однако, чтобы не допустить исчерпания пространства стека при сериализации и десериализации, вам необходимо создать пользовательское поведение, переопределяющее метод CreateSerializer и устанавливающее для параметра preserveObjectReferences значение true при создании DataContractSerializer. См. блог Джеймса Ковача для получения дополнительной информации.
Пожалуйста, определите, что вы подразумеваете под рекурсией. Ниже приведена действительная схема XML для использования в WSDL:
<?xml version="1.0" encoding="UTF-8"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified"> <xs:element name="Node" type="NodeType"/> <xs:complexType name="NodeType"> <xs:sequence> <xs:element name="Node" type="NodeType"/> </xs:sequence> </xs:complexType> </xs:schema>