Altova RaptorXML Server 2023

The RaptorXML Python API enables data in  XML documents and XML Schema documents to be accessed and manipulated in Python scripts. Some typical use cases of the Python API include:


implement custom validation rules and error messages

export content from XML documents to a database

export content from XML documents to custom data formats

interactively navigate and query the data model of XML documents within a Python shell or Jupyter notebook (


The Python APIs

The Python APIs (for  XML and XSD) provide access to the meta-information, structural information, and data contained in XML and XSD documents. As a result, Python scripts can be created that make use of the APIs to access and process document information. For example, a Python script can be passed to RaptorXML Server that writes data from an XML document to a database or to a CSV file.


Example scripts for Raptor's Python APIs are available at:


The Python APIs are described in their API references:


Python API v1 Reference

Python API v2 Reference


Note:Raptor's Python API v1 is deprecated. Please use Python API v2.


RaptorXML Server package for Python

In your installation of RaptorXML Server, you will also find a Python package in wheel format. You can use Python's pip command to install this package as a module of your Python installation. After the RaptorXML module has been installed, you can use the module's functions within your code. In this way, RaptorXML's functionality can be used easily in any Python program you write, together with other third-party Python libraries, such as graphics libraries.


For information about how to use RaptorXML Server's Python package, see the section RaptorXML Server as a Python Package.


Note:The Python wheel is compatible with Python version 3.7 only.


Python scripts

A user-created Python script is submitted with the --script parameter of the following commands:


valxml-withxsd (xsi)

valxsd (xsd)


These commands invoking Python scripts can be used both on the Command Line Interface (CLI) and via the HTTP Interface. The usage of Python scripts with the Python APIs of RaptorXML Server are described at:


Making Python scripts safe

When a Python script is specified in a command via HTTP to RaptorXML Server, the script will only work if it is located in the trusted directory. The script is executed from the trusted directory. Specifying a Python script from any other directory will result in an error. The trusted directory is specified in the server.script-root-dir setting of the server configuration file, and a trusted directory must be specified if you wish to use Python scripts. Make sure that all Python scripts to be used are saved in this directory.


Though all output generated by the server for HTTP job requests is written to the job output directory (which is a sub-directory of the output-root-directory), this limitation does not apply to Python scripts, which can write to any location. The server administrator must review the Python scripts in the trusted directory for potential vulnerability issues.


© 2016-2022 Altova GmbH