Probleem
De wijze waarop binnen de XML-Schema's restrictions van elementen worden uitgevoerd wijkt af van de wijze waarop dit gebeurd voor attributen.
Bij het restricten van elementen moeten alle elementen die men wil gebruiken herhaald worden, dit is een eis die wordt afgedwongen door de XML-Schema standaard.
Bij het restricten van attributen is dit niet noodzakelijk. Alleen die attributen waarvan men de eigenschappen wil wijzigen moeten opgevoerd worden.
Dit is ook de manier waarop we dit nu in de StUF schema's doen.
Het zorgt er echter voor dat het lastig is om te achterhalen welke attributen er nu precies binnen een complexType gedefinieerd zijn, zeker in text-view.
Oplossing
De beschreven en binnen de StUF schema's gehanteerde manier is echter geen eis die wordt afgedwongen door de XML-Schema standaard.
Het is namenlijk ook toegestaan om alle attributen te herhalen waardoor de manier van restricten meer gelijkenis vertoont met die van het restricten van elementen.
Niet zo:
<complexType name="InOnderzoekMAC">
<simpleContent>
<restriction base="StUF:InOnderzoekMAC-basis">
<attribute ref="StUF:metagegeven" use="required"/>
</restriction>
</simpleContent>
</complexType>
maar zo:
<complexType name="InOnderzoekMAC-test">
<simpleContent>
<restriction base="StUF:InOnderzoekMAC-basis">
<attribute ref="StUF:metagegeven" use="required"/>
<attribute ref="StUF:noValue"/>
<attribute name="groepsnaam" type="StUF:InOnderzoekMACGroepen"/>
<attribute name="elementnaam" type="StUF:InOnderzoekMACElementen"/>
</restriction>
</simpleContent>
</complexType>
In 1 oogopslag is zo direct duidelijk welke elementen maar ook welke attributen er in een complexType worden gedefinieerd.
Wij stellen voor om dit als een best practice op te nemen in de best practices en dit ook als zodanig te wijzigen in alle schema's.
Dit Erratum is opgevoerd in de onderhoudsverzoeken als ERR301.
De lijst met onderhoudsverzoeken vind je op:
gemmaonline.nl/index.php/StUF-Expertgroep#Documenten
In de StUF Expertgroep van 16-09-2015 is besloten dit onderhoudsverzoek af te voeren.