Skip to content
Kevalkumar edited this page Jan 23, 2026 · 1 revision

Overview

A Blob is a SubmodelElement used to carry embedded binary or textual content (commonly base64-encoded) together with a declared content type. According to the IDTA AAS specification, a Blob represents inline content such as images, documents, markdown text, or other binary artifacts.

DataEngine supports Blob elements as inline payload population.

Semantics and intent

  • A Blob contains embedded content encoded as base64.
  • The contentType attribute describes the media type of the embedded content.
  • The actual payload is provided via the value attribute.
  • Blobs are used when content must be transported directly within the AAS structure, rather than referenced externally.

How DataEngine handles Blob

DataEngine applies the following handling rules for Blob elements:

  • A one-to-one mapping is maintained between a semanticId and the embedded payload.
  • The semanticId is extracted from the template during submodel or submodel element requests.
  • DataEngine requests the Blob payload from the Plugin.
  • The Plugin returns a base64-encoded payload mapped to the semanticId.
  • The contentType is template-driven.
  • DataEngine injects the returned payload into the value field without altering the element structure.
  • DataEngine does not store, decode, or transform Blob content.

Example

Submodel template (from Template Repository)

{
  "modelType": "Blob",
  "idShort": "Header",
  "semanticId": {
    "keys": [
      {
        "type": "GlobalReference",
        "value": "http://admin-shell.io/aasx-package-explorer/functions/asciidoc/heading1/1/0"
      }
    ],
    "type": "ExternalReference"
  },
  "contentType": "text/markdown",
  "value": ""
}

Value provided by Plugin (base64 payload)

{
    "http://admin-shell.io/aasx-package-explorer/functions/asciidoc/heading1/1/0": "iVBORw0KGgoAAAANSUhEUgAA..."
}

DataEngine response to user (base64 payload example)

{
  "modelType": "Blob",
  "idShort": "Header",
  "semanticId": {
    "keys": [
      {
        "type": "GlobalReference",
        "value": "http://admin-shell.io/aasx-package-explorer/functions/asciidoc/heading1/1/0"
      }
    ],
    "type": "ExternalReference"
  },
  "contentType": "text/markdown",
  "value": "iVBORw0KGgoAAAANSUhEUgAA..."
}

Constraints and behavior

  • Each Blob semanticId must resolve to at most one payload.
  • Plugins must return base64-encoded content.
  • DataEngine does not validate or interpret the decoded content; consumers are responsible for decoding and rendering.

Clone this wiki locally