Synex ViewPort is modularized into several components. Each component is designed to manage a specific object type or a fundamental processing class. Several components are themselves divided into subcomponents.
The main components are:

The components of Synex ViewPort
The Entity Manager is responsible for mapping public identifiers onto system identifiers, and system identifiers to physical entities. It has built-in support for the SGML Open CATALOG, and can be customized by the use of callbacks to resolve entities from a wide variety of sources: files, memory blocks, and generating procedures, that deliver the entity contents on-the-fly. The flexibility in entity handling is a key component in ViewPort's ability to address various customization requirements.
All application data, such as style sheets and configuration/annotation files, are retrieved through the entity manager.
The SGML parser is very fast and capable of parsing SGML subcomponents or DTD fragments. DTDs can be parsed separately and reused by several document instances, improving performance significantly.
All entity types except SUBDOC are supported. Text/character entities are parsed and maintained internally. External entities are passed on and resolved by the entity manager. NOTATION entities are simply passed on through the monitor to the Notation Manager (which either manages them itself, by launching external applications, or by passing the entity to the main application). SDATA entities are passed on and translated by the SDATA manager.
The parser has full SHORTTAG and limited OMITTAG support. #CONREF attributes and #DEFAULT entities are handled as well.
The SDATA Manager is responsible for mapping SDATA entities into displayable browser representations. SDATA entities are normally used for describing system-dependent data or foreign characters (such as 'Å', 'Ä' and 'Ö'). The SDATA manager maps these to the textual representation of the specific platform. The textual representation can be rendered using:
The SDATA manager is configured by a script file, but can also be customized by using callbacks.
The Formatter combines documents, style sheet and navigators into document views.
The Resource Manager manages style sheets and navigators. It maintains these in a cache, allowing several documents to share formatting information. The Resource Manager is also responsible for tracking default style sheets and navigators to documents.
The Web Manager manages webscontainers of user annotations, bookmarks and links. When a web is loaded, the Web Manager resolves web anchors to loaded documents, updating all pages displaying these documents to show the anchors. When a web is closed, all anchors are removed. The Web Manager also keeps track of document loading, to resolve the associated anchors.
The Notation Manager is responsible for handling notation data. It has built-in support for a small number of notations, such as GIF graphics, and an interface to add new notation interpreters. The Notation Manager can also launch external handlers for the notation data, such as video viewers and audio players. Unknown notations are passed to the main application by invoking callbacks.
The Monitor is the heart of Synex ViewPortresponsible for invoking and monitoring the other modules. The main task is to manage document viewsconverting them into temporary page representations for screen rendering or hardcopy outputand to process user input.
Converting document views to page representation is a continuous process, invoked whenever the page position is changed (e.g. scrolled), the page is resized, or anchors added or removed to the viewed document. While doing this processing, the Monitor also invokes callbacks to handle widgets and retrieve insertion text from the main application. Notation entities are passed on to the Notation Manager.