PDML Overview - FAQ

Author: Christian Neumanns

Published: 2021-11-16

What is PDML?

The Practical Data and Markup Language (PDML) is a specification of a text format to store data and markup code.

PDML is conceptually similar to XML, but PDML's syntax is less verbose, and there are other differences.

A free, open-source reference implementation of a parser written in Java is available.

Why PDML?

PDML's design goals are:

  • human-friendly (simple, succinct syntax, easy to read and write for people)

  • suitable for data and markup code

  • suitable for small and big documents

  • unique, powerful extensions to make PDML more practical

How does PDML compare to other, popular formats?

In a nutshell:

  • PDML is less verbose than XML and JSON, and slightly more verbose than YAML.

  • Unlike JSON and YAML, PDML is suitable for markup code.

  • Unlike YAML, PDML is suitable for big, complex data structures.

  • PDML has a number of unique, practical extensions not found in XML, JSON, or YAML.

  • Basic PDML (without extensions) is easier to parse than XML, JSON, or YAML.

For a demonstration of these claims please read Suggestion For a Better XML/HTML Syntax.

How does it work?

Here is a simple example of an XML document:

<?xml version="1.0" encoding="UTF-8"?>
<person>
    <name>
        <first>Albert</first>
        <last>Einstein</last>
    </name>
    <city>Bern</city>
    <country>Switzerland</country>
</person>

The same data structure looks like this in PDML:

[person
    [name
        [first Albert]
        [last Einstein]
    ]
    [city Bern]
    [country Switzerland]
]

More examples can be found in the article PDML Examples.

What can I do with PDML?

PDML can be used to store any kind of structured and unstructured data, including markup code. Data is stored in a human-readable text format (not binary format).

For example, PDML can be used to store:

  • maps (key/value pairs)

  • simple or complex configuration data

  • markup code (styled text, like HTML)

  • tables and databases

  • unstructured, heterogenous, or polymorphic data

Simple examples of each category are shown in the article PDML Examples.

PDML can be converted to XML, and XML to PDML. Hence, XML technology can be used with PDML documents. For example, you could programmatically validate, query, modify, or transform a document.

The article Open-Source Parser For PracticalXML (pXML) shows how to do this.

Is there a parser available for PDML?

Yes. There is a free, open-source reference implementation written in Java. The source code is available on Github.

Parsers in other programming languages are welcomed to be published on this site.

Are there editor/IDE plugins for PDML?

There is Sublime PDML, a plugin for the Sublime Text Editor, created by Tristano Ajmone.

Other editor/IDE plugins are welcomed to be published on this site.

Do I have to pay to use PDML?

No. PDML is free of charge for everyone - no strings attached.

Which license is used?

The PDML specification is licensed under CC BY-ND 4.0.

The reference implementation written in Java is licensed under GPL 2.0.

Who created PDML?

Hello. My name is Christian Neumanns, born in Luxembourg (Europe). I care about creating reliable and maintainable software that is useful and easy to use.

Besides PDML, I created:

  • the Practical Markup Language (PML): a markup language designed to create web articles and books. PML uses the PDML syntax. A free, open-source PML-to-HTML-Converter converts PML to HTML.

  • the Practical Programming Language (PPL): a programming language designed to create reliable and maintainable code. The PML-to-HTML-Converter is written in PPL. PPL is not ready yet for enterprise applications.

You can have a look at my blog or contact me at chris {at} pml-lang {dot} dev.