XULE Editor

Edit and Process XULE

  • Built in XULE processor
  • Interactive XULE editor
  • XULE validator
  • Creation of XULE-conformant documents
  • XULE syntax coloring and auto-completion
  • Support for ZIP archives of multiple XULE rulesets
  • RaptorXML Server: high performance XULE processor
  • XULE samples and example files included

What is XULE?

XULE (from XBRL Rule) is a business rule language from XBRL.US for defining assertions and validation rules for XBRL files to query and check reports before they are filed to ensure data quality.

XULE has so far primarily been used to improve the data quality of SEC filings as part of the DQC (Data Quality Committee) rules in the United States. All DQC rules are available in XULE format.

XULE can be used to provide validation capabilities in addition to those in XBRL to enforce specific business rules. While XBRL Formula already exists as a validation rule language, it is not easy to use and can, in fact, only be used if the regulator includes XBRL Formula rules inside the published taxonomy.

By contrast, XULE is much easier to use and can be added on top of an existing taxonomy after the fact. XULE was created as a modern alternative to XBRL Formula that is independent of any specific taxonomy and is more human readable by XBRL stakeholders such as accountants.

XULE allows you to check data quality in XBRL reports in two ways:

  • Provide output from data in the reports - by querying data in the report and computing results from data in the report. The output can be assessed for quality.
  • Create assertions - Data in the report can be tested against these assertions, and suitable action can be taken based on the results.

XMLSpy provides a number of features that support the creation, validation, and execution of XULE documents.

XULE Processor

The XULE processor and validator in XMLSpy processes XULE expressions against an XBRL instance document, as well as providing validation of XULE documents for correct syntax according to the XULE spec.

XMLSpy lets you process an XBRL instance against a single XULE document or a set of XULE documents stored in a zip archive. Multiple XULE documents can be packaged in a zip archive. This zip archive is a XULE document set (or XULE ruleset). You can then execute the entire XULE document set on an XBRL instance, by specifying the zip file as the XULE file to execute.

Learn more about working with XULE in XMLSpy.

XULE processor


For a server-based XULE processor, check out RaptorXML+XBRL Server. This XBRL engine provides ultra-fast, customizable XULE processing to execute XULE documents from the command line, with scripts, and via a number of server and engine APIs, including a powerful Python API.

Interactive XULE Editor

XMLSpy includes the industry’s first interactive XULE editor. XULE editing is supported both in Text View and a new XULE window. Both editing views guide users with syntax help, code completion, and other helpful features that make it easy to write and test XULE expressions. As you work, auto completion values are based both on XULE syntax and the structure of the selected XBRL taxonomy, if applicable.

The XULE window offers an easy way to interactively query XBRL instance documents. It includes a XULE expression pane, where you enter the XULE expression (or XULE rule) that you want to execute on the active document and a Results pane, which displays the result of the execution. You can click a link in the results to go to the respective node in the XBRL instance document. Nine tabs let you test multiple expressions at once.

The screenshot of the XULE editor below shows the user navigating and highlighting facts in an Inline XBRL (iXBRL) document.

Interactive XULE editor and processor in XMLSpy


To get started with XULE, try some of the assertions suggested in the XULE window and check out the sample files in the XMLSpy Examples project.


How to write a xule assertion or expression

With its intuitive XULE editor and processor, XMLSpy is a must-have for accountants and developers working on XBRL compliance.