Probleem
In de schema's van StUF-BG 3.10 maar ook in die van StUF-ZKN 3.10, StUF-ZTC 3.10 en mogelijk ook diverse koppelvlakschema's wordt veelvuldig gebruik gemaakt van het 'fixed' attribute voor het vastleggen van de waarde van de 'entiteitType', en 'groepsnaam' attributes in de StUF berichten. Zie onderstaand voorbeeld:
<complexType name="BST-kerngegevens">
<complexContent>
<restriction base="ztc:BST-basis">
<sequence>
<element name="omschrijving" type="ztc:Omschrijving-e" nillable="true" minOccurs="0"/>
<element name="omschrijvingGeneriek" type="ztc:Omschrijving-e" nillable="true" minOccurs="0"/>
<element name="maaktDeelUitVan" type="ztc:BSTCAT-kerngegevens" nillable="true" minOccurs="0"/>
</sequence>
<attribute ref="StUF:entiteittype" use="required" fixed="BST"/>
<attribute ref="StUF:sleutelVerzendend"/>
<attribute ref="StUF:sleutelOntvangend"/>
<attribute ref="StUF:sleutelGegevensbeheer"/>
<attribute ref="StUF:noValue" use="prohibited"/>
<attribute ref="StUF:scope" use="prohibited"/>
<attribute ref="StUF:verwerkingssoort"/>
</restriction>
</complexContent>
</complexType>
Het blijkt dat het gebruik van dit attribute in sommige omgevingen bij code generatie problemen oplevert.
Oplossing
Ik stel een soortgelijke constructie voor als die we eerder i.h.k.v. ERR267 op de elementen 'functie' en 'entiteittype' hebben doorgevoerd, vervang daar waar een constructie als
<attribute ref="StUF:entiteittype" use="required" fixed="BST"/>
voorkomt door een soortgelijke constructie als
<attribute name="entiteittype" type="StUF:EntiteittypeBST"/>
Het type attribute verwijst daarbij naar een simpleType waarin slechts 1 enumeration is gedefinieerd, in dit geval dus
<enumeration value="BST"/>
Voor de 3-letterige mnemonics kan daarbij gebruik gemaakt worden van de al aanwezige simpleTypes die voor het 'entiteittype' element in de stuurgegevens worden gebruikt. Voor de meerletterige mnemonics en andere waarden zullen nieuwe simpleTypes aangemaakt moeten worden.
Dit onderhoudsverzoek is opgevoerd in de onderhoudsverzoeken als ONV0401.
De lijst met onderhoudsverzoeken vind je op:
gemmaonline.nl/index.php/StUF-Expertgroep#Documenten
Ik heb een analyse uitgevoerd op dit probleem, de wijze waarop het opgelost moet worden en de implicaties. Zie daarvoor bijgaand spreadsheet.
Voor de rijen waarin kolom E en F leeg zijn geldt situatie nr 2 of 4 uit de eerste tab. Daar dient nog een nieuw simpleType gecreëerd te worden. Daar waar een waarde gebruikt moet kunnen worden in zowel de StUF-BG als de StUF-ZKN namespace definiëren we een simpleType in de StUF-BG namespace. Daar waar een waarde in slechts 1 namespace gebruikt hoeft te worden definiëren we een simpleType in die betreffende namespace.
Daar waar een waarde gebruikt moet kunnen worden in zowel de StUF-ZKN als de StUF-ZTC namespace definiëren we een simpleType in beide namespaces.
Zoals je kunt zien moeten er voor het oplossen van dit issue op 1338 plaatsen xs:attributes te worden gewijzigd. Deels zal dat met zoeken en vervangen kunnen maar deels zal het ook handmatig moeten gebeuren. Daarom de vraag om even goed te kijken of jullie je kunnen vinden in de voorgestelde oplossing.
Bijlage
xs-attributes met fixed attribute.xlsxInteressant onderhoudsverzoek! Het is nog even de vraag of we dit verzoek moeten doorvoeren als erratum op stuf0310, bg0310, zkn0310, ztc0310 en mogelijk op bestaande koppelvlakken. Dat is veel werk en vooral een foutgevoelige operatie met kans op onverwachte neveneffecten.
Dit onderhoudsverzoek is wel zeer geschikt als RFC op stuf0302 en de best practices. In de nieuwe standaarden bg0320, zkn0320, koppelvlakken (etc.) is het mijns inziens sowieso gewenst geen fixed-values meer te gebruiken.
Inmiddels heb ik dit onderhoudsverzoek op bg0310 gegeneraliseerd naar een RFC op stuf0301 en de best practices, zie https://vng-realisatie.github.io/StUF-Standaarden/discussie/gemma/stuf-301/rfc-vervang-...
De best practice is aangepast, zie bijgaand voorstel.
Bijlage
stuf_best_practices - ONV0401.pdfTijdens de StUF Expertgroep van 18 mei 2016 is het voorstel goedgekeurd. De schema's hoeven nav het voorstel niet aangepast te worden.
N.a.v. het afkeuren van RFC0416 is besloten om de wijzigingen n.a.v. ERR0401 ook terug te draaien.
Hiervoor heb ik ERR0476 in de onderhoudsverzoeken opgevoerd.
De lijst met onderhoudsverzoeken vind je op:
gemmaonline.nl/index.php/StUF-Expertgroep#Documenten
Bij deze de uitwerking van de gevraagde wijziging.
Bijlage
stuf_best_practices - ERR0476 (met renvooi).pdfTijdens de StUF Expertgroep van 15 maart 2017 is de uitwerking van dit onderhoudsverzoek goedgekeurd en is tevens goedgekeurd deze al meteen op te nemen in patch 26.