Anybody already created a (Dutch governement) StUF compliant webservice?

2
The Dutch governement has standardized webservices to handle traffic between different software vendors. Is there already a partner or developer that has started or created the Mendix side to connect to such webservice? If so I would like to here from you. Otherwise this will probably be a new github project :) Regards, Ronald
asked
1 answers
4

I can't answer the question if somebody has already implemented StUF, I was interested in how the standard was setup and did a quick review of some of the settings.

FYI, all these statements are based on a 15 minute review of the base standard and the WOZ implementation of this standard.


I have no experience with this particular standard, but a lot of the structures I see here are similar to two standards I have worked with before, the ACORD standard (US insurance), and Vecozo/Vektis (NL healthcare).
All three standards have in common that they try to capture all possible scenario's in the wsdl, and allow for as much flexibility to append to the standard without changing the definition of the services.

By doing so they are using a lot of complex scenario's such as:

  • optional sequences:

    <sequence minOccurs="0">
        <element name="wpl.woonplaatsNaam" type="BG:WoonplaatsNaam-e" nillable="true" minOccurs="0"/>
        ...
    </sequence>
    
  • optional, repeating choices, containing multiple sequences (3 complex scenario's in one):

    <choice minOccurs="0" maxOccurs="2">
        <sequence>
            <element name="aoa.identificatie" type="BG:ObjectNummering-e" nillable="true" minOccurs="0"/>
              ...
        </sequence>
        <sequence>
            <element name="sub.postadresType" type="BG:PostadresType-e" nillable="true"/>
            <element name="sub.postadresNummer" type="BG:PostadresNummer-e" nillable="true"/>
        </sequence>
    </choice>
    
  • Inheritance (multiple levels)

    <complexType name="CorrespondentieAdrGrp-lv-antwoord">
        <complexContent>
            <restriction base="BG:CorrespondentieAdrGrp-woz-basis">
            <sequence>
                <element name="wpl.woonplaatsNaam" type="BG:NaamgevingObject-e" nillable="true" minOccurs="0"/>
                ...
    

Besides that there are also a couple of bugs in the standard, definitions such as this (redundant choices) are not valid:

<choice minOccurs="0">
    <choice minOccurs="0" maxOccurs="3">
        <element name="ligplaats" type="BG:LIG-lv-vraag" minOccurs="0"/>
        <element name="verblijfsobject" type="BG:VBO-lv-vraag" minOccurs="0"/>
    </choice>
</choice>





All these scenario's that are being used are fairly rare (I've only seen this in the regulated standards), and unfortunately these wsdls aren't (fully) supported in the platform.
If you want to integrated with StUF, ACORD, or Vecozo you'll have to go into the wsdl and change the definition in order to let the modeler accept it during import. In most scenario's it is possible to change the wsdl in such a way that it doesn't change in meaning, all you would be doing is make the wsdl more or less strict.
The alternative would be integrating through some Java actions.

answered