Verwijzing naar schema's
Attribuut xsi:schemaLocation
Het is aan te raden in een XML-document vast te leggen tegen welke XSD het document is gemaakt en valideert. Dat maakt het eenvoudiger om de XML te lezen en valideren door software die niet op de hoogte is van de schemaversies zoals IMOP die hanteert.
Dit kan door via het attribuut schemaLocation
in de xsi
-namespace de relatie vast te leggen tussen de namespace waarin een module is gedefinieerd en de locatie van het schema. De waarde van het attribuut bestaat uit één of meer paren van een namespace gevolgd door de locatie van het schema voor die namespace. Het is gebruikelijk om dat attribuut aan het root element van het XML document toe te voegen:
<?xml version="1.0" encoding="UTF-8"?>
<RegelingCompact
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="https://standaarden.overheid.nl/stop/imop/tekst/
https://standaarden.overheid.nl/stop/2.0.0-rc/imop-tekst.xsd"
xmlns="https://standaarden.overheid.nl/stop/imop/tekst/"
schemaversie="2.0.0-rc">
...
</RegelingCompact>
of als er meerdere namespaces gebruikt worden:
<?xml version="1.0" encoding="UTF-8"?>
<Regeling xmlns="https://mijn.systeem.nl/api/"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="https://standaarden.overheid.nl/stop/imop/tekst/
https://standaarden.overheid.nl/stop/2.0.0-rc/imop-tekst.xsd
https://standaarden.overheid.nl/stop/imop/data/
https://standaarden.overheid.nl/stop/2.0.0-rc/imop-data.xsd">
<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>
xsi:schemaLocation
verwijst naar internet
De aanbevolen werkwijze is om de URL van het schema uit de corresponderende IMOP-versie als xsi:schemaLocation
op te nemen. Elke XML-software die in staat is schema-informatie van het internet te betrekken kan dan de XML interpreteren volgens het schema dat gebruikt is om de XML te maken.
xsi:schemaLocation
is optioneel
Software die IMOP implementeert mag niet vertrouwen op de aanwezigheid of correctheid van het xsi:schemaLocation
attribuut. De software moet het schemaversie
attribuut van een module lezen en aan de hand daarvan bepalen welke schema's en schematrons gebruikt moeten worden voor de validatie van de XML.
Het xsi:schemaLocation
mag daarom worden weggelaten. Als het wordt weggelaten dan zal generieke XML-software (zoals XML-viewers of editors) de XML kunnen laten zien, maar geen ondersteuning bieden waarvoor kennis van het XML schema vereist is.
Het gebruik van relatieve paden (zoals ../stop/imop-tekst.xsd
) of lokale paden (zoals C:/STOP/xsd/2.0.0-rc/imop-tekst.xsd
) wordt sterk afgeraden. Dit verlaagt de portabiliteit van de XML-bestanden.