Re: XQuery or XSLT support in Derby

2015-10-29 Thread Peter Ondruška
Dear Greg,

unless anything changed with last Derby release XML support in Derby is
limited to storing XML--the last time I checked basically there is only an
XML data type, no query, no indexes.

On 29 October 2015 at 09:11, Grzegorz Zuber  wrote:

> Hi,
>
> I was doing wide research how can I do XQuery or XSLT query using Derby.
>
> I'm doing query like this:
>
>
>
> SELECT
> XMLSERIALIZE(
> XMLQUERY('
>  xmlns:xsl="http://www.w3.org/1999/XSL/Transform; xmlns:fo="
> http://www.w3.org/1999/XSL/Format;>
>
> 
> 
> 
> 
>
> 
> 
> 
> Title
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> ' PASSING BY REF xml_col EMPTY ON
> EMPTY) AS VARCHAR(10)
> )AS ProductId
> FROM xml_orders
>
>
>
>
> But I'm getting an exception:
>
> java.sql.SQLException: Encountered error while evaluating XML query
> expression for xmlquery operator:
> com.sun.org.apache.xpath.internal.domapi.XPathStylesheetDOM3Exception:
> Prefix must resolve to a namespace: xsl
> at org.apache.derby.impl.jdbc.SQLExceptionFactory.getSQLException(Unknown
> Source)
> at org.apache.derby.impl.jdbc.SQLExceptionFactory.getSQLException(Unknown
> Source)
> at org.apache.derby.impl.jdbc.Util.seeNextException(Unknown Source)
> at
> org.apache.derby.impl.jdbc.TransactionResourceImpl.wrapInSQLException(Unknown
> Source)
> at
> org.apache.derby.impl.jdbc.TransactionResourceImpl.handleException(Unknown
> Source)
> at org.apache.derby.impl.jdbc.EmbedConnection.handleException(Unknown
> Source)
> at org.apache.derby.impl.jdbc.ConnectionChild.handleException(Unknown
> Source)
> at org.apache.derby.impl.jdbc.EmbedStatement.execute(Unknown Source)
> at org.apache.derby.impl.jdbc.EmbedStatement.executeQuery(Unknown Source)
> at com.sqlxd.derby.DBQuery.executeDerbyQuery(DBQuery.java:295)
> at com.SQLxDClient.QueryExecutor.executeQuery(QueryExecutor.java:47)
> at com.SQLxDClient.Window$3.serveExecuteToGrid(Window.java:204)
> at com.SQLxDClient.Window$3.mouseClicked(Window.java:192)
> at java.awt.AWTEventMulticaster.mouseClicked(AWTEventMulticaster.java:270)
> at java.awt.Component.processMouseEvent(Component.java:6519)
> at javax.swing.JComponent.processMouseEvent(JComponent.java:3321)
> at java.awt.Component.processEvent(Component.java:6281)
> at java.awt.Container.processEvent(Container.java:2229)
> at java.awt.Component.dispatchEventImpl(Component.java:4872)
> at java.awt.Container.dispatchEventImpl(Container.java:2287)
> at java.awt.Component.dispatchEvent(Component.java:4698)
> at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4832)
> at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4501)
> at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4422)
> at java.awt.Container.dispatchEventImpl(Container.java:2273)
> at java.awt.Window.dispatchEventImpl(Window.java:2719)
> at java.awt.Component.dispatchEvent(Component.java:4698)
> at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:747)
> at java.awt.EventQueue.access$300(EventQueue.java:103)
> at java.awt.EventQueue$3.run(EventQueue.java:706)
> at java.awt.EventQueue$3.run(EventQueue.java:704)
> at java.security.AccessController.doPrivileged(Native Method)
> at
> java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
> at
> java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87)
> at java.awt.EventQueue$4.run(EventQueue.java:720)
> at java.awt.EventQueue$4.run(EventQueue.java:718)
> at java.security.AccessController.doPrivileged(Native Method)
> at
> java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
> at java.awt.EventQueue.dispatchEvent(EventQueue.java:717)
> at
> java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242)
> at
> java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161)
> at
> java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150)
> at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146)
> at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138)
> at java.awt.EventDispatchThread.run(EventDispatchThread.java:91)
> Caused by: ERROR 1: Encountered error while evaluating XML query
> expression for xmlquery operator:
> com.sun.org.apache.xpath.internal.domapi.XPathStylesheetDOM3Exception:
> Prefix must resolve to a namespace: xsl
> at org.apache.derby.iapi.error.StandardException.newException(Unknown
> Source)
> at
> 

Re: XQuery or XSLT support in Derby

2015-10-29 Thread Grzegorz Zuber
Dear Peter,


Thank you for your answer.

I have XML stored in my database.

XML looks like this:


   
  
  
 
1
1
3
 
  
   
   
  
  
 
3
   4
2
 
 
4
   4
4
 
  
   
   
  
  
 
4
   2
5
 
  
   
   
  
  
 
1
   3
8
 
 
3
   3
20
 
  
   




I want to get from it for all product: customer/@id, singleOrder/@no,
productId, quantity, singleOrder/@date, so the output will look like this:


customerIdorderIdproductIdquantitydate11132015-01-2214322015-02-271444
2015-02-2732452015-01-2543182015-02-01433202015-02-01

Do you know how to do that?


Thank you,
Grzegorz


2015-10-29 13:51 GMT+01:00 Peter Ondruška :

> Dear Greg,
>
> unless anything changed with last Derby release XML support in Derby is
> limited to storing XML--the last time I checked basically there is only an
> XML data type, no query, no indexes.
>
> On 29 October 2015 at 09:11, Grzegorz Zuber 
> wrote:
>
>> Hi,
>>
>> I was doing wide research how can I do XQuery or XSLT query using Derby.
>>
>> I'm doing query like this:
>>
>>
>>
>> SELECT
>> XMLSERIALIZE(
>> XMLQUERY('
>> > xmlns:xsl="http://www.w3.org/1999/XSL/Transform; xmlns:fo="
>> http://www.w3.org/1999/XSL/Format;>
>>
>> 
>> 
>> 
>> 
>>
>> 
>> 
>> 
>> Title
>> 
>> 
>> 
>> 
>> 
>> 
>> 
>> 
>> 
>> 
>> 
>> 
>> 
>> 
>> 
>> ' PASSING BY REF xml_col EMPTY ON
>> EMPTY) AS VARCHAR(10)
>> )AS ProductId
>> FROM xml_orders
>>
>>
>>
>>
>> But I'm getting an exception:
>>
>> java.sql.SQLException: Encountered error while evaluating XML query
>> expression for xmlquery operator:
>> com.sun.org.apache.xpath.internal.domapi.XPathStylesheetDOM3Exception:
>> Prefix must resolve to a namespace: xsl
>> at org.apache.derby.impl.jdbc.SQLExceptionFactory.getSQLException(Unknown
>> Source)
>> at org.apache.derby.impl.jdbc.SQLExceptionFactory.getSQLException(Unknown
>> Source)
>> at org.apache.derby.impl.jdbc.Util.seeNextException(Unknown Source)
>> at
>> org.apache.derby.impl.jdbc.TransactionResourceImpl.wrapInSQLException(Unknown
>> Source)
>> at
>> org.apache.derby.impl.jdbc.TransactionResourceImpl.handleException(Unknown
>> Source)
>> at org.apache.derby.impl.jdbc.EmbedConnection.handleException(Unknown
>> Source)
>> at org.apache.derby.impl.jdbc.ConnectionChild.handleException(Unknown
>> Source)
>> at org.apache.derby.impl.jdbc.EmbedStatement.execute(Unknown Source)
>> at org.apache.derby.impl.jdbc.EmbedStatement.executeQuery(Unknown Source)
>> at com.sqlxd.derby.DBQuery.executeDerbyQuery(DBQuery.java:295)
>> at com.SQLxDClient.QueryExecutor.executeQuery(QueryExecutor.java:47)
>> at com.SQLxDClient.Window$3.serveExecuteToGrid(Window.java:204)
>> at com.SQLxDClient.Window$3.mouseClicked(Window.java:192)
>> at java.awt.AWTEventMulticaster.mouseClicked(AWTEventMulticaster.java:270)
>> at java.awt.Component.processMouseEvent(Component.java:6519)
>> at javax.swing.JComponent.processMouseEvent(JComponent.java:3321)
>> at java.awt.Component.processEvent(Component.java:6281)
>> at java.awt.Container.processEvent(Container.java:2229)
>> at java.awt.Component.dispatchEventImpl(Component.java:4872)
>> at java.awt.Container.dispatchEventImpl(Container.java:2287)
>> at java.awt.Component.dispatchEvent(Component.java:4698)
>> at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4832)
>> at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4501)
>> at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4422)
>> at java.awt.Container.dispatchEventImpl(Container.java:2273)
>> at java.awt.Window.dispatchEventImpl(Window.java:2719)
>> at java.awt.Component.dispatchEvent(Component.java:4698)
>> at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:747)
>> at java.awt.EventQueue.access$300(EventQueue.java:103)
>> at java.awt.EventQueue$3.run(EventQueue.java:706)
>> at java.awt.EventQueue$3.run(EventQueue.java:704)
>> at java.security.AccessController.doPrivileged(Native Method)
>> at
>> java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
>> at
>> java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87)
>> at java.awt.EventQueue$4.run(EventQueue.java:720)
>> at 

Re: XQuery or XSLT support in Derby

2015-10-29 Thread Knut Anders Hatlen
Grzegorz Zuber  writes:

> Hi,
>
> I was doing wide research how can I do XQuery or XSLT query using
> Derby.
>
> I'm doing query like this:
>
> SELECT
> XMLSERIALIZE(
> XMLQUERY('
>  xmlns:xsl="http://www.w3.org/1999/XSL/Transform;
> xmlns:fo="http://www.w3.org/1999/XSL/Format;>
>
> 
> 
> 
> 
>
> 
> 
> 
> Title
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> ' PASSING BY REF xml_col EMPTY ON
> EMPTY) AS VARCHAR(10)
> )AS ProductId
> FROM xml_orders
>
> But I'm getting an exception:
>
> java.sql.SQLException: Encountered error while evaluating XML query
> expression for xmlquery operator:
> com.sun.org.apache.xpath.internal.domapi.XPathStylesheetDOM3Exception:
> Prefix must resolve to a namespace: xsl
> at org.apache.derby.impl.jdbc.SQLExceptionFactory.getSQLException
> (Unknown Source)
> at org.apache.derby.impl.jdbc.SQLExceptionFactory.getSQLException
> (Unknown Source)
> at org.apache.derby.impl.jdbc.Util.seeNextException(Unknown Source)
> at
> org.apache.derby.impl.jdbc.TransactionResourceImpl.wrapInSQLException
> (Unknown Source)
> at org.apache.derby.impl.jdbc.TransactionResourceImpl.handleException
> (Unknown Source)
> at org.apache.derby.impl.jdbc.EmbedConnection.handleException(Unknown
> Source)
> at org.apache.derby.impl.jdbc.ConnectionChild.handleException(Unknown
> Source)
> at org.apache.derby.impl.jdbc.EmbedStatement.execute(Unknown Source)
> at org.apache.derby.impl.jdbc.EmbedStatement.executeQuery(Unknown
> Source)
> at com.sqlxd.derby.DBQuery.executeDerbyQuery(DBQuery.java:295)
> at com.SQLxDClient.QueryExecutor.executeQuery(QueryExecutor.java:47)
> at com.SQLxDClient.Window$3.serveExecuteToGrid(Window.java:204)
> at com.SQLxDClient.Window$3.mouseClicked(Window.java:192)
> at java.awt.AWTEventMulticaster.mouseClicked
> (AWTEventMulticaster.java:270)
> at java.awt.Component.processMouseEvent(Component.java:6519)
> at javax.swing.JComponent.processMouseEvent(JComponent.java:3321)
> at java.awt.Component.processEvent(Component.java:6281)
> at java.awt.Container.processEvent(Container.java:2229)
> at java.awt.Component.dispatchEventImpl(Component.java:4872)
> at java.awt.Container.dispatchEventImpl(Container.java:2287)
> at java.awt.Component.dispatchEvent(Component.java:4698)
> at java.awt.LightweightDispatcher.retargetMouseEvent
> (Container.java:4832)
> at java.awt.LightweightDispatcher.processMouseEvent
> (Container.java:4501)
> at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4422)
> at java.awt.Container.dispatchEventImpl(Container.java:2273)
> at java.awt.Window.dispatchEventImpl(Window.java:2719)
> at java.awt.Component.dispatchEvent(Component.java:4698)
> at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:747)
> at java.awt.EventQueue.access$300(EventQueue.java:103)
> at java.awt.EventQueue$3.run(EventQueue.java:706)
> at java.awt.EventQueue$3.run(EventQueue.java:704)
> at java.security.AccessController.doPrivileged(Native Method)
> at java.security.ProtectionDomain$1.doIntersectionPrivilege
> (ProtectionDomain.java:76)
> at java.security.ProtectionDomain$1.doIntersectionPrivilege
> (ProtectionDomain.java:87)
> at java.awt.EventQueue$4.run(EventQueue.java:720)
> at java.awt.EventQueue$4.run(EventQueue.java:718)
> at java.security.AccessController.doPrivileged(Native Method)
> at java.security.ProtectionDomain$1.doIntersectionPrivilege
> (ProtectionDomain.java:76)
> at java.awt.EventQueue.dispatchEvent(EventQueue.java:717)
> at java.awt.EventDispatchThread.pumpOneEventForFilters
> (EventDispatchThread.java:242)
> at java.awt.EventDispatchThread.pumpEventsForFilter
> (EventDispatchThread.java:161)
> at java.awt.EventDispatchThread.pumpEventsForHierarchy
> (EventDispatchThread.java:150)
> at java.awt.EventDispatchThread.pumpEvents
> (EventDispatchThread.java:146)
> at java.awt.EventDispatchThread.pumpEvents
> (EventDispatchThread.java:138)
> at java.awt.EventDispatchThread.run(EventDispatchThread.java:91)
> Caused by: ERROR 1: Encountered error while evaluating XML query
> expression for xmlquery operator:
> com.sun.org.apache.xpath.internal.domapi.XPathStylesheetDOM3Exception:
> Prefix must resolve to a namespace: xsl
> at org.apache.derby.iapi.error.StandardException.newException(Unknown
> Source)
> at
> org.apache.derby.impl.jdbc.SQLExceptionFactory.wrapArgsForTransportAcrossDRDA(Unknown
> Source)
> ... 45 more
> Caused by: javax.xml.xpath.XPathExpressionException:
> com.sun.org.apache.xpath.internal.domapi.XPathStylesheetDOM3Exception:
> Prefix must resolve to a namespace: xsl
> at com.sun.org.apache.xpath.internal.jaxp.XPathImpl.compile
> (XPathImpl.java:400)
> at org.apache.derby.iapi.types.SqlXmlUtil.compileXQExpr(Unknown
> Source)
> at
> org.apache.derby.exe.ac185e801cx0150xb293xf5c3x06bfe7b80.postConstructor(Unknown
> Source)
> at
> org.apache.derby.impl.services.reflect.LoadedGeneratedClass.newInstance(Unknown
> Source)
> at org.apache.derby.impl.sql.GenericActivationHolder.(Unknown
> Source)
> at