Skip to main content

Document Structure

  • 2 minutes to read

Overview

The DevExpress Rich Text Editor (RichEdit) is implemented based on the flow document concept that enables a document to “reflow content” depending on the environment variables (such as window size, device resolution) and optional user preferences. For this reason, the RichEdit defines two types of structures for a document.

  • Document Model

    The logical structure which reflects a document’s logical hierarchical organization. To modify the Document Model‘s structure, use the provided public client-side API.

  • Document Layout

    The physical structure which represents the appearance of physical entities (such as text, picture, table) in a document. It is a hierarchical description of a document layout. The Document Layout structure cannot be modified programmatically via the public API.

Document Processing

In general, RichEdit processes a document in the following order:

  1. When RichEdit opens a document of the supported format, the Document Model is built first for the document.

    Note that the RichEdit’s Document Model has its own unique structure and it differs from models of any known document format (such as RTF or DOC).

  2. RichEdit’s Layout Engine converts the Document Model into the Document Layout.

    Note that there is no one to one correspondence between physical and logical entities.

  3. RichEdit visualizes the Document Layout by rendering the HTML code in a web page to display the document.

Structural Elements

The structural elements of a document are described in more detail in the following articles.

Note

The ASPxRichEdit control internally uses a comprehensive API (a set of interfaces, methods, events and commands) implemented by the RichEdit Core Library. This API is not publicly exposed at the ASPxRichEdit control level.

However, if you want to get familiarized with the RichEdit’s document internal implementation, you can refer to the Document Server’s Fundamentals - Document topic which lists the most important entities of the RichEdit API.