ESMA ESEF Technical Operation

Several alternative installation strategies can be followed:

  1. Install a pre-built application.  (See ESMA ESEF Installation)
  2. Install from sources on gitHub.

Once installed there are three strategies for using ESMA ESEF validation and inline rendering:

  1. Interactively from its GUI. (See ESMA ESEF Installation)
  2. Technical Operation
    1. From command line.  (Can be integrated to your preparation environment.)
    2. As a web service.  (Can use built-in web service, Apache CGI, or IIS CGI.)
    3. Polled operation as a daemon service.


Pre-built application

(See ESMA ESEF Installation)

From gitHub sources

Please install the following components on your platform:

User Operation

Interactively from its GUI

(See ESMA ESEF Installation)

Command line operation

Try “about” to see if it loads correctly.

Windows pre-built app:
arelleCmdLine -a

Mac app: -a

Windows from gitHub sources
c:\python35\python -a

MacOS from gitHub sources
python3.5 -a

Try help (showing flags only)
{arelle} -h

Load inline XBRL /somewhere/myTest.htm, validate, and put output rendering output results to /somewhere/out, also copying source document to output for the Workiva iXBRL Viewer:

{arelle} -f /somewhere/myTest.htm --plugins 'validate/ESMA|inlineXBRLViewerPlugin' --disclosureSystem esma --validate

or for the SEC inline viewer:

{arelle} -f /somewhere/myTest.htm --plugins 'validate/ESMA|EdgarRenderer' --disclosureSystem esma --validate

The -f parameter may be a zip file, in which case all the instances detected in the root directory of the zip are processed.

The file -f parameter may be a JSON structure:

  • for a single instance filing:

    -f '[{"file": "/Users/joe/.../gpc_gd1-20130930.htm"}]'
  • for multiple instances, add more of the {"file": ...} entries.
  • for Windows called from Java, the JSON must be quoted as thus:

    -f "[{\"file\":\"z:\\Documents\\...\\gpc_gd1-20130930.htm\"}]"

Further details of instructions are in the comments to plugin/

Web service operation

You may use the built-in web server or install to Apache/CGI or IIS/CGI (see documentation – API Web Services)

To start the built-in web server:
Windows pre-built app:
arelleCmdLine --webserver locahost:8080

Mac app: --webserver locahost:8080

Default is a single-thread web server. To add multi-threaded serving, specify the CherryPy server, {arelleCmdLine} --webserver localhost:8080:cheroot.

To test that it is operating, from browser: http://localhost:8080/about. For help: http://localhost:8080/help.

The ESEF plugin and packages can be added either on the command line which invokes the server, or in the parameters to each individual validation. We prefer adding to the server invocation: {arelleCmdLine} --webserver localhost:8080:cheroot --plugins validate/ESEF --packages {my-package-directory}/

To run a validation on a zip file containing the instance document and link bases:

curl -X POST "-HContent-type: application/zip"
-T {filingPackageName}.zip

The log file of messages and errors will be in text, unless media=xml or media=json are specified.

The input file (posted by web service request) must be the filing package zip file, all all the instances detected in the zip file’s reports directory are processed.


Comments are closed.