More about this extension

What is this?

An extension that provides HTML5 Web SQL Database API binding to XMLA.

XMLA is an HTTP based protocol for performing data access against
multi-dimensional (OLAP and ROLAP) and tabular (Relational Databases)
data sources.

This extension only deals with the tabular data sources that are directly accessible via XMLA or via ODBC/JDBC bridges.

Why is it important?

Rather than being confined to SQLite for Web Database access, users
and developers can now use the HTML5 Web SQL Database API against the OpenLink
XMLA Data Provider which includes binding layers to ADO.Net, OLEDB,
ODBC & JDBC enabling transparent access to data stores accessible by
any of these data access methods including Virtuoso, Oracle, Microsoft
SQL Server, IBM DB2, IBM Informix, Sybase, Ingres, Progress, MySQL, PostgreSQL, Firebird, and many more.

When using OpenLink Virtuoso as their Web Database, users and developers enjoy the following additional benefits:

  • Virtual/Federated RDBMS access — A single ODBC
    connection to Virtuoso enables access to, and distributed joins across,
    all ODBC- or JDBC-accessible data sources.
  • RDF and Graph Database access — A single ODBC connection to Virtuoso
    enables SPARQL access to local and/or remote RDF-based Linked Data via
    SPASQL (SQL and SPARQL query language hybrid).
  • Extra security — Client-side X.509 certificates leverage SSL and RDF-based Linked Data (aka, FOAF+SSL) for fine-grained security and data-access policies which can be scoped to Virtuoso User Accounts.

How do I use it?

Simply install and configure the XMLA Provider for UDA or Virtuoso.
Then start using the new Web Database APIs for data access from your HTML5 application as detailed at this URL: http://dev.w3.org/html5/webdatabase/

Simple Test HTML5 document that uses this API for SQL based RDBMS data access is available at this URL: http://html5-webdb.s3.amazonaws.com/webdb-api/XMLAsample1.html .

Note for Google Chrome extension users, for those XMLA Providers that do not support cross domain scripting the XMLA provider, XMLA application ie XMLAsample1.html for example, must be hosted on the same machine. Currently the Virtuoso and UDA Single-Tier XMLA providers do not support cross domain scripting.

Connect Strings

The XMLA Bridge for HTML5 supports connect strings for the following XMLA Providers:

UDA Multi-Tier

URL: htttp://hostname:portno/XMLA
DSN: ODBC DSN
UID: username
PWD: password

UDA Single-Tier

URL: htttp://hostname:portno/Xmla/Service.asmx
DSN: XMLA Provider DSN
UID: username
PWD: password

Virtuoso

URL: htttp://hostname:portno/XMLA
DSN: leave blank
UID: username
PWD: password

Note:
The Virtuoso XMLA Provider currently only supports read only
connections, hence the “Readonly Test Sync Database calls” and “Readonly
Test Async Database calls” tests have to be used when running the
“XMLAsample1.html” test page.
Thus before executing Virtuoso readonly tests, the following tables
needs to be created and data inserted:

create table test (id integer primery key identity, string varchar(20), number double precision, nuller varchar(20), blober long varbinary);
insert into test(string,number,nuller,blober) values('str0',11111.22, NULL,0x01020304050607);
insert into test(string,number,nuller,blober) values('str1',22222.33, NULL,0x02030405060808);

Later 6.1.3+ Virtuoso servers versions will support DML (write
operations), although by default XMLA connections will be read only as a
security precaution, with the registry command registry_set ('XMLA-DML','1'); run as the dba user enabling write operations.

How do I install the HTML5 XPI?

How do I obtain XMLA Providers ?

Related Links:

Change Log:

- updated extension and plugin name descriptions

Older Versions

  1. Version 1.0.0.2
    Compatible With
    Stable Builds

    An extension that provides HTML5 Web SQL Database API binding to XMLA

    Change Log:

    None

  2. Version 1.0.0.2
    Compatible With
    Stable Builds

    An extension that provides HTML5 Web SQL Database API binding to XMLA

    Change Log:

    New Methods:
    
    nsIXMLAResultSet XMLAUtils.discoverDataSources(in DOMString url);  - returns resultSet with list of DSN names
    
    DOMString nsIXMLAResultSetMetaData.getColumnName(in unsigned short aIndex); - return column names in result set
    
    DB catalog calls:
    
    1) The nsIXMLATransactionSync interface implements the following methods:
    
    nsIXMLAResultSet getCatalogs();
    
    nsIXMLAResultSet getTables(in DOMString catalog, in DOMString schema, in DOMString table, in DOMString tableType);
    
    nsIXMLAResultSet getColumns(in DOMString catalog, in DOMString schema, in DOMString table, in DOMString column);
    
    nsIXMLAResultSet getPrimaryKeys(in DOMString catalog, in DOMString schema, in DOMString table);
    
    nsIXMLAResultSet getForeignKeys(in DOMString pcatalog, in DOMString pschema, in DOMString ptable,
    	in DOMString fcatalog, in DOMString fschema, in DOMString ftable);
    
    nsIXMLAResultSet getTypeInfo(in short dataType);
    
    nsIXMLAResultSet getProcedures(in DOMString catalog, in DOMString schema, in DOMString procedure);
    
    nsIXMLAResultSet getProcedureColumns(in DOMString catalog, in DOMString schema, in DOMString procedure, in DOMString column);
    
    2) The nsIXMLATransaction (async transaction execution) interface implements the following methods:
    
    void getCatalogs(
    	[optional] in nsIXMLAStatementCallback callback,
    	[optional] in nsIXMLAStatementErrorCallback errorCallback);
    
    void getTables(in DOMString catalog, in DOMString schema, in DOMString table, in DOMString tableType,
    	[optional] in nsIXMLAStatementCallback callback,
    	[optional] in nsIXMLAStatementErrorCallback errorCallback);
    
    void getColumns(in DOMString catalog, in DOMString schema, in DOMString table, in DOMString column,
    	[optional] in nsIXMLAStatementCallback callback,
    	[optional] in nsIXMLAStatementErrorCallback errorCallback);
    
    void getPrimaryKeys(in DOMString catalog, in DOMString schema, in DOMString table,
    	[optional] in nsIXMLAStatementCallback callback,
    	[optional] in nsIXMLAStatementErrorCallback errorCallback);
    
    void getForeignKeys(in DOMString pcatalog, in DOMString pschema, in DOMString ptable,
    	in DOMString fcatalog, in DOMString fschema, in DOMString ftable,
    	[optional] in nsIXMLAStatementCallback callback,
    	[optional] in nsIXMLAStatementErrorCallback errorCallback);
    
    void getTypeInfo(in short dataType,
    	[optional] in nsIXMLAStatementCallback callback,
    	[optional] in nsIXMLAStatementErrorCallback errorCallback);
    
    
    void getProcedures(in DOMString catalog, in DOMString schema, in DOMString procedure,
    	[optional] in nsIXMLAStatementCallback callback,
    	[optional] in nsIXMLAStatementErrorCallback errorCallback);
    
    void getProcedureColumns(in DOMString catalog, in DOMString schema, in DOMString procedure, in DOMString column,
    	[optional] in nsIXMLAStatementCallback callback,
    	[optional] in nsIXMLAStatementErrorCallback errorCallback);
    

Write a Review

123