IMOP-modules in XML-documenten

Eisen aan XML-documenten

De STOP-informatie die tussen systemen uitgewisseld wordt bestaat uit één of meer XML-documenten die, afhankelijk van de manier van uitwisselen, bijvoorbeeld in losse bestanden, IMOP uitwisselpakket, HTTP-response of ebML bericht opgenomen worden. De exacte vorm van de XML-documenten wordt bepaald door de API van het ontvangende of verzendende systeem. IMOP stelt alleen eisen aan de XML-documenten:

  • De XML-documenten bevatten één of meer STOP-modules

  • Deze STOP-modules zijn geserialiseerd zoals door IMOP is voorgeschreven.

  • De modules in een XML-document gebruiken daarvoor allen dezelfde IMOP versie.

  • De IMOP-versie bepaalt welke schema's en schematrons gebruikt moeten worden voor de validatie van het XML document.

  • Een XML-document mag aangeven welk schema gebruikt is, maar dat hoeft niet.

  • Als een XML-document aangeeft welk schema gebruikt is, dan wordt aangeraden naar de locatie op internet te verwijzen.

IMOP-versie: attribuut schemaversie

De serialisatie van elke IMOP-module heeft een attribuut schemaversie dat aangeeft welke versie van IMOP is gebruikt bij het opstellen van de XML. Het geeft aan welke versie van STOP zowel de inhoud als serialisatie van de module voldoet. Bijvoorbeeld:

<?xml version="1.0" encoding="UTF-8"?>
<RegelingCompact xmlns="https://standaarden.overheid.nl/stop/imop/tekst/" 
 schemaversie="2.0.0-rc">
  ...
</RegelingCompact> 

Als er in een XML document meerdere IMOP-modules zijn opgenomen, dan moeten ze alle dezelfde waarde voor schemaversie hebben:

<?xml version="1.0" encoding="UTF-8"?>
<Regeling xmlns="https://mijn.systeem.nl/api/">
  <RegelingCompact xmlns="https://standaarden.overheid.nl/stop/imop/tekst/" 
   schemaversie="2.0.0-rc">
    ...
  </RegelingCompact> 
  <RegelingMetadata xmlns="https://standaarden.overheid.nl/stop/imop/data/" 
   schemaversie="2.0.0-rc">
    ...
  </RegelingMetadata> 
</Regeling>

In principe moet elke STOP module een ingevuld schemaversie hebben, maar het attribuut mag weggelaten worden in situaties waarin het versienummer uit de context af te leiden is. Bijvoorbeeld:

  • De module wordt uitgewisseld als element binnen een XML-document dat een bepaalde STOP versie impliceert. De aanleveringen aan het bronhouderkoppelvlak moeten bijvoorbeeld aan een schema voldoen dat gebruik maakt van een specifieke STOP versie. De aanlevering mag alleen STOO modules opgesteld voor die versie bevatten.

  • De module wordt uitgewisseld als onderdeel van een uitwisselpakket en het versienummer staat ook al in de pakbon.

Het schemaversie mag nooit weggelaten worden voor juridisch authentieke content, dus voor de data van een informatieobject zoals de GeoInformatieObjectVaststelling van een GIO. Waar dat van toepassing is, wordt de verplichting afgedwongen via de STOP schema's. Aangeraden wordt om schemaversie wel altijd op te nemen.

De waarde van het schemaversie attribuut is geen intrinsieke eigenschap van de inhoud van een module. Dezelfde XML kan qua vorm en inhoud voldoen aan meerdere STOP-versies. Als een systeem constateert dat de module aan een specifieke STOP versie voldoet, mag dat aangegeven worden door het schemaversie attribuut aan te passen. Voorbeeld: als een module oorspronkelijk op basis van STOP 1.1.0 is opgesteld en onderdeel is van een aanlevering aan het bronhouderkoppelvlak volgens BHKV versie 1.2.0 (die gebruik maakt van STOP 1.3.0), dan wordt daarmee aangegeven dat de STOP module ook voldoet aan alle regels van STOP 1.3.0. Het bronhouderkoppelvlak mag de schemaversie aanpassen naar 1.3.0 zodat bij verdere verwerking duidelijk is dat de module ook voldoet aan alle eisen van STOP 1.3.0.