Na een update van mijn XML tool valt de validatie nu over het volgende in BG 0310:
Systeem-id: D:\StUF\BG 0310 patch 13\bg0310\entiteiten\bg0310_ent_basis.xsd
Hoofdvalidatiebestand: D:\StUF\BG 0310 patch 13\bg0310\entiteiten\bg0310_ent_basis.xsd
Engine-naam: Xerces
Ernst: error
Omschrijving: src-attribute.5: The property 'fixed' is present in attribute 'entiteittype', so the value of 'use' must not be 'prohibited'.
Startlocatie: 2778:6
Eindlocatie: 2778:15
URL: http://www.w3.org/TR/xmlschema-1/#src-attribute
Het betreft:
<attribute ref="StUF:entiteittype" use="prohibited" fixed="RPS"/>
Deze instelling is bij een klein aantal entiteiten als zodanig opgenomen. Bij anderen is juist het volgende opgenomen:
<attribute ref="StUF:entiteittype" use="required" fixed="KOZZKR"/>
Kan aangegeven worden of dit een fout betreft en zo ja, of dit snel kan worden opgelost?
(Het speelt ook in bg0310_ent_vraagAntwoord.xsd)
Ik heb er de XML Schema specificaties op nagekeken maar daarin staat niets over een verbod op het gebruik van het attribute 'fixed' in combinatie met het attribute 'use' met de waarde 'prohibited'.
Xerces verbiedt deze combinatie blijkbaar wel maar zover ik kan nagaan niet op basis van de XML-Schema specificaties. Ik vermoed dat de bouwers van Xerces er vanuit zijn gegaan dat deze combinatie logischerwijs van geen waarde is.
Op zich kan ik me in die conclusie ook wel vinden maar kwaad kan de combinatie ook niet. Indien dit de reden is waarom de bouwers van Xerces deze regel hebben ingebouwd dan neem ik aan dat ze hem ook gedocumenteerd hebben.
Zelf ben ik dan van mening dat zij beter een wijzigingsverzoek op de XML-standaard hadden kunnen indienen dan in hun parser eigen conclusies te verwerken maar misschien hadden ze well een hele goede reden die ik nu niet ken.
Echter het gebruik van deze combinatie leidt (blijkbaar) tot onduidelijkheid reden waarom ik van mening ben dat we deze combinatie het beste uit onze schema's kunnen verwijderen.
Overal waar dit voorkomt moet het attribuut 'fixed' dus verwijderd te worden.
Deze fix zal op zijn vroegst meegenomen kunnen worden in patch 14 die begin januari verschijnt.
Bedankt voor je reactie. Ik ben het met je eens dat uit de specificaties niet blijkt dat het fout is.
Ik wacht de fis af. In de tussentijd pas ik de schema's alvast aan
Ik zou voorzichtig zijn met het verwijderen van deze regel, want binnen een restriction leidt dit ertoe dat het attribute dan ineens is toegestaan en dat zal functioneel wel niet de bedoeling zijn.
Het is ook niet de bedoeling om de 'prohibition' van het attribute af te halen. Nee we willen het 'fixed' attribute verwijderen. Dus i.p.v.:
<attribute ref="StUF:entiteittype" use="prohibited" fixed="RPS"/>
krijg je:
<attribute ref="StUF:entiteittype" use="prohibited"/>
Als dat lukt is dat een prima oplossing, maar het zou wel eens kunnen dat het schema dan niet meer valideert omdat de fixed value in de base een waarde heeft.
Waarom is het bij dit relatief kleine aantal relaties anders gedefinieerd dan bij de anderen? Is hiervoor een speciale reden?
Ik verwacht dit probleem in complexTypes van supertypen (jouw voorbeeld) en in de complexTypes voor historieMaterieel, historieFormeel en historieFormeelRelatie complexTypes. Als je daarbuiten nog andere gevallen kent, dan is daar speciale aandacht vereist.
Post gesloten, opgelost d.m.v. ERR257.