[prev in list] [next in list] [prev in thread] [next in thread]
List: xmlbeans-user
Subject: Problem with recursive xpath
From: "Rhys Parry" <rparry () Infoterra ! com>
Date: 2006-09-26 18:40:10
Message-ID: 981D1FCECE43C74285832557577611821C23B5 () infoterra-m2003 ! Infoterra ! com
[Download RAW message or body]
> All,
>
**Update: I sent this to the wrong list earlier. I currently have a work around, \
however, not as elegant as I would like. The problem persists.
> I am getting the error: java.lang.RuntimeException: Could not resolve the node to a \
> handle The error is very odd as it runs the first node successfully but throws an \
> exception on the second node, regardless of which node is executed ( I moved the \
> xml nodes around in the XML file).
> Basically the program is parsing 2 files. I file is the xml client data (No \
> problems even though I traverse the tree up and down) and the other is an xml \
> config file with xpath expressions in it. An example of the xml I am trying to run \
> is (this is the xml config file): <!-- Runs fine -->
> <FieldMapping identifier="1.SubmissionType" xpath="SubmissionTypeCode/text()" \
> converter="com.infoterra.grantium.service.integration.datamapper.converters.impl.LookupConverter">
> <ConverterAdditionalMapping>
> <LookUpInfo constant="SF424_SUBMISSION_TYPE/>
> </ConverterAdditionalMapping>
> </FieldMapping>
>
> <!-- exception is thrown -->
> <FieldMapping identifier="2.ApplicationType" xpath="ApplicationTypeCode/text()" \
> converter="com.infoterra.grantium.service.integration.datamapper.converters.impl.LookupConverter">
> <ConverterAdditionalMapping>
> <LookUpInfo constant="SF424_APPLICANT_TYPE"/>
> </ConverterAdditionalMapping>
> </FieldMapping>
>
> The java code that is calling the xpath is:
> //Note that this is recreated for every node. Is this part of the problem?????
> XPathFactory xpathfactory= XPathFactory.newInstance();
>
> XPath xpath = xpathfactory.newXPath();
>
> //converterAdditionalMappingNode is the <ConverterAdditionalMapping> node
> String lookupConstant = (String)xpath.evaluate("LookUpInfo/@constant", \
> converterAdditionalMappingNode, XPathConstants.STRING);
>
> Note that I have XMLBean'ed the config file so that I can traverse it with objects, \
> however the <ConverterAdditionalMapping> node is supposed to be client specific and \
> therefore cannot be XMLBean'ed.
> Why is there a problem with this?
> The stack trace is:
> Caused by: java.lang.RuntimeException: Could not resolve the node to a handle
> at org.apache.xml.dtm.ref.DTMManagerDefault.getDTMHandleFromNode(DTMManagerDefault.java:625)
> at org.apache.xpath.XPathContext.getDTMHandleFromNode(XPathContext.java:220)
> at org.apache.xpath.XPath.execute(XPath.java:274)
> at org.apache.xpath.jaxp.XPathImpl.eval(XPathImpl.java:210)
> at org.apache.xpath.jaxp.XPathImpl.evaluate(XPathImpl.java:275)
> at com.infoterra.grantium.service.integration.datamapper.converters.impl.LookupConverter.convertSimpleData(LookupConverter.java:48)
>
> ... 27 more
>
> I am trying to create a work around for now, but this will become a much larger \
> issue once the client configs become increasingly complicated.
>
> Thanks in advance for any and all advice,
> Rhys Parry
> Product Development
>
> Infoterra Inc. - Leadership in Enterprise Grants Management (EGM) Solutions
> Phone #: 613-230-7890 Ext: 239
> Fax #: 613-230-5243
>
---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@xmlbeans.apache.org
For additional commands, e-mail: user-help@xmlbeans.apache.org
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic