XML Editor
Sign up for a WebBoard account Sign Up Keyword Search Search More Options... Options
Chat Rooms Chat Help Help News News Log in to WebBoard Log in Not Logged in
Conferences Close Tree View
+ Stylus Studio Feature Requests (1192)
- Stylus Studio Technical Forum (14621)
-> + Maximum recursion depth exceed... (3)
-> + How do I develop the server si... (2)
-> + XSD Reuse (2)
-> + what happened to my preview re... (3)
-> + How do I use the Custom XML Co... (4)
-> + WYSIWYG missing in release 2 o... (2)
-> + space between elements (3)
-> + Oracle XML Gateway output CONV... (6)
-> + Someone please help me install... (5)
-> + XML Schema (XSD) to COBOL Data... (2)
-> + Can't compile Java (9)
-> + Trouble using the UDDI Browser (5)
-> + JVM Problem when installing Ar... (2)
-> + Stylus Studio Enterprise 8r2 d... (2)
-> - xml report headers (1)
-> + ddtek:sql-delete and ddtek:sql... (4)
-> + Validation blocked (4)
-> + List from XMl to be displayed ... (2)
-> + reports - changing data source (5)
-> + Disable HTML tags in Sense:X (8)
-> + .NETCompiledTransform Paramete... (3)
-> + Why Is The Saxon Processor So ... (13)
-> + Still can not get "integrated ... (15)
-> + quick xml gen from xsd (2)
-> - new to sylus, issue with if va... (1)
-> + Question about using Data Dire... (5)
-> + Why is the DB to XML Data Sour... (2)
-> + Relational db => XML pipeline (2)
-> + connection to oracle 10g (8)
-> + xsl:function misdemeanor (3)
-> + Records Extraction from XML (2)
-> + line break variable destroyed (2)
-> + Restricting on an extended typ... (5)
-> + folding all xml elements at on... (2)
-> + help converting a text file to... (5)
-> + Java Functions (5)
-> + XML Schema - extend then restr... (6)
-> + Converting SGML to XML in pipe... (2)
-> + Unattended install? (3)
-> + what are the differences betwe... (2)
-> + cannot install (2)
-> + Missing Parameters within Web ... (3)
-> + XSLT processors not creating o... (8)
-> - How to format a seperate colum... (1)
-> + Finnish language characters (3)
-> + x12 schemas (10)
-> + Howto search multiple XML file... (3)
-> + Chameleon Schema? (2)
-> + Problems generating pdf (9)
-> + Cannot install Stylus Studio R... (19)
-> + source xml of a report (3)
-> + File I/O Error when encounter ... (3)
-> + substitution groups in xslt ma... (4)
-> + Delete rows in a MS SQL Server... (7)
-> - Attaching DB2 Database in File... (1)
-> + Can't debug xsl examples with ... (14)
-> + Best way to transform existing... (2)
-> + Exception in generated java co... (3)
-> + Java API for converting EDI X1... (2)
-> + XPath Query Editor slow perfor... (7)
-> + mapper schema problem (5)
-> + cursor issue in stylus studio ... (2)
-> + how to generate xslt code for ... (4)
-> + Web Service (12)
-> + Additional rule (2)
-> + Help needed: XMLSchema and unp... (9)
-> + Module settings for external X... (3)
-> + Finding Errors in the XML File (6)
-> + CSV 2 XML (2)
-> + Automatic Namespace when using... (2)
-> + Can't find 'Associate XML Sche... (3)
-> + Calling Stylus Studio API from... (2)
-> + EDI TO XML using the Stylus St... (4)
-> + MarkLogic Integration (4)
-> + (null)0:0 (3)
-> + Recent Windows Patch for MSXML... (3)
-> + Show XML from Schema (2)
-> + xml publisher - report to xslt... (4)
-> + EDI TO XML using the Stylus St... (3)
-> + Unable to Generate XML file fr... (6)
-> + DB to XML in Enterprise Suite (2)
-> + pdf to xml (2)
-> - Open External Schema - button ... (1)
-> - Unable to Generate XML from xC... (1)
-> + Unable to Generate XML from xC... (2)
-> + pre-proc processing in xml (2)
-> + FATAL ERROR: Expected comment ... (2)
-> + How to split window (3)
-> + XML Transformation Architectur... (2)
-> + only one record get run in an ... (2)
-> + xbrl schema file (2)
-> + Compare of 2 xml files (2)
-> + config control (4)
-> + create copy link in mapper (5)
-> + SGML DTD (3)
-> + command line access to your xs... (4)
-> + XML Schema: Attribute Choice (2)
-> + Upload file w/ topic (6)
-> - Can't View Properties (1)
-> + Can't View Properties (5)
-- Previous [1381-1400] [1401-1420] [1421-1440] Next
+ Website Feedback (249)
+ XSLT Help and Discussion (7625)
+ XQuery Help and Discussion (2017)
+ Stylus Studio FAQs (159)
+ Stylus Studio Code Samples & Utilities (364)
+ Stylus Studio Announcements (113)
Topic  
Postnext
Charles TsangSubject: Saxon 8 with multiple xml input
Author: Charles Tsang
Date: 23 Jun 2007 11:11 AM
Hi, I have a java application that loads the xquery file
from the database (as byte[]), it also generates an xml file
(as String) as the input of xquery. I have the following
methods

BTW, I'm using Stylus Studio 2007 Release 2.


protected Properties getProperties() {
Properties props = new Properties();
props.setProperty(OutputKeys.METHOD, "xml");
props.setProperty(OutputKeys.INDENT, "yes");

return props;
}

protected void runXQuery(byte[] xquerySource, String xmlString) {

Configuration config = new Configuration();

StaticQueryContext sQueryContext = new StaticQueryContext(config);
DynamicQueryContext dQueryContext = new DynamicQueryContext(config);

ByteArrayInputStream bais = new ByteArrayInputStream(xquerySource);
InputStreamReader streamReader = new InputStreamReader(bais);

XQueryExpression queryExp = sQueryContext.compileQuery(streamReader);

ByteArrayInputStream bais = new ByteArrayInputStream(xmlString.getBytes());
StreamSource source = new StreamSource(bais);

dQueryContext.setContextItem(sQueryContext.buildDocument(source));

ByteArrayOutputStream baos = new ByteArrayOutputStream();

queryExp.run(dQueryContext, new StreamResult(baos), getProperties());
}

protected void runXQueryBind(byte[] xquerySource, String paramName, String xmlString) {

Configuration config = new Configuration();

StaticQueryContext sQueryContext = new StaticQueryContext(config);
DynamicQueryContext dQueryContext = new DynamicQueryContext(config);

ByteArrayInputStream bais = new ByteArrayInputStream(xquerySource);
InputStreamReader streamReader = new InputStreamReader(bais);

XQueryExpression queryExp = sQueryContext.compileQuery(streamReader);

try {
XQueryExpression xqe = sQueryContext.compileQuery(xmlString);

SequenceIterator si = xqe.iterator(dQueryContext).getAnother();
Item item = si.next();
if (item != null && si.next() == null && item instanceof AtomicValue) {
xvalue = (AtomicValue)item;
} else {
xvalue = new SequenceExtent(xqe.iterator(dQueryContext));
}
} catch(Exception ioe) {
ioe.printStackTrace();
//throw new JCException(ioe.getMessage());
xvalue = new UntypedAtomicValue(new String(data));
}
dQueryContext.setParameter(paramName, xvalue);

ByteArrayOutputStream baos = new ByteArrayOutputStream();

queryExp.run(dQueryContext, new StreamResult(baos), getProperties());
}


Can someone help me with the following questions:

1) In method runXQueryBind, is that the right way to bind a paramName
and xmlString into XQuery? If not, can you show me a sample.

2) When I run my code using the 'runXQuery()' method, it took only 3
seconds. But when I run it with 'runXQueryBind()', it took 986
seconds!! Do you know why?

Your help is greatly appreciated


method

Postnext
(Deleted User) Subject: Saxon 8 with multiple xml input
Author: (Deleted User)
Date: 27 Jun 2007 11:48 AM
Hi Charles,
the bindParameter method generated by Stylus Studio has been designed to assign to a parameter the result of another XQuery (so that you can assign a specific type, xs:nonNegativeInt(9), or the result of an XPath navigation, or the result of a arithmetic computation).
In your case you are specifying an entire XML fragment; apart that parsing could fail (some XML nodes are not supported as literal values inside XQuery documents), you get bad performances as you are using the XQuery parser to build a query that in the end creates a DOM tree. You should directly parse the XML and assign it to the parameter, like in this code:

private static void bindXMLParameter(StaticQueryContext staticContext, DynamicQueryContext dynamicContext, String paramName, String paramValue)
{
try{
Value xvalue=new SingletonNode(staticContext.getConfiguration().buildDocument(new StreamSource(new StringReader(paramValue))));

dynamicContext.setParameter(paramName, xvalue);
}
catch(java.lang.Exception e)
{
System.err.print(e.getMessage());
}
}

Hope this helps,
Alberto

Posttop
Charles TsangSubject: Saxon 8 with multiple xml input
Author: Charles Tsang
Date: 27 Jun 2007 12:50 PM
Hi Alberto,

Your solution works!

Thanks,

Charles

   
Download A Free Trial of Stylus Studio 6 XML Professional Edition Today! Powered by Stylus Studio, the world's leading XML IDE for XML, XSLT, XQuery, XML Schema, DTD, XPath, WSDL, XHTML, SQL/XML, and XML Mapping!  
go

Log In Options

Site Map | Privacy Policy | Terms of Use | Trademarks
Stylus Scoop XML Newsletter:
W3C Member
Stylus Studio® and DataDirect XQuery ™are from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2016 All Rights Reserved.