Benefits of using Synex ViewPort for supporting dynamic document assembly and encrypted documents

Abstract

Synex ViewPort, the leading SGML/HyTime Browser Engine, is designed for integration with any application. A major reason for its success is its customizable entity manager, which lets you retrieve entity contents from virtually any source, whenever needed, and to easily support encryption. In this White Paper, we describe some of the benefits of the design.

 

Sample Scenarios

As a publisher, you could distribute an SGML-based deliverable (say, a CD-ROM) whose contents are mostly unavailable (hiding everything but sample text) until the user purchases a software key to unlock the data. And, because your SGML data can be in encrypted form, you prevent competition from freely profiting from your efforts---even though your users can benefit and use the power inherent in your SGML data. And, thanks to ViewPort's customizable entity manager, create documents that are assembled dynamically from a multitude of sources, so that the CD-ROM is augmented through e.g. network-borne additions.

SGML Background

The SGML standard replaces the concept of files by the superior concept of entities. An entity can be anything, such as an image, a single character, data stored in one or several files, or data fetched from a database. It is the responsibility of the entity manager to fetch the entity contents and deliver it to the SGML parser.

External entities reside outside of the document in which they are used. SGML has two ways of declaring such entities: system identifiers, meaning that the corresponding identifier is system-dependent, or public identifiers in which case the public identifier is mapped to a system identifier before its content is fetched.

The storage granularity of SGML is that of the entity; therefore public and system identifiers correspond to information chunks applicable to your document data.

The SGML Open Catalog

The SGML Open consortium has defined a specification whereby public identifiers are mapped to system identifiers in a standard format: as sponsor member of the consortium, Synex Information supports this so-called catalog specification. The SGML Open catalog, being a de facto industry standard, complements the SGML standard for application interoperability and increases the general portability of your documents. You can thus rely on public identifiers being mapped to system identifiers in a consistent and easily maintainable manner.

Synex ViewPort and Customizable Entity Management

Synex ViewPort is the leading SGML/HyTime browser engine. It allows you to easily add SGML processing to any application, to navigate and display SGML data, across all major platforms. Normally, you will just let ViewPort handle the entity resolution for you, using public or system identifiers.

However, ViewPort's customizable entity manager is designed to let your application resolve entities dynamically: Whenever entity contents are required, either at the public or system identifier level, your application can intercept the processing request to deliver the entity contents back to ViewPort's SGML parser. This flexible design permits you to store entities anywhere, in a neutral, standard manner. ViewPort's dynamic assembly of entities is further complemented by the manner in which the application can return the contents: through a file, by passing a pointer to a buffer in RAM, or through a generating procedure that feeds the SGML parser chunk by chunk (possibly of varying sizes) until the entity has been fully resolved. The decision of intercepting the entity resolution process is dynamic: your application can make instant decisions for each and every entity reference, basing its behavior on any application data such as a user profile, possibly combined with SGML document data. Declining to process an entity simply makes ViewPort process the entity itself.

To summarize: Synex ViewPort let's you fetch entity contents from anywhere, whenever needed, for dynamic on-the-fly processing and document assembly. As ViewPort lets you customize the entity resolution, the contents can be stored in any form, encrypted, compressed, or even assembled on the fly. You can also use an efficient binary form created by preprocessing your SGML documents, and combine the binary form with custom processing. In addition to the entity level processing, ViewPort applies style formatting for every element. The style can be expressed using contextual requirements on occurrence, element ancestry, existence or values of attributes, and combinations of these; it is possible to hide elements. An additional feature of ViewPort's style sheet mechanism is dynamic querying: you can thus by default hide elements in the style sheet, and decide on the fly whether such hidden elements are to be displayed. The combination of dynamic style, customizable entity management, and encryption, make for a powerful solution to complex requirements.

encrypt2.gif (17859 bytes)

This picture demonstrates encryption down to the element level. In this demo application, every element can belong to any one of five clearance codes. Keys 1, 2, and 4 have been entered, and the application deciphers corresponding elements - for the sake of the demonstration the remaining encrypted elements are shown garbled rather than hidden.