Custom EML_NL integration development
EML_NL is the Dutch standard of the Kiesraad (Electoral Council) for candidate and results data in elections. It is based on OASIS's Election Markup Language, adapted to Dutch electoral law, and is on the 'comply or explain' list for government bodies. After elections, the Kiesraad also publishes the files as open data. Appfront builds integrations that read, validate and process EML_NL files, for example for results on a website, a dashboard or your own analysis.
What is an EML_NL integration?
An EML_NL integration makes the candidate and results data of Dutch elections usable in your own systems. According to Forum Standaardisatie, EML_NL is a Dutch application profile of the Election Markup Language. The Kiesraad maintains it and publishes the schema definitions on code.overheid.nl: an adapted version of OASIS's EML 5.0, modified, extended and restricted for Dutch electoral law. Each type of message has its own restrictions, identified by a number such as 110, 110a or 210, along with Dutch versions of the standards for names and addresses.
Forum Standaardisatie added EML_NL to the 'comply or explain' list on 28 November 2013, for the definition and exchange of candidate data and results data in elections under the Kieswet (Elections Act). This concerns data exchanged between political parties, municipal polling stations, principal polling stations and the central electoral committee to count votes and determine the result. Version 1.0 is on the list. The Forum asked the Kiesraad to state in the documentation that the standard is not suitable for replacing the paper-based process for the statutory determination of the result. An integration therefore works with the digital data alongside that process.
After elections, the Kiesraad (the Dutch Electoral Council) also publishes the EML files as open data, for example for the 2026 municipal council elections: election definitions, candidate lists and count and result files, shared by the municipalities as the central polling station, under an open licence. The Kiesraad states that it does not provide support for using the format. We build custom integrations because reading these files requires knowledge of the schemas, and because every election has different electoral districts, lists and candidates. The integration validates each file against the XSDs of the release you use, records the relationships between lists, candidates and counts, and delivers the data in the form your website or analysis expects.
Readable
Results from EML_NL made accessible.
Checked
Every file checked against the schema.
Reusable
The same integration for every election.
How we build your EML_NL integration
We start with your goal: which elections and data you need, whether you process your own files or the Kiesraad's open data, and where the data needs to end up. Next, we choose together the schema release we validate against and build the import of a single election, with candidate lists and results. You check the outcome against the officially determined result. Other elections and the display or export you need follow. When the Kiesraad publishes a new release of the schemas, we update the integration.
Elections, sources, recipients.
Lists and results imported.
Compared with the determined result.
Go-live, monitoring, and maintenance for new releases.
What an EML_NL integration does in practice
The components below appear in almost every EML_NL integration. Which ones you need depends on your role and on what you want to do with the data.
Import
Files by message ID.
Validation
Against the Kiesraad's XSDs.
Candidates
Lists and order unambiguous.
Results
Counts by level.
Export
To website, dashboard or CSV.
Log
Every processing step traceable.
Who we build an EML_NL integration for
The integration is intended for organisations that want to use election data on an ongoing basis, rather than converting files by hand for every election.
Municipalities
Results on your own site.
Lots
Candidates and results.
Media and research
Open data analysed.
Software builders
EML_NL in your software package.
Technology and integrations
This page is about integrations with EML_NL data from Dutch elections under the Kieswet (Dutch Electoral Act). If you are looking for software to hold votes within an association, works council or organisation, see building election software. For integrations with a municipality's civil affairs software, see our page on the iBurgerzaken integration, and for broader applications, our page on software for municipalities. You can read about our approach at building software.
Why Appfront for your EML_NL integration?
Results copied by hand from XML for each election, a candidate who ends up on the wrong list during conversion, or a file that is silently not imported because the schema differs: all of these undermine trust in the figures. That is what we build against: validation against the official schemas, checks against the determined result and an audit log per file.
According to the schema
Validation against the XSDs.
Checked
Alongside the determined result.
Reusable
For every following election.
Security and privacy in an EML_NL integration
Candidate lists contain personal data, such as candidates' names and places of residence. Even when they have been made public, the GDPR applies to what you do with them. The integration processes only the data needed for your purpose and records every processing step with time and result. For results that have not yet been officially determined, we agree in advance who may see them and when they are displayed.
The integration runs in a European data centre, with encrypted connections and storage. Access to non-public files is managed per role, and keys and passwords are not visible to staff. The integration does not replace any part of the statutory process for determining the result.
Frequently asked questions about an EML_NL integration
Questions that municipalities, parties, researchers and software suppliers ask before they get started.
EML_NL is the Dutch application of the Election Markup Language for candidate and results data in elections. It is based on OASIS EML 5.0 and adapted to Dutch electoral law. The Electoral Council (Kiesraad) maintains the standard.
For government bodies and the (semi-)public sector, EML_NL has been on the Forum Standaardisatie 'comply or explain' list since 28 November 2013, for the definition and exchange of candidate and results data in elections under the Elections Act (Kieswet).
The Electoral Council publishes the EML_NL XSDs on code.overheid.nl. According to the Electoral Council, the main branch may contain changes that only apply in a later version, so use the latest release. That is what we validate files against.
Yes. After elections, the Electoral Council publishes EML files with election definitions, candidate lists and count and results files as open data, often as CSV too. The Electoral Council does not offer support for using the format, and an integration helps with that.
No. Forum Standaardisatie has asked the Electoral Council to state that EML_NL is not suitable for replacing the paper process for the statutory determination of the result. An integration works with the digital data alongside that process.
Voting software is designed for running your own ballots, for example in an association or works council. An EML_NL integration processes the data from elections under the Elections Act, such as candidate lists and results.
For organisations that want to display, analyse or pass on results or candidates at every election, or that want to support EML_NL in their own software package. If you only need a one-off overview, the CSV that the Electoral Council provides with the open data is often enough.
Want to use election data from EML_NL?
Tell us which elections and data you need and where they should end up. We'll show you how an integration handles that for every election.