"eaeae7b8c93a5cbb323c3b8b73868984" . . . . . . . . "2017-06-13T05:37:16Z" . . "2017-06-13T05:37:16.067847"^^ . . . "2017-06-13T05:37:16.067847"^^ . . . . "2017-06-13T05:37:16Z" . "VOSVSP" . . . . "VOSVSP" . . "VOSVSP" . "%VOSWARNING%\n\n\n%META:TOPICINFO{author=\"DeeGerhardt\" date=\"1144090017\" format=\"1.1\" version=\"1.1\"}%\n%VOSNAV%\n\n---+ Virtuoso Dynamic Web Pages\n\nVirtuoso has two proprietary web page scripting formats. VSP consists of static HTML or XML with interspersed SQL procedure statements and expressions. It is fairly similar to PHP but has the added convenience of having all SQL inline, so as not to require use of any data access API for database driven web sites. VSPX is an XML-based, object-oriented dynamic web page language similar to Microsoft's ASP .Net.\n\nExamples and tutorials on both formats come with the Virtuoso source distribution.\n\n---++ VSP\n\nEach VSP page becomes a SQL stored procedure that outputs its static content to the user agent and executes the statements delimited with the processing instruction. SQL functions are provided for printing output to the user agent with varying form of escaping etc. Request headers and URL and POST parameters are passed as SQL arrays to the page and \ncan be accessed with special accessor functions. VSP is simple and efficient. \n\n---+++ VSPX\n\nVSPX is a more complex object-oriented web-scripting language. It offers much more automation than VSP but has a steeper learning curve. The key features are:\n\n * Object-oriented controls for forms, fields, validation, optional and repeating groups etc.\n * Scrollable and updatable data grid controls\n * Session management and login controls\n * Possibility for XSLT macroexpansion at page compile time, providing for automatic code generation.\n * Support for reusable custom controls.\n\nA VSPX page is an XML file with XML elements marking the control hierarchy. The controls are scriptable, with SQL code to be run at initialization, data bind, processing POST data, before rendering and finally when rendering, i.e. sending the page's output to the user agent.\n\n\n---+++ Development Cycle\n\nTo start developing a Virtuoso-driven web application, one simply designates a virtual directory as executable and specifies a SQL account on behalf of which dynamic content hosted in it will run. After this, one simply writes the pages into the file system or WebDAV, depending on whether the virtual drectory is designated as file system- or WebDAV-based. The pages can be tested with a web browser as soon as written.\n\nApplications can be deployed using the Virtuoso VAD application package format or simply as zip or tar-balls of files.\n\n%VOSCOPY%\n\nCategoryWebSite CategoryVirtuoso CategoryOpenSource\n\n " .