Struxt
Struxt is a human-readable data format designed to be structurally equivalent to XML yet representationally similar to C-style programming languages.
'Struxt'' stands for "Structured Text".
Features
Struxt syntax is designed with the same goals as XML yet be easily created and read by humans while leveraging the machine-readable toolset of XML and the IDE tools of many high-level languages.
Examples
Sample document
note: to: "Tove". from: "Jani". heading: "Reminder". body: "Don't forget me this weekend!".
Alternatively:
note {
to: "Tove".
from: "Jani".
heading {"Reminder"}
body {"Don't forget me this weekend!"}
}
Language elements
Basic components of Struxt
Attributes
Attributes are specified as a comma-separated list of name-value or value-name pairs.
html lang "en", "RTL" dir:
head{title:"My Struxt".}
body:
a "/nicerobot/text-plain/wiki/Struxt":"Struxt".
Advanced components of Struxt
Struxt doesn't require closing tags at the end of the document. This facilitates limited streaming of content into a document. To facilitate terse documents and demonstrated by the HTML example above, one attribute name per tag (and per namespace) is optional for which the Struxt parser will provide the default name.
XML and SDL
Struxt is syntactically similar to SDL (Simple Declarative Language) but differs fundamentally in that Struxt provides an exact but alternative representation of any XML document.
Bindings
Native implementations and bindings for Struxt exist for the following languages:
- Java
- JavaScript
- Go! (programming language)
- Objective-C
- Perl
- PHP
- Python
See also
- Comparison of data serialization formats
- List of lightweight markup languages
Other human-readable serialization formats include:
- AsciiDoc
- JSON, the JavaScript Object Notation
- OGDL
- Plist, the object serialization format from NEXTSTEP
- S-expressions
- SDL
- Simple Outline XML