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)
-> - More flexible generated Java c... (1)
-> + Generic Schemas for representi... (2)
-> + Stylus Studio Professional rep... (2)
-> + XML XML Help (2)
-> + xsd help (2)
-> + XML data element friendly name... (2)
-> + HTML Tidy adapter is missing? (3)
-> + New Guy Here... (2)
-> + How to combine two similar fil... (2)
-> + Berkeley XML DB (4)
-> + What is the context node in th... (3)
-> + Multi element List (4)
-> + Cannot preview XSL transformat... (9)
-> + Why is this variable not showi... (7)
-> + Customising Schema Prefix (3)
-> + Please help!! XML AND XSL Tra... (6)
-> + XML to Excel in Home Edition (2)
-> + how to copy elements from an x... (2)
-> + Setting Saxon parameters in pi... (2)
-> + Trying to move SS license (3)
-> + Does SS PRO Support CSS (2)
-> + Selected values are not showin... (3)
-> + Copy Xpath To Clipboard Option... (2)
-> + Upgrading to SS 2006 3 - Activ... (3)
-> + XSL Efficiency tips (4)
-> - Report page Size and table hea... (1)
-> + Endless loop with xquery (8)
-> - Xpress XML (1)
-> + Extracting XML data into SQL s... (2)
-> + Crashes when I save (2)
-> + XSL cannot save: I/O error...b... (8)
-> + Diagram view has disappeared f... (5)
-> + Convert from http://www.w3.org... (2)
-> + Round-trip Converting; CSV-XML... (2)
-> + XSL error function call PHP (8)
-> + WYSIWYG XSLT Designer (5)
-> + generate xhtml+css from xml re... (2)
-> + generate xhtml+css from xml re... (3)
-> + generate xhtml+css from xml re... (2)
-> - Help using xsd xs:redefine nee... (1)
-> + Data loss opening External sch... (2)
-> + Install Apache FOP Plugin with... (8)
-> + Generating a Publisher Canvas ... (2)
-> + Stylus Studio comment block no... (3)
-> + Report Designer Screen Repaint... (5)
-> + validating on values (5)
-> + reuse of xslt (2)
-> + The evaluation period for the ... (2)
-> + export to documentation (3)
-> + Validating XML files using sev... (2)
-> + Missing 'Command' Tab in Custo... (3)
-> + Do I have to download new vers... (6)
-> + Can SS validate tags used in a... (5)
-> + validating schemas (2)
-> + Off-Topic Question - Looking f... (4)
-> + cannot see anything in mapper ... (2)
-> + Validating XSD schema sets (7)
-> + Standard Validation Engines (3)
-> + Style Sheet amendment to inclu... (2)
-> + Documentation - prevent import... (3)
-> + Debugging breakpoints with Sax... (17)
-> + Conversion (3)
-> + New and I am sure this is an e... (7)
-> - Saxon 8 with multiple xml inpu... (3)
-> ->Saxon 8 with multiple xml...
-> ->Saxon 8 with multiple xml...
-> + Compilation error (5)
-> + webservice call failing - pls ... (3)
-> + C# from Java Binding Classes (3)
-> + Java binding class generation (5)
-> + Validation of deeply-nested sc... (5)
-> + How to make Drag and drop in X... (2)
-> + Malformed XPATH expression par... (5)
-> + Toolbars and missing options (4)
-> + Converting Text File (2)
-> + Java Heap Issue (2)
-> + Formatting SOAP messages (6)
-> + Attribute Entity Expansion on ... (2)
-> + Text File to xml conversion wi... (9)
-> + Different XPath results when u... (7)
-> + Where is my XSLT mapper module (3)
-> + Where is my XSLT WYSIWYG Edito... (2)
-> + Regarding Stylus support of IA... (2)
-> + Debugging Problem with Enterpr... (5)
-> + various report designer prob;e... (12)
-> - will it EVER get fixed ?? Stru... (1)
-> - Migrate from wysiwyg xslt edit... (1)
-> + Entity Resolver in UI? (4)
-> + Visual Studio and Stylus Studi... (2)
-> + how to get rid of parameter in... (8)
-> + XQuery file (2)
-> + 505 error calling a WS from SS... (2)
-> + Configure Subversion with Styl... (2)
-> + XSLT Mapping of xsi:nil and xs... (2)
-> + Printing values in a table or ... (2)
-> + query on using stylus API for ... (12)
-> + WSDL retruns no response (2)
-> + SS XSL Processor Bug: Count() (6)
-> + Stylus Studio crashes after re... (2)
-> + Custom Converter in IBM JVM is... (10)
-> + Malformed XPATH epressions on ... (4)
-> - XML Report table borders when ... (1)
-- Previous [1501-1520] [1521-1540] [1541-1560] Next
+ Website Feedback (249)
+ XSLT Help and Discussion (7625)
+ XQuery Help and Discussion (2016)
+ 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.