Recursiveness in WSDL

Recursiveness in WSDL

  
Hi,

WSDL allows for recursiveness in its elements, see fragment below:
<s:complexType name="Person">
<s:sequence>
<s:element name="Name" type="s:string"/>
<s:element name="SSN" type="s:string"/>
<s:element minOccurs="0" name="DOB" type="s:date"/>
<s:element minOccurs="0" name="Home" type="s0:Address"/>
<s:element minOccurs="0" name="Office" type="s0:Address"/>
<s:element minOccurs="0" name="Spouse" type="s0:Person"/>
<s:element minOccurs="0" name="FavoriteColors" type="s0:ArrayOfFavoriteColorsItemString"/>
<s:element minOccurs="0" name="Age" type="s:long"/>
</s:sequence>
</s:complexType>

So Person refers to itself. This is valid WSDL/XSD, but import in Service Studio complains that this is an unsupported structure? Importing the WSDL in tools like SOAPUI works OK.

Thanks,
Marcel
what's your question?

I am surprised it doesn't work, it seems simple enough to implement...
but if it's not.. then...

Will it be supported by Outsystens in later editions?
chances are 0%.. wsdl is something of the past and should be buried :)

Can you make it work with outsystems?
yes, simply import the wsdl with integration studio and work from there.

I don't think it'll work in Integration Studio either. The problem is that the Platform, for technical reasons (see below) doesn't allow recursive structures. So I don't think it's "simple enough to implement".

The reason for not allowing recursive structures is that there's no such thing as an uninitialized structure (and no such thing as a reference to a structure). This is good for obvious reasons, but it does mean that with recursivity, you'd get infinite initializations.
Solution
Hi Marcel,

From Service Studio Help:

"SOAP Web Services Constraints

Service Studio provides extensive support for providing and consuming SOAP Web Services. However, due to the OutSystems Platform language expressiveness, there are scenarios that are only supported through extensions, using Integration Studio.

Integration Studio allows you not only to import Web Services from a .Net Assembly, but also implement custom logic to provide and consume Web Services in both .Net and Java.

In the following scenarios you need to implement custom extensions:

(...)
  • Web Services with recursive data types (structures that contain themselves);
  • (...)"
Solution
Thanks Carlos, I guess your answer makes the story complete ;-)

I think everybody needs to support SOAP/WSDL for many more years, whether we like it or not...