Skip to content

RFML schema ​

Every node, inline item and object an RFML document holds, with its properties, from the JSON Schema that describes RFML 0.2 (schema/rfml-0.2.json, made from the language's metamodel). The RFML specification says what each one does.

Nodes ​

barcode ​

node.barcode in the schema.

A barcode or 2D code

PropertyTypeRequiredDescription
type"barcode"yes
idstringyesUnique among the document's nodes; component internals have their own scope.
ifexpressionRender the node only when this is true.
classarray of stringNamed style classes, applied in order.
stylestyleInline style declarations.
rulesarray of conditional styleConditional styles.
symbologyqr, datamatrix, pdf417, code128, code39, ean13, ean8, upca, itf, aztecyes
valueexpressionyes
showTextbooleanHuman-readable text under linear codes. Default false.
errorCorrectionL, M, Q, HQR only.
altinline contentAlternate text; without it, the encoded value.
decorativebooleanMarks the barcode as an artifact in tagged PDF and hides it from screen readers. Default false.
langstringBCP 47 language tag for this subtree.
runningmap of expressionRunning values set when the node is placed on a page, read with page.running(name).
exportexportPer-format hints.
actionsarray of actionWhat happens when a viewer clicks or hovers.
metanode-metaLabel, description, note and locks.

block ​

node.block in the schema.

A block node (RFML §5.3); slot only inside component templates

PropertyTypeRequiredDescription
typeone of box, text, heading, list, table, image, rule, pagebreak, frame, pagestamp, repeat, matrix, chart, barcode, use, subreport, toc, slot, stringyes

box ​

node.box in the schema.

The general-purpose container. Layout comes from display: block | flex | grid

PropertyTypeRequiredDescription
type"box"yes
idstringyesUnique among the document's nodes; component internals have their own scope.
ifexpressionRender the node only when this is true.
classarray of stringNamed style classes, applied in order.
stylestyleInline style declarations.
rulesarray of conditional styleConditional styles.
childrenarray of nodes
langstringBCP 47 language tag for this subtree.
runningmap of expressionRunning values set when the node is placed on a page, read with page.running(name).
exportexportPer-format hints.
actionsarray of actionWhat happens when a viewer clicks or hovers.
metanode-metaLabel, description, note and locks.

chart ​

node.chart in the schema.

A chart drawn from a list. Width and height come from style; charts never break across pages

PropertyTypeRequiredDescription
type"chart"yes
idstringyesUnique among the document's nodes; component internals have their own scope.
ifexpressionRender the node only when this is true.
classarray of stringNamed style classes, applied in order.
stylestyleInline style declarations.
rulesarray of conditional styleConditional styles.
sourceexpressionyes
asstringRow alias.
kindcolumn, bar, line, area, pie, donut, scatter, combo
categoryexpressionCategory (x) value per row.
seriesarray of series
stackednone, normal, percentDefault "none".
axesaxes
legendlegend
labelsdata-labels
titleinline content
palettearray of colourSeries colours; default from the theme.
altinline contentText alternative; required for tagged PDF.
vegaLiteobjectA Vega-Lite specification, instead of kind and series.
langstringBCP 47 language tag for this subtree.
runningmap of expressionRunning values set when the node is placed on a page, read with page.running(name).
exportexportPer-format hints.
actionsarray of actionWhat happens when a viewer clicks or hovers.
metanode-metaLabel, description, note and locks.

extension ​

node.extension in the schema.

A namespaced extension element (RFML §23). Its own properties are defined by the extension

PropertyTypeRequiredDescription
typestringyes
idstringyesUnique among the document's nodes; component internals have their own scope.
ifexpressionRender the node only when this is true.
classarray of stringNamed style classes, applied in order.
stylestyleInline style declarations.
rulesarray of conditional styleConditional styles.
langstringBCP 47 language tag for this subtree.
runningmap of expressionRunning values set when the node is placed on a page, read with page.running(name).
exportexportPer-format hints.
actionsarray of actionWhat happens when a viewer clicks or hovers.
metanode-metaLabel, description, note and locks.

frame ​

node.frame in the schema.

A fixed-size container whose children are positioned absolutely

PropertyTypeRequiredDescription
type"frame"yes
idstringyesUnique among the document's nodes; component internals have their own scope.
ifexpressionRender the node only when this is true.
classarray of stringNamed style classes, applied in order.
stylestyleInline style declarations.
rulesarray of conditional styleConditional styles.
childrenarray of nodes
langstringBCP 47 language tag for this subtree.
runningmap of expressionRunning values set when the node is placed on a page, read with page.running(name).
exportexportPer-format hints.
actionsarray of actionWhat happens when a viewer clicks or hovers.
metanode-metaLabel, description, note and locks.

heading ​

node.heading in the schema.

A heading; it takes part in the outline, bookmarks, table of contents and tagged PDF

PropertyTypeRequiredDescription
type"heading"yes
idstringyesUnique among the document's nodes; component internals have their own scope.
ifexpressionRender the node only when this is true.
classarray of stringNamed style classes, applied in order.
stylestyleInline style declarations.
rulesarray of conditional styleConditional styles.
levelintegeryesAt least 1. At most 6.
contentinline contentyes
bookmarkbooleanAdds a PDF bookmark. Default true.
langstringBCP 47 language tag for this subtree.
runningmap of expressionRunning values set when the node is placed on a page, read with page.running(name).
exportexportPer-format hints.
actionsarray of actionWhat happens when a viewer clicks or hovers.
metanode-metaLabel, description, note and locks.

image ​

node.image in the schema.

An image, from an asset or an expression

PropertyTypeRequiredDescription
type"image"yes
idstringyesUnique among the document's nodes; component internals have their own scope.
ifexpressionRender the node only when this is true.
classarray of stringNamed style classes, applied in order.
stylestyleInline style declarations.
rulesarray of conditional styleConditional styles.
assetassetStatic image from assets.
srcexpressionDynamic image: an asset id, a library reference or a data: URL.
altinline contentRequired unless decorative is true.
decorativebooleanMarks the image as an artifact in tagged PDF. Default false.
fitcontain, cover, fill, noneDefault "contain".
langstringBCP 47 language tag for this subtree.
runningmap of expressionRunning values set when the node is placed on a page, read with page.running(name).
exportexportPer-format hints.
actionsarray of actionWhat happens when a viewer clicks or hovers.
metanode-metaLabel, description, note and locks.

item ​

node.item in the schema.

A node in a list: item, or a repeat producing items

PropertyTypeRequiredDescription
typeone of repeat, itemyes

list ​

node.list in the schema.

A list of items

PropertyTypeRequiredDescription
type"list"yes
idstringyesUnique among the document's nodes; component internals have their own scope.
ifexpressionRender the node only when this is true.
classarray of stringNamed style classes, applied in order.
stylestyleInline style declarations.
rulesarray of conditional styleConditional styles.
markerdisc, circle, square, decimal, lower-alpha, upper-alpha, lower-roman, upper-roman, noneDefault "disc".
startintegerFirst number for ordered markers.
childrenarray of nodes
langstringBCP 47 language tag for this subtree.
runningmap of expressionRunning values set when the node is placed on a page, read with page.running(name).
exportexportPer-format hints.
actionsarray of actionWhat happens when a viewer clicks or hovers.
metanode-metaLabel, description, note and locks.

matrix ​

node.matrix in the schema.

A crosstab: row groups down the side, column groups across the top, aggregate cells

PropertyTypeRequiredDescription
type"matrix"yes
idstringyesUnique among the document's nodes; component internals have their own scope.
ifexpressionRender the node only when this is true.
classarray of stringNamed style classes, applied in order.
stylestyleInline style declarations.
rulesarray of conditional styleConditional styles.
sourceexpressionyesThe list to repeat, evaluated in the enclosing scope.
asstringRow alias, default row. Default "row".
filterexpressionApplied first.
sortarray of sort-keyApplied after filtering. Stable.
limitintegerApplied after sorting. At least 0.
varsmap of expressionPer-item variables.
filtersarray of viewer-filterFilters the viewer offers to readers.
rowsarray of matrix-groupyesRow groups, outermost first.
columnsarray of matrix-groupyesColumn groups, outermost first.
cellsarray of matrix-cell
totalsmatrix-totals
cornerinline contentTop-left header.
repeatRowHeadersbooleanDefault false.
repeatColumnHeadersbooleanDefault false.
emptyarray of nodes
continuationHeaderarray of nodes
continuationFooterarray of nodes
langstringBCP 47 language tag for this subtree.
runningmap of expressionRunning values set when the node is placed on a page, read with page.running(name).
exportexportPer-format hints.
actionsarray of actionWhat happens when a viewer clicks or hovers.
metanode-metaLabel, description, note and locks.

pagebreak ​

node.pagebreak in the schema.

Forces a page break, optionally switching page template

PropertyTypeRequiredDescription
type"pagebreak"yes
idstringyesUnique among the document's nodes; component internals have their own scope.
ifexpressionRender the node only when this is true.
classarray of stringNamed style classes, applied in order.
stylestyleInline style declarations.
rulesarray of conditional styleConditional styles.
pagepage template idPage template to switch to.
langstringBCP 47 language tag for this subtree.
runningmap of expressionRunning values set when the node is placed on a page, read with page.running(name).
exportexportPer-format hints.
actionsarray of actionWhat happens when a viewer clicks or hovers.
metanode-metaLabel, description, note and locks.

pagestamp ​

node.pagestamp in the schema.

Children positioned against the page where its point in the flow lands; the first instance on a page draws, or each with once: item

PropertyTypeRequiredDescription
type"pagestamp"yes
idstringyesUnique among the document's nodes; component internals have their own scope.
ifexpressionRender the node only when this is true.
classarray of stringNamed style classes, applied in order.
stylestyleInline style declarations.
rulesarray of conditional styleConditional styles.
childrenarray of nodes
decorativebooleanMarks the stamp as an artifact in tagged output, and hides it from screen readers. Default false.
oncepage, itempage: the first instance on a page draws; item: every instance draws. Default "page".
langstringBCP 47 language tag for this subtree.
runningmap of expressionRunning values set when the node is placed on a page, read with page.running(name).
exportexportPer-format hints.
actionsarray of actionWhat happens when a viewer clicks or hovers.
metanode-metaLabel, description, note and locks.

repeat ​

node.repeat in the schema.

Repeats its detail for each item. It has no box of its own: its slots hold what its parent slot accepts

PropertyTypeRequiredDescription
type"repeat"yes
idstringyesUnique among the document's nodes; component internals have their own scope.
ifexpressionRender the node only when this is true.
classarray of stringNamed style classes, applied in order.
stylestyleInline style declarations.
rulesarray of conditional styleConditional styles.
sourceexpressionyesThe list to repeat, evaluated in the enclosing scope.
asstringRow alias, default row. Default "row".
filterexpressionApplied first.
sortarray of sort-keyApplied after filtering. Stable.
limitintegerApplied after sorting. At least 0.
varsmap of expressionPer-item variables.
orphansintegerAt least this many items of a group (else the region) before a page break inside it. At least 1.
widowsintegerAt least this many items of a group (else the region) after a page break inside it, with its footer. At least 1.
groupsarray of repeat-groupNested groups, outermost first.
filtersarray of viewer-filterFilters the viewer offers to readers.
repeatHeaderbooleanRepeat the header on each page. Default false.
headerarray of nodesBefore the items.
detailarray of nodesyesRendered for each item.
separatorarray of nodesBetween items.
footerarray of nodesAfter the items.
emptyarray of nodesRendered instead when there are no items.
continuationHeaderarray of nodes
continuationFooterarray of nodes
langstringBCP 47 language tag for this subtree.
runningmap of expressionRunning values set when the node is placed on a page, read with page.running(name).
exportexportPer-format hints.
actionsarray of actionWhat happens when a viewer clicks or hovers.
metanode-metaLabel, description, note and locks.

rule ​

node.rule in the schema.

A horizontal line, drawn with border-top

PropertyTypeRequiredDescription
type"rule"yes
idstringyesUnique among the document's nodes; component internals have their own scope.
ifexpressionRender the node only when this is true.
classarray of stringNamed style classes, applied in order.
stylestyleInline style declarations.
rulesarray of conditional styleConditional styles.
langstringBCP 47 language tag for this subtree.
runningmap of expressionRunning values set when the node is placed on a page, read with page.running(name).
exportexportPer-format hints.
actionsarray of actionWhat happens when a viewer clicks or hovers.
metanode-metaLabel, description, note and locks.

slot ​

node.slot in the schema.

Marks where caller content goes in a component template

PropertyTypeRequiredDescription
type"slot"yes
namestringyes
childrenarray of nodesDefault content.

subreport ​

node.subreport in the schema.

Embeds another RFML document in the page flow

PropertyTypeRequiredDescription
type"subreport"yes
idstringyesUnique among the document's nodes; component internals have their own scope.
ifexpressionRender the node only when this is true.
classarray of stringNamed style classes, applied in order.
stylestyleInline style declarations.
rulesarray of conditional styleConditional styles.
reportstringyesDocument reference, e.g. library:statements/line-items.
versionstringSemver range, pinned at publish.
paramsmap of expressionValues for the child's parameters.
datamap of expressionValues for the child's datasets.
langstringBCP 47 language tag for this subtree.
runningmap of expressionRunning values set when the node is placed on a page, read with page.running(name).
exportexportPer-format hints.
actionsarray of actionWhat happens when a viewer clicks or hovers.
metanode-metaLabel, description, note and locks.

table ​

node.table in the schema.

A grid of rows and cells: static (explicit rows) or bound (rows from source)

PropertyTypeRequiredDescription
type"table"yes
idstringyesUnique among the document's nodes; component internals have their own scope.
ifexpressionRender the node only when this is true.
classarray of stringNamed style classes, applied in order.
stylestyleInline style declarations.
rulesarray of conditional styleConditional styles.
sourceexpressionMakes the table bound: rows are generated from this list.
asstringRow alias, default row. Default "row".
filterexpression
sortarray of sort-key
limitintegerAt least 0.
varsmap of expression
orphansintegerAt least this many items of a group (else the region) before a page break inside it. At least 1.
widowsintegerAt least this many items of a group (else the region) after a page break inside it, with its footer. At least 1.
groupsarray of table-groupNested groups, outermost first.
filtersarray of viewer-filterFilters the viewer offers to readers.
repeatHeaderbooleanRepeat the header rows on each page. Default true.
columnsarray of column
headerarray of rowStatic header rows.
rowsarray of rowStatic body rows.
footerarray of rowStatic footer rows.
headerRowsarray of rowExtra rows above the column headers.
footerRowsarray of rowExtra rows below the column footers.
emptyarray of nodesRendered instead when there are no items.
continuationHeaderone of array of row, array of nodesPlaced at the top of each continuation page.
continuationFooterone of array of row, array of nodesPlaced at the bottom of each page the table continues past.
langstringBCP 47 language tag for this subtree.
runningmap of expressionRunning values set when the node is placed on a page, read with page.running(name).
exportexportPer-format hints.
actionsarray of actionWhat happens when a viewer clicks or hovers.
metanode-metaLabel, description, note and locks.

text ​

node.text in the schema.

A paragraph

PropertyTypeRequiredDescription
type"text"yes
idstringyesUnique among the document's nodes; component internals have their own scope.
ifexpressionRender the node only when this is true.
classarray of stringNamed style classes, applied in order.
stylestyleInline style declarations.
rulesarray of conditional styleConditional styles.
contentinline contentyes
langstringBCP 47 language tag for this subtree.
runningmap of expressionRunning values set when the node is placed on a page, read with page.running(name).
exportexportPer-format hints.
actionsarray of actionWhat happens when a viewer clicks or hovers.
metanode-metaLabel, description, note and locks.

toc ​

node.toc in the schema.

A generated table of contents built from headings

PropertyTypeRequiredDescription
type"toc"yes
idstringyesUnique among the document's nodes; component internals have their own scope.
ifexpressionRender the node only when this is true.
classarray of stringNamed style classes, applied in order.
stylestyleInline style declarations.
rulesarray of conditional styleConditional styles.
levelsintegerDeepest heading level included. Default 3. At least 1. At most 6.
leaderdots, noneWhat joins an entry to its page number. Default "dots".
langstringBCP 47 language tag for this subtree.
runningmap of expressionRunning values set when the node is placed on a page, read with page.running(name).
exportexportPer-format hints.
actionsarray of actionWhat happens when a viewer clicks or hovers.
metanode-metaLabel, description, note and locks.

use ​

node.use in the schema.

An instance of a component

PropertyTypeRequiredDescription
type"use"yes
idstringyesUnique among the document's nodes; component internals have their own scope.
ifexpressionRender the node only when this is true.
classarray of stringNamed style classes, applied in order.
stylestyleInline style declarations.
rulesarray of conditional styleConditional styles.
componentcomponent nameyes
propsmap of expressionProp values, evaluated where the component is used.
slotsmap of array of nodesContent for the component's slots.
langstringBCP 47 language tag for this subtree.
runningmap of expressionRunning values set when the node is placed on a page, read with page.running(name).
exportexportPer-format hints.
actionsarray of actionWhat happens when a viewer clicks or hovers.
metanode-metaLabel, description, note and locks.

Inline items ​

What inline content holds besides text (§7).

br ​

inline.br in the schema.

A forced line break

PropertyTypeRequiredDescription
type"br"yes

field-image ​

inline.field-image in the schema.

An image inside text, from an expression

PropertyTypeRequiredDescription
type"field-image"yes
srcexpressionyes
altinline contentyes
stylestyle

footnote ​

inline.footnote in the schema.

A footnote: a marker in the text and its content at the bottom of the page (RFML §7.3)

PropertyTypeRequiredDescription
type"footnote"yes
idstringLets text refer to the note with footnote(id).
contentinline contentyes
markerinline contentFixed marker text instead of automatic numbering.
ifexpression

inline.link in the schema.

A hyperlink: an https: or mailto: URL, '#<node-id>' or a report() target

PropertyTypeRequiredDescription
type"link"yes
hrefexpressionyes
contentinline contentyes
stylestyle
classarray of string

span ​

inline.span in the schema.

Styled inline content

PropertyTypeRequiredDescription
type"span"yes
contentinline contentyes
stylestyle
classarray of string
rulesarray of conditional style
ifexpression
langstring

Other objects ​

action ​

What happens when a viewer clicks or hovers (RFML §17.6.2). One effect per action

PropertyTypeRequiredDescription
onclick, hoveryes
ifexpression
toggleone of node id, array of node idNode id(s) to show or hide.
initialone of expanded, collapsed, expressionexpanded, collapsed, or an expression giving whether it starts expanded.
indicatorbooleanShow ▸/▾ on the trigger. Default true.
navigateexpressionTarget: a URL, '#<node-id>' or report(id, params).
targetself, newDefault "self".
setParamsmap of expressionParameter values to set before rendering again.
tooltipinline contentText shown on hover.

asset ​

An image, font or other file (RFML §15)

PropertyTypeRequiredDescription
kindimage, font, fileyes
srcstringyesA host library reference, a path inside the bundle, or a data: URL.
familystringFont family name.
weightone of string, numberFont weight or range, e.g. 100 900.
stylenormal, italic, oblique
descriptionstring

axes ​

Chart axes

PropertyTypeRequiredDescription
xaxis
yaxis
y2axis

axis ​

A chart axis

PropertyTypeRequiredDescription
titleinline content
formatstringA Format pattern for tick labels.
minnumber
maxnumber
gridlinesboolean
reversebooleanDefault false.

cell ​

A cell of a static row, with exactly one of content or children

PropertyTypeRequiredDescription
idstring
classarray of string
stylestyle
rulesarray of conditional style
colspanintegerDefault 1. At least 1.
rowspanintegerDefault 1. At least 1.
contentinline content
childrenarray of nodes

column ​

A table column (RFML §6.5, §12.3)

PropertyTypeRequiredDescription
idstringyes
ifexpressionHide the whole column.
widthstring or numberA length, auto or <n>fr. At least 0.
headerinline content
classarray of string
stylestyleApplies to every cell in the column.
rulesarray of conditional style
cellinline contentCell content, evaluated per row.
cellChildrenarray of nodesCell nodes, instead of cell.
footerinline contentColumn footer, evaluated in region scope.
sortablebooleanReaders can sort by this column in the viewer. Default false.
sortByexpressionSort key; defaults to the cell's expression if it is a plain path.

column-bound ​

A column of a bound table

PropertyTypeRequiredDescription
idstringyes
ifexpressionHide the whole column.
widthstring or numberA length, auto or <n>fr. At least 0.
headerinline content
classarray of string
stylestyleApplies to every cell in the column.
rulesarray of conditional style
cellinline contentCell content, evaluated per row.
cellChildrenarray of nodesCell nodes, instead of cell.
footerinline contentColumn footer, evaluated in region scope.
sortablebooleanReaders can sort by this column in the viewer. Default false.
sortByexpressionSort key; defaults to the cell's expression if it is a plain path.

column-static ​

A column of a static table: width and per-column styles

PropertyTypeRequiredDescription
idstringyes
ifexpressionHide the whole column.
widthstring or numberA length, auto or <n>fr. At least 0.
classarray of string
stylestyleApplies to every cell in the column.
rulesarray of conditional style

component ​

A reusable fragment with typed props and named slots (RFML §14.1)

PropertyTypeRequiredDescription
descriptionstring
propsobject or booleanJSON Schema of the props.
slotsarray of string
partsmap of node idPart names mapped to node ids in the template.
templatearray of nodesyes

content ​

Inline content: a string, or a list of strings and inline items. {{ expr }} interpolates (RFML §7)

data-labels ​

Chart data labels

PropertyTypeRequiredDescription
showbooleanyes
formatstring

dataset ​

A declared dataset (RFML §10.1), read as data.<name>

PropertyTypeRequiredDescription
sourcestringA host data source that supplies this dataset.
sourceParamsmap of expressionValues passed to the source.
schemaobject or booleanJSON Schema of the data; may be partial.
schemaFromsourcesource: the schema is the source's published one, instead of schema.
sampleanySample data, inline or as a reference.
descriptionstring
requiredbooleanDefault true.

document ​

An RFML document (RFML §4)

PropertyTypeRequiredDescription
$schemastringURL of the RFML JSON Schema version.
rfml0.1, 0.2yesLanguage version.
idstringyesStable document id.
metadocument-metayes
paramsarray of paramReport parameters, in order.
datamap of datasetDeclared datasets.
varsmap of expressionDocument-level computed values, evaluated in declaration order.
stylesstyles
assetsmap of asset
importsarray of import
componentsmap of component
i18nmap of map of stringMessage catalogues by locale.
pagesarray of pageyesPage templates; the first is the default.
footnotesfootnotes
bodyarray of nodesyesThe document content.
outputsoutputs
testsarray of test

document-meta ​

Document metadata (RFML §19.1)

PropertyTypeRequiredDescription
titlestringyes
descriptionstringWhat the report is for, written for people and AI agents.
localestringDefault formatting locale.
currencystringDefault currency.
tagsarray of string
ownerstring
versionstring
designerobjectDesigner-only state, such as guides, ignored by engines.

export ​

Per-format hints (RFML §17.4). Unknown hint keys are warnings

PropertyTypeRequiredDescription
pdfexport-pdf
docxexport-docx
xlsxexport-xlsx
htmlexport-html

export-docx ​

DOCX export hints

PropertyTypeRequiredDescription
skipbooleanLeave the node out of this format. Default false.
keepWithNextbooleanKeep the paragraph on the same page as the next one. Default false.

export-html ​

HTML export hints

PropertyTypeRequiredDescription
skipbooleanLeave the node out of this format. Default false.

export-pdf ​

PDF export hints

PropertyTypeRequiredDescription
skipbooleanLeave the node out of this format. Default false.

export-xlsx ​

XLSX export hints

PropertyTypeRequiredDescription
skipbooleanLeave the node out of this format. Default false.
sheetstringWorksheet name for this region.

footnotes ​

Numbering and placement of footnotes (RFML §7.3)

PropertyTypeRequiredDescription
numberingdecimal, lower-alpha, lower-roman, symbolsDefault "decimal".
restartdocument, section, pageDefault "document".
maxHeightlengthLength or percentage of the content area. Default "50%". At least 0.

group-sort ​

Group order by an expression

PropertyTypeRequiredDescription
byexpressionyes
directionasc, descDefault "asc".

import ​

A component or theme library (RFML §14.3)

PropertyTypeRequiredDescription
fromstringyesLibrary reference, e.g. library:billing.
versionstringSemver range.
componentsarray of string
themebooleanDefault false.

inline ​

An inline item (RFML §7)

PropertyTypeRequiredDescription
typespan, link, br, field-image, footnoteyes

legend ​

Chart legend

PropertyTypeRequiredDescription
positiontop, bottom, left, right, noneyes

matrix-cell ​

An aggregate cell of a matrix, evaluated with cell.rows

PropertyTypeRequiredDescription
idstringyes
valueexpressionyes
formatstringA Format pattern.
stylestyle
rulesarray of conditional style

matrix-group ​

A row or column group of a matrix (RFML §12.5)

PropertyTypeRequiredDescription
idstringyes
byexpressionyes
sortone of asc, desc, group-sortDefault "asc".
varsmap of expression
headerarray of nodesHeader content; default the group key.

matrix-totals ​

Total rows and columns of a matrix

PropertyTypeRequiredDescription
rowsbooleanDefault false.
columnsbooleanDefault false.
labelinline content

node-meta ​

Authoring metadata of a node (RFML §19.2)

PropertyTypeRequiredDescription
labelstringName shown in the designer outline.
notestringA free-form author note.
descriptionstringIntent of this node, for people and AI agents.
lockedone of true, array of stringtrue, or the locked properties and paths below them such as style.color.
designerobjectDesigner-only state, ignored by engines.

output-docx ​

DOCX settings (RFML §17.2)

PropertyTypeRequiredDescription
viewobjectA fixed view state for this format (RFML §17.6.1).

output-html ​

HTML settings (RFML §17.5)

PropertyTypeRequiredDescription
paramPanelbooleanShow the parameter panel in the viewer. Default true.
viewobjectA fixed view state for this format (RFML §17.6.1).

output-pdf ​

PDF settings (RFML §17.1)

PropertyTypeRequiredDescription
standardnone, PDF/A-2b, PDF/A-3b, PDF/UA-1, PDF/A-2a+UA-1Default "none".
taggedbooleanDefault true.
compressboolean
embedFontsboolean
metadatapdf-metadata
attachmentsarray of assetAssets embedded as PDF/A-3 attachments.
viewobjectA fixed view state for this format (RFML §17.6.1).

output-xlsx ​

XLSX settings (RFML §17.3)

PropertyTypeRequiredDescription
sheetsarray of xlsx-sheet
otherContenttop, skipContent outside regions: above the first region, or skipped.
viewobjectA fixed view state for this format (RFML §17.6.1).

outputs ​

Per-format settings (RFML §17)

PropertyTypeRequiredDescription
pdfoutput-pdf
docxoutput-docx
xlsxoutput-xlsx
htmloutput-html

page ​

A page template (RFML §9.1)

PropertyTypeRequiredDescription
idstringyes
sizeone of A3, A4, A5, B5, letter, legal, tabloid, page-sizeyes
orientationportrait, landscapeDefault "portrait".
marginstring or numberCSS margin shorthand.
footerDistancelengthFrom the page's bottom edge to the footer's bottom edge; half the bottom margin when not set. At least 0.
bleedlengthFor print outputs. At least 0.
stylestylePage style; parts styles the header, footer and content areas.
headerarray of nodesPlaced in the top margin area.
footerarray of nodesPlaced in the bottom margin area.
backgroundarray of nodesDrawn behind content, as a full-page frame.
overlayarray of nodesDrawn above everything else on the page, as a full-page frame.
variantspage-variants
metanode-metaLabel, description, note and locks.

page-size ​

A custom page size

PropertyTypeRequiredDescription
widthlengthyesAt least 0.
heightlengthyesAt least 0.

page-variant ​

Overrides for the first, left, right, last or blank pages

PropertyTypeRequiredDescription
marginstring or numberCSS margin shorthand.
footerDistancelengthFrom the page's bottom edge to the footer's bottom edge; half the bottom margin when not set. At least 0.
headerarray of nodesPlaced in the top margin area.
footerarray of nodesPlaced in the bottom margin area.
backgroundarray of nodesDrawn behind content, as a full-page frame.
overlayarray of nodesDrawn above everything else on the page, as a full-page frame.

page-variants ​

Page variants, matched in the order blank, first, last, left/right

PropertyTypeRequiredDescription
firstpage-variant
leftpage-variant
rightpage-variant
lastpage-variant
blankpage-variant

param ​

A report parameter (RFML §10.3)

PropertyTypeRequiredDescription
namestringyesRead as params.<name>.
typestring, number, integer, boolean, date, datetimeyes
labelinline contentPrompt text.
descriptionstring
defaultexpressionMay refer to now and earlier parameters.
requiredbooleanDefault false.
multiplebooleanThe value is a list. Default false.
optionsone of array of param-option, param-option-source
hiddenbooleanNot shown in prompts. Default false.

param-option ​

One fixed choice of a parameter

PropertyTypeRequiredDescription
valueanyyes
labelinline content

param-option-source ​

Parameter choices computed from a dataset or earlier parameters

PropertyTypeRequiredDescription
sourceexpressionyes
valueexpressionyes
labelexpression

pdf-metadata ​

PDF document information; the title comes from meta.title

PropertyTypeRequiredDescription
authorstring
subjectstring
keywordsstring

repeat-group ​

A group of a repeat (RFML §12.4)

PropertyTypeRequiredDescription
idstringyes
byexpressionyesGroup key, in row scope.
sortone of asc, desc, group-sortGroup order; default key ascending. Default "asc".
breakBeforeauto, pageStart each group on a new page. Default "auto".
keepTogetherbooleanAvoid breaking a group when it fits on one page. Default false.
repeatHeaderbooleanRepeat the group header after a page break. Default false.
varsmap of expressionPer-group variables.
headerarray of nodes
footerarray of nodes

row ​

A table row (RFML §6.5)

PropertyTypeRequiredDescription
idstringyes
ifexpression
classarray of string
stylestyle
cellsarray of cellyes

series ​

A chart series

PropertyTypeRequiredDescription
idstringyes
nameinline contentyes
valueexpressionyes
kindcolumn, bar, line, area, scatterSeries kind, in combo charts only.
axisy, y2Default "y".
colorcolour
ifexpression

sort-key ​

One sort key of a region

PropertyTypeRequiredDescription
byexpressionyes
directionasc, descDefault "asc".
nullsfirst, last

styles ​

Tokens, defaults, classes and theme (RFML §8.2)

PropertyTypeRequiredDescription
extendsstringTheme reference.
tokensmap of one of string, numberNamed values, referenced as var(--<token>).
defaultsobjectStyles per element type.
defaults.documentstyle
defaults.boxstyle
defaults.textstyle
defaults.headingstyle
defaults.liststyle
defaults.tablestyle
defaults.imagestyle
defaults.rulestyle
defaults.pagebreakstyle
defaults.framestyle
defaults.pagestampstyle
defaults.repeatstyle
defaults.matrixstyle
defaults.chartstyle
defaults.barcodestyle
defaults.usestyle
defaults.subreportstyle
defaults.tocstyle
defaults.itemstyle
defaults.slotstyle
defaults.spanstyle
defaults.linkstyle
defaults.brstyle
defaults.field-imagestyle
defaults.footnotestyle
classesmap of style

table-group ​

A group of a bound table (RFML §12.4). Header and footer are rows, or nodes drawn in one cell spanning all columns

PropertyTypeRequiredDescription
idstringyes
byexpressionyesGroup key, in row scope.
sortone of asc, desc, group-sortGroup order; default key ascending. Default "asc".
breakBeforeauto, pageStart each group on a new page. Default "auto".
keepTogetherbooleanAvoid breaking a group when it fits on one page. Default false.
repeatHeaderbooleanRepeat the group header after a page break. Default false.
varsmap of expressionPer-group variables.
headerone of array of row, array of nodes
footerone of array of row, array of nodes

test ​

An embedded test case: inputs and assertions over the rendered result

PropertyTypeRequiredDescription
namestringyes
dataobjectDataset values or references, by dataset name.
paramsobject
expectarray of expressionBoolean expressions over the result scope.
snapshotbooleanCompare page images against an approved baseline. Default false.

viewer-filter ​

A filter control the viewer offers above a region (RFML §17.6.5)

PropertyTypeRequiredDescription
idstringyes
labelinline contentyes
byexpressionyesThe value to filter on, in row scope.
kindvalues, range, searchyes
initialanyInitial selection.

xlsx-sheet ​

A worksheet written from a region

PropertyTypeRequiredDescription
namestringyes
fromnode idyesThe region's node id.
freezestringTop-left unfrozen cell.
autoFilterbooleanDefault false.

Style properties ​

The properties a style block may set (RFML §8.4). Each node takes those that apply to it; the schema's style.<node> definitions list them.

PropertyGroupType
widthsizelength
heightsizelength
min-widthsizelength
max-widthsizelength
min-heightsizelength
max-heightsizelength
marginspacingstring or number
margin-topspacinglength
margin-rightspacinglength
margin-bottomspacinglength
margin-leftspacinglength
margin-inline-startspacinglength
margin-inline-endspacinglength
paddingspacingstring or number
padding-topspacinglength
padding-rightspacinglength
padding-bottomspacinglength
padding-leftspacinglength
padding-inline-startspacinglength
padding-inline-endspacinglength
box-sizingsizestring
borderborderstring or number
border-topborderstring or number
border-rightborderstring or number
border-bottomborderstring or number
border-leftborderstring or number
border-widthborderstring or number
border-styleborderstring
border-colorborderstring
border-top-widthborderlength
border-top-styleborderstring
border-top-colorbordercolour
border-right-widthborderlength
border-right-styleborderstring
border-right-colorbordercolour
border-bottom-widthborderlength
border-bottom-styleborderstring
border-bottom-colorbordercolour
border-left-widthborderlength
border-left-styleborderstring
border-left-colorbordercolour
border-radiusborderstring or number
border-top-left-radiusborderlength
border-top-right-radiusborderlength
border-bottom-right-radiusborderlength
border-bottom-left-radiusborderlength
outlineborderstring or number
background-colorbackgroundcolour
background-imagebackgroundasset
background-sizebackgroundstring or number
background-positionbackgroundstring or number
background-repeatbackgroundstring
colortextcolour
font-familytextstring
font-sizetextlength
font-weighttextstring or number
font-styletextstring
font-variant-numerictextstring
line-heighttextstring or number
letter-spacingtextlength
word-spacingtextlength
text-aligntextstring
text-decorationtextstring
text-transformtextstring
text-indenttextlength
vertical-aligntextlength
white-spacetextstring
hyphenstextstring
directiontextstring
overflow-wraptextstring
columnsmulti-columnstring or number
column-countmulti-columnstring or integer
column-widthmulti-columnlength
column-gapmulti-columnlength
column-rulemulti-columnstring or number
column-rule-widthmulti-columnlength
column-rule-stylemulti-columnstring
column-rule-colormulti-columncolour
column-fillmulti-columnstring
column-spanmulti-columnstring
displaylayoutstring
flex-directionlayoutstring
flex-wraplayoutstring
flexlayoutstring or number
flex-growlayoutstring or number
flex-shrinklayoutstring or number
flex-basislayoutlength
justify-contentlayoutstring
align-itemslayoutstring
align-selflayoutstring
gaplayoutstring or number
row-gaplayoutlength
grid-template-columnslayoutstring or number
grid-template-rowslayoutstring or number
grid-columnlayoutstring or integer
grid-rowlayoutstring or integer
toppositionlength
rightpositionlength
bottompositionlength
leftpositionlength
inset-inline-startpositionlength
inset-inline-endpositionlength
z-indexpositionstring or integer
rotatepositionstring or number
break-beforepaginationstring
break-afterpaginationstring
break-insidepaginationstring
orphanspaginationstring or integer
widowspaginationstring or integer
pagepaginationpage template id
box-decoration-breakpaginationstring
overflowvisibilitystring
text-overflowvisibilitystring
text-fitvisibilitystring
visibilityvisibilitystring
opacityvisibilitystring or number
border-collapsetablestring
table-layouttablestring