Application Programming Interfaces (APIs)
There are five major VisionR specific dialects available for the developers:
- XML for object definitions
- VisionR Script
- VisionR SQL
- VisionR Server Pages
- VisionR Stylesheet Language
eXtensible Markup Language (XML)
VisionR uses schema-indifferent plain XML to describe object definitions and their relations. Object Definitions typically called objectdefs are the fundamental data structure that 'define' everything in VisionR. Core operations, web interface and business objects' data instances are all instances of objectdefs defined within the system.
The VisionR XML is used to export/import definitions and to transport data into and from the system to other external appliances.
VisionR Server maintains its own database schema, in which all necessary system objects are modelled as database tables (Object Relational Mapping - ORM).
There is a difference between the database schema (in a relational database) and the VisionR object-definition schema. VisionR's schema is an abstract model and is not tied to specific storage medium for the time being. Thus abstract object definitions are mapped to the underlying database backend's tables.
VisionR Script (VSC)
VSC builds up the main interface to the core of VisionR Server. It is a typeless and though an object-oriented language that provides quick and easy access to the database objects and the VisionR core functions. Its essential feature is the ability to query prepared database objects. The VSC scripts are compiled into Java binary code, stored temporarily, and executed as Java code.
The language itself has interfaces to all VisionR Server core APIs, allowing you to write all kind of scripts - from business logics, executed on database events like inserting, updating or deleting an object, to web-based user interface components for creating your own visual application.
VisionR SQL (VSQL)
The VisionR Structured Query Language is used to select or manipulate object from the VisionR Database. It has a syntax similar to SQL (Structured Query Language). VSQL extend the possibilities of SQL, adding path queries and a simpler syntax, allowing to omit FROM and JOIN parts of the query.
The results that come out of VSQL queries are objects directly persistent in the database. Rather than selecting columns from tables, VSQL selects object collections using object paths.
VSQL can be used in user scripts to obtain filtered information from the database in an easy way. Previous knowledge of SQL is not needed.
VisionR Server Pages (VSP)
VisionR Server Pages provide options for server-side dynamic content generation similar to other languages such as PHP, ASP, JSP, etc. The executable code that is mixed with the text content is implemented as VisionR Script (VSC).
VSP integrates the VScript language with HTML similar to other server-based programming languages like JSP (Java Server Pages) or PHP (hypertext preprocessor). It allows access to the VisionR core API through VSC, which is additionally extended by static HTML to generate dynamic web-based content.
VisionR Stylesheet Language (VSL)
VSL is XML based language which integrates VScript to provide fast generation of XML documents or any other type of documents, containing VisionR Server data. It is the main interface for exporting data from the server to other applications.
VSL reminds of XSL (eXtensible Stylesheet Language) in the way it approaches data and template matches.