SML - The Simple Markup Language

The Simple Markup Language is an easy and fast to type markup language. It only uses a minimal set of special characters and therefor feels very natural. It is line-based, and if you are a touch typist you will love it.

SML was specifically designed to be understandable for even non-computer experts. It is human-friendly, while also being machine-friendly. It has multi-language support and offers a 100% reliable encoding and decoding.

SML is a lightweight markup language but still powerful and flexible. It is meant to be an alternative for XML, JSON and YAML.

It is especially suited for hierarchical data, but can also nest tabular data with ease. Through its support for comments and whitespace-preserving loading and saving techniques, it is the number one choice for configuration files. But it's not limited to that.

Here is a simple example of an SML document, a simple message data structure:

Message
  From Andrew
  To James
  Timestamp 2021-01-02 15:43
  Text "I'll be there at 5pm"
End

A SimpleML document represents a data structure which is called a simple object. To serialize a simple object in XML or JSON and preserve all its properties, much more characters are required:

XML:

<?xml version="1.0" encoding="UTF-8"?>
<Element Name="Message">
  <Attribute Name="From" Value="Andrew"/>
  <Attribute Name="To" Value="James"/>
  <Attribute Name="Timestamp">
    <Value>2021-01-02</Value>
    <Value>15:43</Value>
  <Attribute Name="Text" Value="I'll be there at 5pm"/>
</Element>

JSON:

{"Name":"Message","Children":[
  {"Name":"From","Values":["Andrew"]},
  {"Name":"To","Values":["James"]},
  {"Name":"Timestamp","Values":["2021-01-02","15:43"]},
  {"Name":"Text","Values":["I'll be there at 5pm"]}
]}

SML is built upon:

Getting Started

Watch the explanation video for SML:

Read the specification document: Specification

Try it out in the browser: Playground

Find an implementation for your programming language: Libs

Convert your files to SML: Convert

More Videos


Follow ReliableTXT