xDGL FREE Language

xDGL Inventor.
Abubaker Mahmoud, IT Researcher.
email: shangab@gipsys.ca

Computer Programming Language for Random Data Generation in java environment built on eclipse, generates CSV files, SQL files, XML files, JSON files and populates RDBMS databases directly. xDGL generates data in any human language written in UTF-8 encoding.

Eclipse DTP

The reason of using Eclipse DTP - Data Tools Platfrom is that DTP now supports all types of RDBMS, and the fact that DTP is provided in eclipse java environment as a plugin that has many extension points to be invested in the xDGL program life cycle made the job more easier for the xDGL to acheive the acceptance of most database developers.

what RDBMS it Supports?

All types of RDBMS that has a JDBC driver and can be installed and enabled in the DTP DSE (Data Source Explorer). xDGL had been tested with SQL Server, MySQL, Oracle and PostgreSQL.

As per the design xDGL should work with all the list of databases shown in the DTP DSE.

why Use xDGL?

Four reasons make xDGL state of the art:

1- It is FREE.
2- It supports data geneeration for all UTF-8 encoding and that makes it the best seleection for languages such as Arabic, Chinese, Indi, and the western languagses.
3- It works under eclipse, the widely used IDE for relational databases.
4- It is flexible to any type of data you configure using XML files.


xDGL is a free plugin on eclipse Helios 3.6 fully compatible with eclipse data tools platform DTP. Works perfectly with dozens of RDBMS databases. xDGL was invented by Abubaker Mahmoud, a Canadian Computer expert. xDGL is simple to learn and fast to execute. In one xDGL program file you can include unlimited number of tables definition to generate very hetergenious data. xDGL is designed to solve the problem of most data generators systems works in english. xDGl works in any language that could be written in the UTF-8 encoding. xDGL is the first Java Data Generation Language, the first Eclipse language for Data Genration. xDGL is built in Java, Eclipse and the great xText Framework.

Data Generation Programming language in English
נתונים של הדור תכנות בשפה עברית

لغة برمجة لتوليد البيانات باللغة العربية
Datengenerierung Programmiersprache in deutscher Sprache
مدت زمان ایجاد داده ها زبان برنامه نویسی به زبان فارسی
اردو میں ڈیٹا جنریشن پروگرامنگ زبان
हिन्दी में डेटा पीढ़ी प्रोग्रामिंग भाषा

xDGL Features

  • Generates data in any language that could be written in UTF-8 encoding.
  • xDGL plugin in eclipse contains DTP wizard to create xDGL program from connection profiles created in DSE - Data Source Explorer.
  • Very simple language syntax that could be learnt in half hour.
  • Ability to create CSV files contain the generated data to be used in any spread sheet software.
  • Ability to create SQL text files contain the generated data as insert statements to be used in RDBMS consoles.
  • Ability to populate RDBMS tables directly from the xDGL program.
  • Ability to create data for more than 100 real life objects such as male name, female name, Color ...etc.
  • Ability to derive fields from other fields.
  • xDGL introduced the pairing concept that makes your table columns more related to each other.
  • xDGl provides tens of data tokens and gives you the freedom to define your own ecosystems tokens.

The above diagram shows how xDGL fits in the eclipse IDE and uses its engine to execute all commands. xDGL has four commands to print output in the Eclipse Console IDE, printxxx, and with different formats SQL, CSV, JSON and XML. xDGL also have four commands that writes the output to external filesystem and these commands are writexxx, the file name is generated automatically and it follows the pattern: [ProgramName].[TableName].EXT, the EXT extension coule be .xml, .csv, .json or .sql.

xDGL have also two additional commands to delete and truncate data in the RDBMS table and the other is to populate the table with generated data.


The xDGL language program works optionally with two XML files the data XML that is the core of executing all the rules of r.getxml, and the pairing XML file that is responsible for generating pairing data.

The below Diagram shows the execution nature of the xDGL program, and the three types of the commands. The first type is the console display commands, the second type are the write to file system commands and the third type are the database action commands

The following example shows a minimum xDGL program named minimumDemo, the program defines a date/format in the settings section and a one table that has two fields the first one is called ID and it is generated by the rule r.serial starting from 100 and jumping by 1. the second fields is called StartDate and its a date time field that uses the generation rule r.serial starting from a certain date jumps the days by 1 using the date time format defined in the settings section. In the main section the programs provides only one command and that is the printsql and request for three records to be generated and provide true argument to show the fields list in the insert SQL statements. The console screen shows how the program is executed. This is a typical minimum useful program in xDGL language.
example image 01

xDGL Version 1.0 (Beta) Download Page.

Direct Download, Click here.

Aplogies if you found the videos not so professionally done, I am not so much of a video tutorials evangilist, And the preparations was not cooked well :-)

1. Intorduction to Using xDGL

2. What is Pairing in xDGL.

3. Date-time Data generation in xDGL.

4. Date-time Sequencing in xDGL.

5. xDGL Data Output Commands.

6. Accessing RDBMS From xDGL Program.


GIPSYS Canada provides xDGL FREE and for the global community of
programmers and data administrators and companies.

For Students,

If you are a graduate student, and you think you can develop this language more, please contact the inventor
to have the source code, after showing serious educational intents not commerical intents.