Inleiding

Een data aanlevering vertrekt het best met een bestaand en correct XML-bestand. Een dergelijk XML-bestand kan je openen en editeren met zo goed als elke tekst editor. Notepad++ is een voorbeeld van zo'n text editor die XML ondersteunt.

Er zijn enkele methoden om een XML-bestand te valideren tegen fouten.

Online XML validatie (voor beginners & experten)

De eerste methode maakt gebruik van de XML-validatietool van DOV. De XML-validatietool is beschikbaar via het DOV-Portaal of rechtstreeks met volgende url:

Het kiezen van een XML-bestand start de validatie direct. De details geven weer of er fouten gevonden zijn of niet. De header in het XML-bestand bepaalt tegen welk schema het wordt gevalideerd.

Voorbeeld van validatie zonder fouten



Voorbeeld van validatie met fout


[referentieprofiel:(p2)]-->[beginpunt]-->[xy]-->[betrouwbaarheid] Invalid content was found starting with element 'betrouwbaarheid'. One of '{x}' is expected.

Aan de hand van de foutendetails is het mogelijk de foutieve XML’s aan te passen en te verbeteren.

Offline XML validatie (voor experten)

De tweede methode maakt gebruik van een XML-schema bestand (ook XSD genoemd) dewelke kan gebruikt worden voor de validatie van XML’s. Op dezelfde pagina als voordien kunnen alle bestaande schema’s gedownload worden. Hier kan een specifiek schema gekozen worden:

Eens op een link geklikt, downloadt er een ZIP-bestand. Best voorziet u hiervoor een specifieke map, bv. In je documenten “C:\Users\‹PC_GEBRUIKER›\Documents\xsd”. Als u deze ZIP uitpakt kan u het XML-schema vinden in de folder “…\xsd\kern”.

Eens het XSD-schema op zijn plaats staat, kan deze gebruikt worden door een validator naar keuze. Deze validator kan een webapp, script of software zijn en de keuze hiervan ligt volledig bij de gebruiker.

Aangeraden opties zijn unit tests via script.

Voorbeeld in Java

In onderstaand voorbeeld is het mogelijk zowel met URL verwijzing als met de bronbestanden te werken. Deze kunnen gevonden worden op:


XML-validatie in Java
import javax.xml.XMLConstants;
import javax.xml.transform.Source;
import javax.xml.transform.stream.StreamSource;
import javax.xml.validation.*;
import java.net.URL;
import java.net.MalformedURLException;
import org.xml.sax.SAXException;
//import java.io.File; // Als er gebruik wordt gemaakt van een XSD-file ipv een URL
import java.io.IOException;
...
URL schemaFile = new URL("https://www.dov.vlaanderen.be/xdov/schema/latest/xsd/kern/dov.xsd");
// Andere schema's kunnen gevonden worden op https://www.dov.vlaanderen.be/portaal/?module=ocdov-xdov-validate
// Voorbeeld met een lokaal bestand:
// File schemaFile = new File("/location/to/localfile.xsd");
Source xmlFile = new StreamSource(new File("C:\\<PAD_NAAR_XML>\\mijn_xml.xml"));
SchemaFactory schemaFactory = SchemaFactory
    .newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);
try {
  Schema schema = schemaFactory.newSchema(schemaFile);
  Validator validator = schema.newValidator();
  validator.validate(xmlFile);
  System.out.println(xmlFile.getSystemId() + " is geldig");
} catch (SAXException e) {
  System.out.println(xmlFile.getSystemId() + " is NIET geldig. Reden:" + e);
} catch (IOException e) {}

XML validatie via DOV-webservices

Kies je voor een automatische aanpak via de DOV-webservices? Bekijk dan hier hoe je XML-data aanlevert via de DOV-webservices.


  • Geen labels