import java.io.*; import javax.xml.namespace.QName; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.parsers.ParserConfigurationException; import javax.xml.transform.sax.SAXSource; import org.w3c.dom.Document; import org.xml.sax.InputSource; import org.xml.sax.SAXException; import com.ddtek.xquery3.XQConnection; import com.ddtek.xquery3.XQException; import com.ddtek.xquery3.XQExpression; import com.ddtek.xquery3.XQSequence; import com.ddtek.xquery3.xqj.DDXQDataSource; /* * Copyright(c) 2007 DataDirect Technologies. All rights reserved. * * $Revision: 1.0 $ */ public class Acord201 { // Change base directory to reference the folder where you have downloaded the XQuery files public static final String queryBaseDir = "c:/acord-xquery/"; // Change server/account information to be consistent with your database settings public static final String connectionUrl = "jdbc:xquery:sqlserver://localhost:1433;databaseName = pubs;user = user ;password = pass"; public static final String inputDoc = "201-1.xml"; public static final String inputQuery = "acord_201-extvar.xquery"; /** * @param args */ public static void main(String[] args) throws Exception { new Acord201().run(); } public void run() throws Exception { // configure datasource DDXQDataSource ds = new DDXQDataSource(); ds.setBaseUri(queryBaseDir); ds.setJdbcUrl(connectionUrl); // connect XQConnection c = ds.getConnection(); // create expression XQExpression expr = c.createExpression(); // bind input document String uri = new File(Acord201.queryBaseDir + Acord201.inputDoc).toURI().toString(); SAXSource request = Acord201.getSAXSource(uri); expr.bindDocument(new QName("request"), request); // exec XQSequence reply = expr.executeQuery(new FileInputStream(new File(queryBaseDir + Acord201.inputQuery))); // dump reply to stdout Acord201.dumpSequence(reply); expr.close(); c.close(); } /** * Util to write XQSequence to stdout. */ public static void dumpSequence(XQSequence sequence) throws XQException { java.util.Properties props = new java.util.Properties(); props.setProperty("indent", "yes"); sequence.writeSequence(System.out, props); System.out.println(); } public static SAXSource getSAXSource(String uri) { return new SAXSource(new InputSource(uri)); } }