When Development Means Business FY2000 First Quarter
Download
Report
Transcript When Development Means Business FY2000 First Quarter
Gaining and keeping
competitive advantage through
J2EE and XML interoperability
Dimitri Maesfranckx
Product Manager
Content
Reality
Database vendors
Introduction
Application Scenario
Builder
Query Example
Features
Key Advantages
Q&A
Reality
XML versus databases
“The truth of the matter. The RDBMS is
not going anywhere anytime soon, if ever.
Even ignoring serious issues such as
relational data representation in XML, the
DBMS technology is a core part of too
many applications in use today. Although
XML may be a realistic possibility for some
smaller applications without legacy data or
legacy application dependencies, most
large-scale production applications must
interface with existing data. This data is
almost always maintained in a relational
database.”
JAVA and XML (Page 339)
By Brett McLaughlin – O’REILLY®
How Can I Access Data Using XML?
Not an easy answer!
JDBC/ODBC/ADO/OLE DB
XQL
Xquery
Xpath
HTTP extensions
DBMS extensions
XML-QL
SQL extensions
…
DB Standard APIs
ODBC
ADO
SQLExecDirect (hstmt, “Select * from Inventory”, SQL_NTS)
SQLSetStmtAttr (hstmt, SQL_PERSIST_AS_XML,
“//myweb/inventorylist/inventory.xml”, SQL_NTS)
rsXML.Open “Select * from Inventory”, conn
rsXML.Save “//myweb/inventorylist/inventory.xml”, adPersistXML
JDBC … similar using Webrowset interface
DBMS extentions
SQL Server
Specify SQL Queries into the URL
http://IISServer/nwind?sql=SELECT+*+FROM+Invent
ory+FOR+XML+AUTO&root=root
Returns query as XML document
Specify SQL Query Templates in the URL
http://IISServer/nwind/QueryFile.xml
DBMS extentions
Oracle
XSQL Pages - XML formatted servlet definition that
creates or consumes XML based on the underlying
database
http://MyServer/InventoryToday.xsql?id=12
Where XSQL defined as:
<xsql:query connection=“Inventorydb"
xmlns:xsql="urn:oracle-xsql">SELECT * FROM
Inventory WHERE ID = '{@id}‘
</xsql:query>
DBMS extentions
IBM
IBM DB2 UDB (7.1) - XML Extender
DAD or Document Access Definition file
Flexible query or table.column based mapping
Stored procedure programming model (Java,C++,...)
Both retrieve and update functionality
XML results are ‘dumped’ in a special DB2 table
XQuery
Example:
Return a "flat" list of supplier names and their part
descriptions, in alphabetic order.
FOR $sp IN document("sp.xml")//sp_tuple,
$p IN document("p.xml")//p_tuple[pno = $sp/pno],
$s IN document("s.xml")//s_tuple[sno = $sp/sno]
RETURN
<sp_pair> $s/sname , $p/descrip </sp_pair>
SORTBY (sname, descrip)
jXTransformer Introduction
Defines grammar to retrieve data and transform
this into complex XML structures.
jXTransformer API that processes the Query,
returns the data in the required XML structure.
jXTransformer Builder GUI tool to help
you build and test queries.
Uses a DataDirect JDBC J2EE certified
drivers to communicate with the RDBMS.
jXTransformer Query
with JDBC application scenario
JAVA Application
with jXTransformer
Query
jXTranformer
API
DataDirect
JDBC Driver
RDBMS
XML
Document
jXTransformer Builder
Create and modify quickly without
having to know the syntax.
Check and test syntax and
semantics.
jXTransformer Query Example
SELECT
e.EmployeeID,
e.FirstName,
e.LastName,
e.Title,
e.HireDate,
e.Salary
FROM Employees e WHERE e.HireDate = {d ’2000-01-01’}
jXTransformer Query Example
SELECT
xml_element(’Employees_Info’
xml_attribute(’ID’, e.EmployeeID),
xml_element(’name’,
xml_element(’first’,e.FirstName),
xml_element(’last’, e.LastName) ),
xml_element(’title’, e.Title),
xml_element(’hiredate’,e.HireDate),
xml_element(’salary’, e.Salary) )
FROM Employees e WHERE e.HireDate = {d ’2000-01-01’}
jXTransformer Query Example
<?xml version="1.0" encoding="UTF-8" ?>
<xes-result>
<Employees_Info ID='234567'>
<name>
<first>Jane</first>
<last>Smith</last>
</name>
<title>Director</title>
<hiredate>2000-01-01</hiredate>
<salary>120000</salary>
</Employees_Info>
</xes-result>
jXTransformer Features
Any relational DB supported by the DataDirect
JDBC drivers.
DOM, JDOM, SAX and reader/writer object
interfaces.
DTDs, schemas, namespaces and CDATA.
Nested jXTransformer queries.
Document-level processing instructions.
Parameter markers, SQL92 select list
expressions and JDBC scalar functions.
jXTransformer Key Advantages
Uniform and database independent
Fraction of the usual required resources
Leverage existing knowledge
Portable code, portable data
Q&A
jXTransformer allows you to retrieve data from relational databases and transform that
data into complex XML structures .
All that is required is a JDBC connection with a DataDirect JDBC driver.
jXTransformer is flexible and powerful, allowing you to structure the data any way you
want it in the resulting XML document and create well-formed and valid XML
documents for data exchange.
The jXTransformer Builder tool makes it
easy for you to build and test
jXTransformer queries.
[email protected]