Synex ViewPort logotypeAbout Synex ViewPort

Synex ViewPort takes care of all the complexities of SGML browsing but still lets you fully take control of the interface, behavior, and content retrieval. It is unique in its straightforward, plug-in integration capability.

Synex ViewPort is an engine, not an interface to a fixed application. This means that you are in control, free to build your applications the way you normally do, using the tools you normally use. When the time comes and you want to display an SGML document, you just tell ViewPort what document to show, in what Window, and ViewPort will handle the rest—from the loading and parsing of the SGML source to the actual display, handling user interaction such as scrolling and text selection.

A minimal integration is made within hours, but it is possible to spend days and weeks fine-tuning every aspect of the browsing process.

The ViewPort Engine is written in C++. This is what we call the kernel, which is fully platform independent. On top of the kernel is a platform dependent layer (Windows, Unix, Mac) which is accessed through the ViewPort API in an identical manner across all platforms. The ViewPort-based applications are thus portable across all supported platforms, they can simply be recompiled. While the kernel and the platform dependent layer are written in C++, the API is in C, which has several key advantages:

Because ViewPort is an API to a browser engine rather than a browser application, you can use ViewPort as a plug-in piece of software to add SGML browsing capability to any application. Essentially, it supplies you with SGML browsing capabilities in any window of your choice. As you have full control of style sheets and presentation behavior, you can preserve the style of the software to which you are adding the ViewPort-derived functionality.

ViewPort can resolve and display SGML data from any source: the entity contents can be retrieved through either a file name, a memory block, or through a custom function that returns the entity contents piece by piece. The freedom of input methods makes ViewPort ideal for integration with other software: you can read documents or document fragments from anywhere, whenever needed.

With ViewPort, you directly get support for formatted presentation using any number of style sheets, navigators (powerful generalized table of contents), webs (containers for user-defined data such as annotations), out-of-the-box support for hyperlinks defined using SGML [ID/IDREF(S) and TEI extended pointers] or HyTime [nameloc, treeloc, and dataloc addressing], and custom hypertext functionality by reacting to user clicks on any element of your choice.

The toolkit is very straight-forward. A minimal (but fully functional) ViewPort-based application requires less than a handful of function calls. However, ViewPort gives you full control of presentation, navigation, and data retrieval through its 250+ function API and over fifty callbacks. The callbacks are used to tailor the application behavior and to provide an intercept facility in the processing.

The ViewPort technology is unique in reading and displaying SGML on-the-fly, directly from SGML source. As ViewPort supports pre-parsing and binary storing of SGML files too, it is well suited for CD-ROM publishing, where all of the data is known in advance and thus can be pre-processed in this manner for reasons of efficiency, or to prevent unwanted dissemination of SGML source.

 

Availability

The Synex ViewPort engine is available for Windows (3.1x, NT/95, and as a Delphi component). In addition, ViewPort has been ported from Windows to UNIX/Motif (e.g. SunOS, Sun Solaris, Linux, and HP/UX). There is also a Macintosh version (68K and native Power PC). You can continue to use your current development tools as long as they support the calling of C functions. (For Macintosh development, you need Metrowerks CodeWarrior; we recommend using CodeWarrior with its PowerPlant framework.)

 

Major features of Synex ViewPort are as follows:

Firstly, ViewPort can read any DTD and SGML document or document fragment on-the-fly, without going through a proprietary, pre-parsed binary format (though it also does support such use, e.g. for CD-ROM distribution). A large part of its roughly 300 function API is concerned with information retrieval and navigation.

Secondly, its entity manager is fully tailorable: you can dynamically assemble a document for viewing from multiple fragments residing on different media (on a LAN, the World Wide Web, a CD-ROM, etc.) Entities can be provided through a file, a memory address, or through a function that delivers the contents piece by piece.

Thirdly, ViewPort is designed for integration with another application which is in control; this is why we call it an engine. If you have an application, regardless of what it is now doing, you can add to it the capability of processing and browsing SGML.

Also, no other product on the market has such a wide support for hyperlinks—such as ISO standard HyTime or conventions from the Text Encoding Initiative (TEI P3 extended pointers).

Finally, the ease of use is astounding—you can integrate ViewPort into your application in less than an hour—but also go on to develop support for complex applications such as IETMs and interactive training manuals.