Versies vergeleken

Uitleg

  • Deze regel is toegevoegd.
  • Deze regel is verwijderd.
  • Opmaak is veranderd.

Inhoudsopgave

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.

...

Image Modified

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.

...

Image Modified

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”.

Image Modified

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.

...

Codeblok
languagejava
themeRDark
titleXML-validatie in Java
linenumberstrue
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) {}

Validatie via DOV-webservices

Aan te spreken url: https://services.dov.vlaanderen.be/dov-xdov-server/import/validate (Type request: POST, Header: Content-Type: application/json)

Codeblok
languagebash
titlecURL
curl -X POST -d "@validate-post-body.json" -k https://services.dov.vlaanderen.be/dov-xdov-server/import/validate   -H 'Content-Type: application/json' --key my_key.key --cert my_cert.pem  -v

Een json-body moet hier mee gestuurd worden:

Codeblok
languagejs
titleJSON POST body
linenumberstrue
collapsetrue
{
  "id": null,
  "omschrijving": "opladen XML",
  "gebruikersnaam": "<username>",
  "datumOpladen": "2019-10-10",
  "datumProcessed": null,
  "aantalVerwerkt": 0,
  "aantalFouten": 0,
  "partner": "<kbonummer van uw organisatie>",
  "invoerwijze": {
    "code": "2",
    "beschrijving": "edov"
  },
  "status": {
    "code": "1",
    "beschrijving": "niet verwerkt"
  },
  "options": [
    {
      "id": null,
      "propertyValue": "true",
      "property": {
        "code": "20",
        "beschrijving": "Boring"
      }
    },
    {
      "id": null,
      "propertyValue": "true",
      "property": {
        "code": "21",
        "beschrijving": "Opmerkingen bij een boring"
      }
    },
    {
      "id": null,
      "propertyValue": "true",
      "property": {
        "code": "22",
        "beschrijving": "Alternatieve namen"
      }
    },
    {
      "id": null,
      "propertyValue": "true",
      "property": {
        "code": "101",
        "beschrijving": "Informele stratigrafie"
      }
    },
    {
      "id": null,
      "propertyValue": "true",
      "property": {
        "code": "103",
        "beschrijving": "Lithologische beschrijving"
      }
    },
    {
      "id": null,
      "propertyValue": "true",
      "property": {
        "code": "104",
        "beschrijving": "Gecodeerde lithologie"
      }
    },
    {
      "id": null,
      "propertyValue": "true",
      "property": {
        "code": "105",
        "beschrijving": "Hydrogeologische stratigrafie"
      }
    },
    {
      "id": null,
      "propertyValue": "true",
      "property": {
        "code": "108",
        "beschrijving": "Geotechnische codering"
      }
    },
    {
      "id": null,
      "propertyValue": "true",
      "property": {
        "code": "120",
        "beschrijving": "Opmerkingen bij een interpretatie"
      }
    }
  ],
  "bestand": {
    "id": "<BESTAND-ID>",
    "naam": "<BESTANDSNAAM>"
  }
}