You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@xalan.apache.org by jo...@apache.org on 2001/04/19 06:16:15 UTC
cvs commit: xml-xalan/java/samples/extensions/sql/show-error dbinfo.xml dbtest.xsl
johng 01/04/18 21:16:15
Added: java/samples/extensions/sql/basic-connection dbinfo.xml
dbtest-cinfo.xsl dbtest.xsl
java/samples/extensions/sql/ext-connection
ExternalConnection.java dbtest.xml dbtest.xsl
java/samples/extensions/sql/pquery dbinfo.xml dbtest.xsl
java/samples/extensions/sql/show-error dbinfo.xml dbtest.xsl
Log:
Example Files for SQL Extensions
Revision Changes Path
1.1 xml-xalan/java/samples/extensions/sql/basic-connection/dbinfo.xml
Index: dbinfo.xml
===================================================================
<dbtest>
<description>This file contains information required to make a connection to the DBMS</description>
<DBINFO>
<dbdriver>org.enhydra.instantdb.jdbc.idbDriver</dbdriver>
<dburl>jdbc:idb:../../instantdb/sample.prp</dburl>
<user />
<password/>
</DBINFO>
</dbtest>
1.1 xml-xalan/java/samples/extensions/sql/basic-connection/dbtest-cinfo.xsl
Index: dbtest-cinfo.xsl
===================================================================
<?xml version="1.0"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0"
xmlns:sql="org.apache.xalan.lib.sql.XConnection"
extension-element-prefixes="sql">
<xsl:output method="html" indent="yes"/>
<xsl:param name="cinfo" select="//DBINFO"/>
<xsl:param name="query" select="'SELECT * FROM import1'"/>
<xsl:template match="/">
<xsl:variable name="db" select="sql:new($cinfo)"/>
<HTML>
<HEAD>
<TITLE>List of products</TITLE>
</HEAD>
<BODY>
<TABLE border="1">
<xsl:variable name="table" select='sql:query($db, $query)'/>
<TR>
<xsl:for-each select="$table/row-set/column-header">
<TH><xsl:value-of select="@column-label"/></TH>
</xsl:for-each>
</TR>
<xsl:apply-templates select="$table/row-set/row"/>
</TABLE>
</BODY>
</HTML>
<xsl:value-of select="sql:close($db)"/>
</xsl:template>
<xsl:template match="row">
<TR><xsl:apply-templates select="col"/></TR>
</xsl:template>
<xsl:template match="col">
<TD><xsl:value-of select="text()"/></TD>
</xsl:template>
</xsl:stylesheet>
1.1 xml-xalan/java/samples/extensions/sql/basic-connection/dbtest.xsl
Index: dbtest.xsl
===================================================================
<?xml version="1.0"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0"
xmlns:sql="org.apache.xalan.lib.sql.XConnection"
extension-element-prefixes="sql">
<xsl:output method="html" indent="yes"/>
<xsl:param name="driver" select="'org.enhydra.instantdb.jdbc.idbDriver'"/>
<xsl:param name="datasource" select="'jdbc:idb:../../instantdb/sample.prp'"/>
<xsl:param name="query" select="'SELECT * FROM import1'"/>
<xsl:template match="/">
<xsl:variable name="db" select="sql:new($driver, $datasource)"/>
<HTML>
<HEAD>
<TITLE>List of products</TITLE>
</HEAD>
<BODY>
<TABLE border="1">
<xsl:variable name="table" select='sql:query($db, $query)'/>
<TR>
<xsl:for-each select="$table/row-set/column-header">
<TH><xsl:value-of select="@column-label"/></TH>
</xsl:for-each>
</TR>
<xsl:apply-templates select="$table/row-set/row"/>
</TABLE>
</BODY>
</HTML>
<xsl:value-of select="sql:close($db)"/>
</xsl:template>
<xsl:template match="row">
<TR><xsl:apply-templates select="col"/></TR>
</xsl:template>
<xsl:template match="col">
<TD><xsl:value-of select="text()"/></TD>
</xsl:template>
</xsl:stylesheet>
1.1 xml-xalan/java/samples/extensions/sql/ext-connection/ExternalConnection.java
Index: ExternalConnection.java
===================================================================
/*
* The Apache Software License, Version 1.1
*
*
* Copyright (c) 1999 The Apache Software Foundation. All rights
* reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
* the documentation and/or other materials provided with the
* distribution.
*
* 3. The end-user documentation included with the redistribution,
* if any, must include the following acknowledgment:
* "This product includes software developed by the
* Apache Software Foundation (http://www.apache.org/)."
* Alternately, this acknowledgment may appear in the software itself,
* if and wherever such third-party acknowledgments normally appear.
*
* 4. The names "XSLT4J" and "Apache Software Foundation" must
* not be used to endorse or promote products derived from this
* software without prior written permission. For written
* permission, please contact apache@apache.org.
*
* 5. Products derived from this software may not be called "Apache",
* nor may "Apache" appear in their name, without prior written
* permission of the Apache Software Foundation.
*
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
* ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
* USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
* ====================================================================
*
* This software consists of voluntary contributions made by many
* individuals on behalf of the Apache Software Foundation and was
* originally based on software copyright (c) 1999, Lotus
* Development Corporation., http://www.lotus.com. For more
* information on the Apache Software Foundation, please see
* <http://www.apache.org/>.
*/
// Imported TraX classes
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.Transformer;
import javax.xml.transform.stream.StreamSource;
import javax.xml.transform.stream.StreamResult;
import javax.xml.transform.TransformerException;
import javax.xml.transform.TransformerConfigurationException;
import org.apache.xalan.lib.sql.DefaultConnectionPool;
import org.apache.xalan.lib.sql.XConnectionPoolManager;
// Imported java classes
import java.io.FileOutputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
/**
* Use the TraX interface to perform a transformation in the simplest manner possible
* (3 statements).
*/
public class ExternalConnection
{
public static void main(String[] args)
throws TransformerException, TransformerConfigurationException,
FileNotFoundException, IOException
{
// Create a connection to the database server
// Up the connection pool count for testing
DefaultConnectionPool cp = new DefaultConnectionPool();
cp.setDriver("org.enhydra.instantdb.jdbc.idbDriver");
cp.setURL("jdbc:idb:../../instantdb/sample.prp");
//cp.setUser("sa");
//cp.setPassword("");
cp.setMinConnections(10);
cp.enablePool();
// Now let's register our connection pool so we can use
// in a stylesheet
XConnectionPoolManager pm = new XConnectionPoolManager();
pm.registerPool("extpool", cp);
// Use the static TransformerFactory.newInstance() method to instantiate
// a TransformerFactory. The javax.xml.transform.TransformerFactory
// system property setting determines the actual class to instantiate --
// org.apache.xalan.transformer.TransformerImpl.
TransformerFactory tFactory = TransformerFactory.newInstance();
// Use the TransformerFactory to instantiate a Transformer that will work with
// the stylesheet you specify. This method call also processes the stylesheet
// into a compiled Templates object.
Transformer transformer = tFactory.newTransformer(
new StreamSource("dbtest.xsl"));
// Use the Transformer to apply the associated Templates object to an XML document
// (foo.xml) and write the output to a file (foo.out).
transformer.transform(
new StreamSource("dbtest.xml"),
new StreamResult(new FileOutputStream("dbtest.out")));
System.out.println("************* The result is in dbtest.out *************");
cp.disablePool();
}
}
1.1 xml-xalan/java/samples/extensions/sql/ext-connection/dbtest.xml
Index: dbtest.xml
===================================================================
<dbtest>
<description>This file contains information required to make a connection to the DBMS</description>
<DBINFO>
<dbdriver>org.enhydra.instantdb.jdbc.idbDriver</dbdriver>
<dburl>jdbc:idb:../../instantdb/sample.prp</dburl>
<user />
<password/>
</DBINFO>
</dbtest>
1.1 xml-xalan/java/samples/extensions/sql/ext-connection/dbtest.xsl
Index: dbtest.xsl
===================================================================
<?xml version="1.0"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0"
xmlns:sql="org.apache.xalan.lib.sql.XConnection"
extension-element-prefixes="sql">
<xsl:output method="html" indent="yes"/>
<xsl:param name="query" select="'SELECT * FROM import1'"/>
<xsl:template match="/">
<xsl:variable name="db" select="sql:new($driver, 'extpool')"/>
<HTML>
<HEAD>
<TITLE>List of products</TITLE>
</HEAD>
<BODY>
<TABLE border="1">
<xsl:variable name="table" select='sql:query($db, $query)'/>
<TR>
<xsl:for-each select="$table/row-set/column-header">
<TH><xsl:value-of select="@column-label"/></TH>
</xsl:for-each>
</TR>
<xsl:apply-templates select="$table/row-set/row"/>
</TABLE>
</BODY>
</HTML>
<xsl:value-of select="sql:close($db)"/>
</xsl:template>
<xsl:template match="row">
<TR><xsl:apply-templates select="col"/></TR>
</xsl:template>
<xsl:template match="col">
<TD><xsl:value-of select="text()"/></TD>
</xsl:template>
</xsl:stylesheet>
1.1 xml-xalan/java/samples/extensions/sql/pquery/dbinfo.xml
Index: dbinfo.xml
===================================================================
<XMLSTORE>
<QUERY>
<ProductID>1</ProductID>
</QUERY>
<DBINFO>
<dbdriver>org.enhydra.instantdb.jdbc.idbDriver</dbdriver>
<dburl>jdbc:idb:../../instantdb/sample.prp</dburl>
<user/>
<password/>
</DBINFO>
</XMLSTORE>
1.1 xml-xalan/java/samples/extensions/sql/pquery/dbtest.xsl
Index: dbtest.xsl
===================================================================
<?xml version="1.0"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0"
xmlns:sql="org.apache.xalan.lib.sql.XConnection"
extension-element-prefixes="sql">
<xsl:output method="html" indent="yes"/>
<!-- Build a Parameter Type Query -->
<xsl:param name="q1" select="'SELECT * FROM import1 where ProductID = ?'"/>
<!-- Build a CSV list of parameter types -->
<xsl:param name="q1type" select="int" />
<!-- Pull out connection information from the Document Source -->
<xsl:param name="cinfo" select="//DBINFO" />
<xsl:template match="/">
<xsl:variable name="db" select="sql:new($cinfo)"/>
<HTML>
<HEAD>
<TITLE>List of products</TITLE>
</HEAD>
<BODY>
<TABLE border="1">
<xsl:variable name="qparam" select="//QUERY"/>
<xsl:value-of select="sql:addParameterFromElement($db, $qparam)"/>
<xsl:variable name="table" select='sql:pquery($db, $q1, $q1type )'/>
<TR>
<xsl:for-each select="$table/row-set/column-header">
<TH><xsl:value-of select="@column-label"/></TH>
</xsl:for-each>
</TR>
<xsl:apply-templates select="$table/row-set/row"/>
</TABLE>
</BODY>
</HTML>
<xsl:value-of select="sql:close($db)"/>
</xsl:template>
<xsl:template match="row">
<TR><xsl:apply-templates select="col"/></TR>
</xsl:template>
<xsl:template match="col">
<TD><xsl:value-of select="text()"/></TD>
</xsl:template>
</xsl:stylesheet>
1.1 xml-xalan/java/samples/extensions/sql/show-error/dbinfo.xml
Index: dbinfo.xml
===================================================================
<XMLSTORE>
<QUERY>
<ProductID>1</ProductID>
</QUERY>
<DBINFO>
<dbdriver>org.enhydra.instantdb.jdbc.idbDriver</dbdriver>
<dburl>jdbc:idb:../../instantdb/sample.prp</dburl>
<user/>
<password/>
</DBINFO>
</XMLSTORE>
1.1 xml-xalan/java/samples/extensions/sql/show-error/dbtest.xsl
Index: dbtest.xsl
===================================================================
<?xml version="1.0"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0"
xmlns:sql="org.apache.xalan.lib.sql.XConnection"
extension-element-prefixes="sql">
<xsl:output method="html" indent="yes"/>
<xsl:param name="driver" select="'org.enhydra.instantdb.jdbc.idbDriver'"/>
<xsl:param name="datasource" select="'jdbc:idb:../../instantdb/sample.prp'"/>
<!-- Build an invalid query -->
<xsl:param name="query" select="'SELECT * FROM import1x'"/>
<xsl:template match="/">
<!-- 1. Make the connection -->
<xsl:variable name="db" select="sql:new($driver, $datasource)"/>
<!--2. Execute the query -->
<xsl:variable name="table" select='sql:query($db, $query)'/>
<xsl:apply-templates select="$table/row-set" />
<xsl:apply-templates select="$table/ext-error" />
<!-- 3. Close the connection -->
<xsl:value-of select="sql:close($db)"/>
</xsl:template>
<xsl:template match="row-set">
<HTML>
<HEAD>
<TITLE>List of products</TITLE>
</HEAD>
<BODY>
<TABLE border="1">
<TR>
<xsl:for-each select="/row-set/column-header">
<TH><xsl:value-of select="@column-label"/></TH>
</xsl:for-each>
</TR>
<xsl:apply-templates select="/row-set/row"/>
</TABLE>
</BODY>
</HTML>
</xsl:template>
<xsl:template match="row">
<TR><xsl:apply-templates select="col"/></TR>
</xsl:template>
<xsl:template match="col">
<TD><xsl:value-of select="text()"/></TD>
</xsl:template>
<xsl:template match="/ext-error">
<xsl:text>Woops, an error occured: </xsl:text>
<xsl:apply-templates select="/ext-error/exception-info/message" />
<xsl:text> -- SQL Error Code: </xsl:text>
<xsl:apply-templates select="/ext-error/sql-error/error-code" />
</xsl:template>
</xsl:stylesheet>
---------------------------------------------------------------------
To unsubscribe, e-mail: xalan-cvs-unsubscribe@xml.apache.org
For additional commands, e-mail: xalan-cvs-help@xml.apache.org