Diagram - Supported profiles

Portable content, notation, exchange and output boundaries for supported Diagram profiles.

Use a profile's validation and diagnostics to decide whether a candidate can be represented. A successful operation may still report approximation or loss. Preserving a native JSON graph is different from exchanging it through another tool's notation or visual format.

#Portable model and symbols

The model codec supports schema version 1 with JSON-safe authored records. Runtime registries, browser objects, functions, route caches and selection are outside that format. Current codec ceilings are 16,000,000 text units, depth 64 and 1,000,000 values; those resource bounds are not a capacity promise. See Model.

Basic geometry is rectangle, ellipse or diamond. A symbol can draw a richer bounded visual while retaining a conservative picking/docking boundary. Symbol graphics support path, rectangle, ellipse, text and PNG image forms, with inert transforms, paint, opacity and dash configuration.

DIAGRAM_SYMBOL_LIMITS fieldCeiling
graphics / ports256 / 64 per definition
pathLength / pathCommands32,768 characters / 1,024 commands
dimension / coordinate4,096 intrinsic dimension / 65,536 coordinate magnitude
pngBytes1,048,576 bytes
svgLength131,072 characters
registrations512 registry definitions

importDiagramSymbolSvg() accepts a flat SVG root with a 0 0 width height viewBox and supported path/rect/ellipse/text elements, double-quoted attributes and the bounded transform/paint grammar. It rejects nested unsupported markup, entities, comments and declarations. It is not a browser SVG sanitizer or a general SVG renderer. Image sources are validated embedded PNG data; remote requests and SVG data URLs are outside this symbol profile. Registering a symbol does not make arbitrary HTML content portable. See Symbols.

#Descriptive notation

Install each semantic module when creating its store, register its visual symbols, and mount its matching notation root/inspector. The module validates portable ownership and identity; the symbols provide appearance. Descriptors, expressions, message arguments, class signatures and guards are inert text/data.

ProfileSupported authoring and reference
BPMNProcess/participant ownership, supported tasks/Call Activity, nested subprocess/loops, events, gateways, sequence/message flows, data/catalog/IO associations and groups; BPMN
UML ClassClass/interface/enumeration presentation, members/compartments and typed relationships; UML Class
ERFields/keys, row ports, cardinality and relationship editing; ER
UML ActivityTyped activities/scopes, actions/pins/flows, partitions and supported structured profiles; Activity and Profiles
UML SequenceParticipants/lifelines, reciprocal occurrences, message sorts, activations and bounded fragment/operand/reference authoring; Sequence and Fragments

The exact union variants, nested fields and result types are retained in the API. The owning guides state family-specific bounds, constraints and unfinished-authoring diagnostics. BPMN collaboration notation describes participant/message relations in a single-user model. It does not implement real-time collaborative editing.

#BPMN XML exchange

FormatRepresentation and limits
BPMN XML/DISupported descriptive semantic graph plus required DI; detached reader candidate and explicit acceptance; no schema/service/resource fetching

BPMN XML distinguishes standard, extension, approximation, loss and incomplete representation. Reader unsupported defaults to 'reject'; explicit omission cannot repair invalid required references. Writer curves default to bounded flattening. The 8 MiB XML ceiling, 5,000 canvas-record ceiling, parser depth/token limits and all lowerable options are listed in BPMN XML. Supported round trips are not byte-identical XML or executable-process correctness.

#SVG, raster and print

Rendered-template export captures mounted Vue content. Rooted controls select a directly owned viewport, or accept an explicit source. The selected source supplies committed geometry, HTML templates, nested SVG, CSS, generated content, fonts, and images from mounted in-tree content. Required offscreen framework content is rejected. Missing content/resources or unsupported rendering fails instead of returning partial success.

Detached export retains portable scenes built from the complete saved snapshot, approved geometry, and explicit options. Detached custom HTML/component types require portable adapters. See Export for source selection, color schemes, background precedence, and strict resource failures.

OutputBoundary
SVGPer-page models; rendered-source output embeds captured HTML with foreignObject; detached output uses portable graphics
PNGTransparent or opaque background; single image or bounded tile stream
JPEGOpaque background required; transparent JPEG rejects
Raster tilesCaller consumes one tile at a time; streaming does not imply a stitched full-size image
PrintPaper/margins/orientation, fit or tiled planning, prepared browser document, readiness, user print and explicit close

Source-backed output discovers and embeds used fonts and images automatically. Missing bytes, fallback fonts, or decode failures fail output. Explicit fonts and resourceProvider retain keyed precedence and validation. Detached output still acquires images/fonts only through an explicit resource provider. Embedded-font declarations do not certify glyph coverage or identical shaping. Limits/cancellation are part of the operation result. See Export and Print for all option defaults and resource budgets.

Diagram does not provide a direct PDF API, real-time collaboration/collaborative Undo, live execution overlays or AI authoring. Descriptive diagrams do not run the processes or code they depict. Those product boundaries do not remove the implemented ordinary editing, data and notation workflows.

See Performance for workload and resource guidance, and Accessibility for keyboard, focus and application validation.