Skip to main content

JSON Abstract Data Notation (JADN)

JADN is an information modeling language used to define the information needed by applications and to serialize that information using one or more data formats. It has several purposes, including convenient and expressive definition of data structures, validation of data instances, providing hints for user interfaces working with structured data, and facilitating protocol internationalization. A JADN specification consists of two parts: an Information Model (abstract schema) that is independent of data format, and serialization rules that define how to represent information using a specific data format. A single JADN schema defines protocol data in multiple formats including XML, JSON, and an actually-concise CBOR format. Additional data formats can be defined and applied to any JADN schema.

The software in this package is organized by function:

  • core: Load, validate, and save a JADN schema.

  • codec: Validate, encode, and decode application information using a specified data format:

    • Idiomatic (verbose) JSON

    • Minimized (concise) JSON

    • CBOR*

    • XML*

  • convert: Convert JADN schema between JSON and documentation formats:

    • text-based Interface Definition Language (IDL)

    • html tables

    • markdown tables

    • GraphViz and PlantUML diagrams

  • transform: Process a JADN schema to produce another JADN schema:

    • combine definitions from separate schemas into a single schema

    • split a schema that defines multiple objects into separate schemas for each object

    • remove unused definitions

    • delete or truncate comments

  • translate: Convert a JADN schema into a concrete schema language:

    • JSON Schema

    • XSD*

    • CDDL*

    • Protobuf*

* Planned

Quickstart

The quickstart.py script illustrates how to use these functions:

  • define and validate a schema

  • convert the schema to and from documentation formats

  • truncate comments

  • translate a JADN schema to JSON Schema

  • validate messages and serialize using multiple data formats:

    • JSON

    • Minimized JSON

Make Artifacts

The make_artifacts.py script translates all JADN schemas in a source directory to multiple formats in an output directory.

Input formats are:

  • JADN

  • JADN IDL

  • HTML (with tags produced by this package)

Output formats are:

  • JADN

  • Core JADN (with extensions removed)

  • JADN IDL

  • HTML tables

  • Markdown tables

  • GraphViz diagram

  • PlantUML diagram

  • JSON Schema

Contributors

Jerome Czachor - Massive code cleanup, type hinting, conversion classes, refactor using datatypes

Feedback

Comments on this software can be submitted using GitHub issues and pull requests.

The JADN specification is being developed by the OASIS OpenC2 Technical Committee. OASIS members may participate directly in its development; others may participate indirectly using GitHub issues or the openc2-comment public mail list.

Metadata

Release files for jadn 0.7.5

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for jadn 0.7.5
File Size Uploaded
jadn-0.7.5.tar.gz 70.4 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for jadn 0.7.5
File Interpreter ABI Platform
jadn-0.7.5-py2.py3-none-any.whl Python 2, Python 3 none any Details

Total release size: 132.8 kB

Release files / jadn-0.7.5.tar.gz

Download URL jadn-0.7.5.tar.gz
Size 70.4 kB
Tags Source
SHA-256 checksum
How to use checksums
5a5e0c4cf2fddea9e213e9bea86593180113c0bba0ae277a07ace2e31b9b2ad0
BLAKE2b-256 checksum
How to use checksums
b2e11748710912185848d65775e1a403ac86aa234f6432740b1d47bcc4e267e5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.11.9

Release files / jadn-0.7.5-py2.py3-none-any.whl

Download URL jadn-0.7.5-py2.py3-none-any.whl
Size 62.4 kB
Tags Python 2 Python 3
SHA-256 checksum
How to use checksums
04df399b3e66c9c8a7bb2bb8212124c8f4d92372146a1778baaf3a4d0522f489
BLAKE2b-256 checksum
How to use checksums
453be21f95b9cc4cc85c0b704e65360920da16c55b4ab473162646ad5ca6bbbc
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.11.9

Release history Release notifications | RSS feed

This release

0.7.5 This release

2 release files

0.7.4

2 release files

0.7.3

2 release files

0.7.2

2 release files

0.7.1

2 release files

0.7.0

2 release files

0.6.23

2 release files

0.6.22

2 release files

0.6.21

2 release files

0.6.20

2 release files

0.6.19

2 release files

0.6.18

2 release files

0.6.17

2 release files

0.6.16

2 release files

0.6.14

2 release files

0.6.13

2 release files

0.6.12

2 release files

0.6.11

2 release files

0.6.10

2 release files

0.6.9

2 release files

0.6.8

2 release files

0.6.7

2 release files

0.6.6

2 release files

0.6.5

2 release files

0.6.4

2 release files

0.6.3

2 release files

0.6.2

2 release files

0.6.1

2 release files

0.5.13

2 release files

0.5.10

2 release files

0.5.9

2 release files

0.5.8

2 release files

0.5.7

2 release files

0.5.6

2 release files

0.5.5

2 release files

0.5.4

2 release files

0.5.3

2 release files

0.5.2

2 release files

0.5.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page