X-definition is a tool for describing the structure of XML documents (and also JSON, YAML, Windows INI or Data Properties). It validates input data, performs data processing or performs data construction as described in the X-definition. It also allows transformation of input data as required by the X-definition. The properties of an X definition are as follows:
Clear and easy-to-read data description in different formats: XML or JSON, YAML, Properties, Windows INI, CSV.
Integrated technology for data validation, processing or data construction.
Detailed error reporting and the ability to process error log files.
X-component generator - Java class source code generator representing class with data described in X-definition (similar to JAXB).
Interfacing with external data objects and/or Java methods.
Easy maintenance of large-scale projects with many different data structures.
Ability to process very large data (many GB in size).
Ability to interface with databases and other external data sources and methods.
Extended list of supported data types compared to XML schema types (e.g. GPS position, currencies, IP addresses, email addresses, phone numbers, etc.).
In addition to the pre-declared data types, you can also describe the data format using e.g. the BNF grammar.
X-definition supports also the general notation of data objects supported in X-definition (XON - X-definition Object Notation).