Table of Contents

Class StructureMark

Namespace
DocWright.Core.Rendering
Assembly
DocWright.Core.dll

A logical-structure boundary in paint order: the start or end of one structure element.

public sealed class StructureMark : ILayoutPrimitive
Inheritance
StructureMark
Implements
Inherited Members

Remarks

Structure lives in the DOM and the ResolvedDocument, but marked content has to be emitted into the layout's content stream, and the one-way bridge means a renderer can never ask the DOM. Carrying the answer as a primitive in paint order is what closes that gap — and paint order is reading order, which is the property tagging actually needs and page geometry cannot supply for multi-column or floating content.

Marks nest and must balance within a page. An element that spans a page break emits a start/end pair on each page it touches, with the same ElementId; that is how one paragraph broken across pages stays one /P with two marked-content references rather than becoming two paragraphs.

Renderers that have no structure layer ignore this primitive. That is not an oversight to be tidied up later: a raster image has nowhere to put a structure tree, exactly as it has nowhere to put a LinkRegion.

Constructors

StructureMark(int, int, StructureRole, string?, string?, TableHeaderScope, int, int)

Initializes the start of a structure element.

Properties

AlternateText

Gets the alternate text for a figure, or null.

ColumnSpan

Gets the cell column span.

ElementId

Gets the stable element identity.

HeaderScope

Gets the header scope; meaningful only for a header cell.

IsStart

Gets true when this mark opens an element; false when it closes one.

Language

Gets the BCP 47 language tag where it differs from the document's, or null.

ParentElementId

Gets the containing element's id, or 0 for a child of the document root.

Role

Gets the element's semantic role.

RowSpan

Gets the cell row span.

Methods

End(int)

Creates the closing mark for an element.