Jump to content
Changes to the Jaspersoft community edition download ×

problems with namespaces when using xpath


ionelu

Recommended Posts

 I have a XML source that is using namespaces.

I am using the following query for the Report Query:

/ns3:QueryNetworkElementResponse/NetworkElement

The XML data looks something like this:

<ns3:QueryNetworkElementResponse xmlns:ns3="http://www.tieroneoss.com/tnpNML/" >

<NetworkElement>

<ns1:Id xmlns:ns1="http://www.tieroneoss.com/tnp/NetworkResources">1</ns1:Id>

<ns1:Name xmlns:ns1="http://www.tieroneoss.com/tnp/NetworkResources">UploadTerm/UploadTerm</ns1:Name>

....

The report returns no data.

If I take out the namespace, it works fine.

Any suggestions?

Ion

 
Link to comment
Share on other sites

  • 5 months later...
  • Replies 1
  • Created
  • Last Reply

Top Posters In This Topic

Popular Days

Top Posters In This Topic

Hi, what's the status of this? I'm also facing problems using XPath to XML elements with namespaces. I'm using iReport 3.7.2. The XML document I'm using looks like this:

<QueryResults

xmlns:ns2="http://www.unece.org/cefact/namespaces/StandardBusinessDocumentHeader"

xmlns:ns3="urn:epcglobal:epcis-query:xsd:1" xmlns:ns4="urn:epcglobal:epcis-masterdata:xsd:1"

xmlns:ns5="urn:epcglobal:epcis:xsd:1">

<results>

<queryName>/query/SimpleEventQuery</queryName>

<resultsBody>

<EventList>

<ObjectEvent>

<eventTime>2010-07-02T13:24:00.000+02:00</eventTime>

<recordTime>2010-07-06T14:13:18.028+02:00</recordTime>

<eventTimeZoneOffset>+02:00</eventTimeZoneOffset>

<epcList>

<epc>Lot2</epc>

</epcList>

<action>OBSERVE</action>

<ns6:weight xmlns:ns6="http://www.tracefood.org/schema/epcis">1000</ns6:weight>

</ObjectEvent>

<ObjectEvent>

<eventTime>2010-07-02T13:24:00.000+02:00</eventTime>

<recordTime>2010-07-06T14:13:18.029+02:00</recordTime>

<eventTimeZoneOffset>+02:00</eventTimeZoneOffset>

<epcList>

<epc>Lot2</epc>

</epcList>

<action>OBSERVE</action>

<ns6:moisture xmlns:ns6="http://www.tracefood.org/schema/epcis">20</ns6:moisture>

</ObjectEvent>

</EventList>

</resultsBody>

</results>

</QueryResults>

 

and I want to access the weight and moisture elements. Ireport generates the following XPath's for me:

/QueryResults/results/resultsBody/EventList/ObjectEvent/ns6:weight

but I get this exception back when I try to preview it:

Error filling print... XPath selection failed. Expression: /QueryResults/results/resultsBody/EventList/ObjectEvent/ns6:weight

net.sf.jasperreports.engine.JRException: XPath selection failed. Expression: /QueryResults/results/resultsBody/EventList/ObjectEvent/ns6:weight     at net.sf.jasperreports.engine.util.xml.JaxenXPathExecuter.selectObject(JaxenXPathExecuter.java:128)     at net.sf.jasperreports.engine.data.JRXmlDataSource.getFieldValue(JRXmlDataSource.java:302)     at net.sf.jasperreports.engine.fill.JRFillDataset.setOldValues(JRFillDataset.java:823)     at net.sf.jasperreports.engine.fill.JRFillDataset.next(JRFillDataset.java:787)     at net.sf.jasperreports.engine.fill.JRBaseFiller.next(JRBaseFiller.java:1474)     at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillReport(JRVerticalFiller.java:125)     at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:938)     at net.sf.jasperreports.engine.fill.JRFiller.fillReport(JRFiller.java:118)     at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:435)     at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:271)     at com.jaspersoft.ireport.designer.compiler.IReportCompiler.run(IReportCompiler.java:970)     at org.openide.util.RequestProcessor$Task.run(RequestProcessor.java:572)     at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:997) Caused by: org.jaxen.UnresolvableException: Cannot resolve namespace prefix 'ns6'     at org.jaxen.expr.DefaultNameStep.matches(DefaultNameStep.java:358)     at org.jaxen.expr.DefaultNameStep.evaluate(DefaultNameStep.java:285)     at org.jaxen.expr.DefaultLocationPath.evaluate(DefaultLocationPath.java:140)     at org.jaxen.expr.DefaultAbsoluteLocationPath.evaluate(DefaultAbsoluteLocationPath.java:113)     at org.jaxen.expr.DefaultXPathExpr.asList(DefaultXPathExpr.java:102)     at org.jaxen.BaseXPath.selectNodesForContext(BaseXPath.java:674)     at org.jaxen.BaseXPath.selectNodes(BaseXPath.java:213)     at org.jaxen.BaseXPath.evaluate(BaseXPath.java:172)     at net.sf.jasperreports.engine.util.xml.JaxenXPathExecuter.selectObject(JaxenXPathExecuter.java:102)     ... 12 more

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...