Polyglot by default
One language for Oracle, PostgreSQL, MongoDB, Cassandra, BigQuery, Snowflake, Neo4j, Avro, Parquet, JSON Schema, and OpenAPI. Vocabulary matches each target's native terms.
An open markup language for describing structured data across relational, document, columnar, graph, and serialization paradigms. Human-authorable, AI-readable, designed for the polyglot data stack.
xdbml: 0.1
Type Address {
street varchar [not null]
city varchar [not null]
country varchar [default: 'US']
}
Container core [type: schema] {
Entity customers {
id int [pk]
email varchar [unique, not null,
pattern: '^[^@]+@[^@]+$',
tags: ['pii', 'gdpr-subject']]
primary_address Address
}
}
Container orders_store [type: database] {
Collection orders {
_id objectId [pk]
customer_id int [not null]
placed_at timestamp [granularity: second]
line_items array [
line_item object {
sku varchar [not null]
quantity int [not null, minimum: 1]
unit_price decimal(10,2)
}
]
payment_method oneOf {
card object { last4 varchar(4), brand varchar }
bank object { iban varchar }
wallet object { provider varchar }
} [discriminator: method_kind]
}
}
Ref: orders_store.orders.customer_id > core.customers.id [source: '1..*', target: '1..1']
Ref: orders_store.orders.line_items.[*].sku > catalog.products.skuThis single document expresses a relational customer schema in Oracle, a MongoDB collection with nested arrays and polymorphic payment methods, a reusable address type, and cross-container relationships including one that traverses an array. It generates Oracle DDL, MongoDB $jsonSchema validators, JSON Schema, Avro schemas, and the schema section of an ODCS data contract.
xDBML is currently a draft v0.1 specification stewarded by Hackolade, with the grammar finalized and an open ecosystem of parsers, generators, and importers being built under Apache License 2.0. The path to neutral foundation governance is described in the governance model.
Feedback from real-world use will shape v1.0. Open an issue with comments, proposals, or questions.