Detect recursive XSD node
I have a problem with an XSD in PI 7.11. When loading into a mapping, it leads to an OutOfMemory error. The reason is that the XSD contains recursive nodes, which is not allowed for PI XSD's. So far so good.
The problem is how to find out which of the node(s) is recursive. It is a huge structure. In the PI XSD editor, I can right-click on a node and then expand recursively. If it contains a recursive node, it gives an error message. For small structures, it shows the recursive node in red. But for large structures, the GUI just stucks after the error message and does not respond anymore. So I do not know which subnode caused the problem.
This means I have no automated way to detect the recursive nodes if they occur in very large structures (which is the case here). Any hints ? I want to avoid to open manually hundreds of nodes and browse for a red color.
Is there any XML tool outside PI which can detect and display such node names ? In XmlSpy I did not find such a function.
Hint 1 for SAP product developers: it would be nice if the GUI did not stuck in such cases, but give a detailed message which node(s) cause the problem ! Same for the mapping.
Hint 2: the XSD is this one: http://docs.oasis-open.org/ubl/cs-UBL-2.0/xsd/maindoc/UBL-Order-2.0.xsd
CSY
hi,
>>>Hint 1 for SAP product developers: it would be nice if the GUI did not stuck in such cases, but give a detailed message which node(s) cause the problem ! Same for the mapping.
please put those suggestions here:
https://cw.sdn.sap.com/cw/community/ideas/sap_netweaver/sap_netweaver_process_orchestration_process_integration
with comment
this is the way we can raise it with SAP during our GSIG for PI meetings
Thank you,
Regards,
Michal Krawczyk
Similar Messages
-
Detection of proxy node outage
Question regarding detection of proxy node outage in extend client.
My impression is that once connection established, you won't notice that proxy node was gone until next time you try to access cluster (get, put, etc. etc.).
Or there is anything like MemberListener thing that client will be notified when proxynode is gone?
This cause us some issue since we will add a map listener within extend client, but we won't receive any notification if the proxy node is gone.
To address this issue, we are implement a heartbeat approach which client will have a background thread perform periodically cache get to ensure that the connection still valid.
Above approach worked fine for single proxy node approach, since if the heartbeat check failed, we know something wrong.
However, the heartbeat approach create new issue when there are multiple proxy nodes configured in client's remote cache scheme.
This is what we observed.
An extend client configured with a remote cache scheme has proxyA and proxyB as proxy list.
1. Extend client start with connection to proxyA.
2. Extend client subscribe to key ABC for cacheX
3. Kill proxyA process.
4. The background heartbeat check thread perform a heartbeat get to cacheX. Looks like during this cacheX.get() operation, Coherence will establish a new connection to proxyB automatically. Our application doesn't even notice there is a proxy node switch.
Now the issue is if an update to key ABC occurred between step 3 and 4. Our application won't receive any notification at all. And we don't even notice there is a new connection created to a different proxynode at all.
Our business requirement require us not to miss any entry update notification in extend client (unless if all proxy nodes are down) as long as there is at least one proxy node available.
Is there any better approach for this requirement?J.K.
Turn out that member listener approach still have chance to lost update notification.
We found out that the update occurred between MemberLeft event notification and re-add map listener will be lost.
That window is small, however, our business requirement require that no lost of update event at all as long as the update operation succeeded (the update could be performed by another extend client connect to different proxy node).
Is it even possible to ensure that requirement using extend client?
Regards,
Chen -
How can I deal with recursive target nodes?
Hello All,
I am working on an IDOC to B2MML scenario.
I need to map E1PLPOL segment to a recursive node - product segment - on the target side.
The initial occurrence of product segment node will be the operations and the child product segment node under it will be the phases.
When I test the message mapping, I can see one successful occurrence of the operations and phases.
But, when I give values for subsequent occurrences of operations and phases, I am able to see the operations alone. What could be the reason for the phases to miss out from the second iteration onwards?
Any help would be deeply appreciated.
Warm Regards,
EarnestHi Ibrahim,
Here is the source tree structure:
MT_NEW_TEST
- E1PLPOL
--VORNR
--PVZNR
Target tree structure is as given below:
MT_INT_MR1
-OPERATIONS
--OVORNR
--OPVZNR
---PHASES
PVORNR
PPVZNR
Test data for source side is given below:
<?xml version="1.0" encoding="UTF-8"?>
<ns0:MT_NEW_TEST xmlns:ns0="http://hclcoe/PIPs">
<E1PLPOL>
<VORNR>10</VORNR>
</E1PLPOL>
<E1PLPOL>
<VORNR>20</VORNR>
<PVZNR>10</PVZNR>
</E1PLPOL>
<E1PLPOL>
<VORNR>30</VORNR>
<PVZNR>10</PVZNR>
</E1PLPOL>
<E1PLPOL>
<VORNR>40</VORNR>
</E1PLPOL>
<E1PLPOL>
<VORNR>50</VORNR>
<PVZNR>40</PVZNR>
</E1PLPOL>
<E1PLPOL>
<VORNR>60</VORNR>
<PVZNR>40</PVZNR>
</E1PLPOL>
<E1PLPOL>
<VORNR>70</VORNR>
</E1PLPOL>
<E1PLPOL>
<VORNR>80</VORNR>
<PVZNR>70</PVZNR>
</E1PLPOL>
<E1PLPOL>
<VORNR>90</VORNR>
<PVZNR>70</PVZNR>
</E1PLPOL>
</ns0:MT_NEW_TEST>
The following is what I got on the target side:
<?xml version="1.0" encoding="UTF-8"?>
<ns0:MT_INT_MR1 xmlns:ns0="http://hclcoe/PIPs">
<Operations><OVORNR>10</OVORNR>
<Phases><PVORNR>20</PVORNR><PPVZNR>10</PPVZNR></Phases>
<Phases><PVORNR>30</PVORNR><PPVZNR>10</PPVZNR></Phases>
<Phases><PVORNR>50</PVORNR><PPVZNR>40</PPVZNR></Phases>
<Phases><PVORNR>60</PVORNR><PPVZNR>40</PPVZNR></Phases>
<Phases><PVORNR>80</PVORNR><PPVZNR>70</PPVZNR></Phases>
<Phases><PVORNR>90</PVORNR><PPVZNR>70</PPVZNR></Phases>
</Operations>
<Operations><OVORNR>40</OVORNR></Operations>
<Operations><OVORNR>70</OVORNR></Operations>
</ns0:MT_INT_MR1>
The condition to map the phases under the operation is: "VORNR value should match the PVZNR value".
So, in the above sample, the operations would be 10, 40 & 70. I am struggling to group the respective phases under the operations using the condition mentioned above.
Thanks a lot,
Earnest
Edited by: Earnest Thomas on Nov 30, 2008 9:56 AM
Edited by: Earnest Thomas on Nov 30, 2008 9:57 AM
Edited by: Earnest Thomas on Nov 30, 2008 9:59 AM -
How to detect missing xml node before using countNodes?
Below is my xml sample. Right now I use countNodes to count # of <Book> returned.
<ListOfBook>
<Book>A</Book>
<Book>B</Book>
<Book>C</Book>
</ListOfBook>
When there's no data, I got
</ListOfBook>
My countNodes() failed and generated errors. How do I avoid this? Can I detect if <Book> exists first before doing countNodes() and if so how?
I'm using SOA 11.1.1.2
ThanksActualy the simplest way to be certain your <ListOfBook> is empty is to check the first element:
If $ListOfBook/Book[1] != ''
If there aqre no Books - nothing happens.
About count nodes - it works. Pb=robably you have a mistake in countNodes definition (you can paste it here for commenting) -
Hi experts, please help me with examples or links, I need to create a mapping to the xsd multiple lines complex type with a rfc table, when I try to create the map the following message comes up :
Incompatible Expression Type.
Expected: ZSMM_ITEMMAT
Found: ItemMaterialCTHi,
you have to map on attribute level, as the complex types are not compatible (as the message indicates) -
Q: Detecting when a Node is Detatched from the Scene Graph, How?
Hi All,
My nodes are regiserted observers with an Async service. I need to know when a nodes is detached/removed from the Scene graph so that I can remove it from the Async service.
The only thing I can think of at the moment is to bind to Node.scene but I would like to think there is a more "standardized" way of doing this (I don't want to re-invent the wheel).
Example (improved from 1st post):
class MyCustomNode extends CustomNode {
var sceneMonitor:Scene = bind scene on replace {onSceneChange()};
public var onSceneChange:function():Void = function():Void{
if (scene == null){
println("we have no scene");
} else {
println("we have a scene");
}Edited by: AndrewHughes on Oct 12, 2009 6:13 AMYou can add an "initialized" flag into your CustomNode and set it true in the postinit block
var initialized = false;
postinit { initialized = true }The parent and scene of the node won't be set until after the CustomNode is past the postinit phase. You can use this flag to determine whether or not the change in parent or scene is because the node is being added, or because the node is being removed.
var fubar = bind scene on replace {
if (initialized and scene == null) {
// cleanup
}You could also use the old value and the new value in the on replace:
var fubar = bind scene on replace oldscene = newscene {
if (oldscene != null and newscene == null) {
// cleanup
} -
Hi everybody,
i would like to ask if it is posiible to map context node with recursive node from controller to view. I try to do that by the recursive subnode is disabled. When that is not possible can that any one explain why?
Regards
BogdanHello Bogdan,
Recursive context nodes cannot be mapped. You may refer this <a href="http://help.sap.com/saphelp_nw2004s/helpdata/en/ea/a5384162316532e10000000a1550b0/frameset.htm">article</a>
Best Regards,
Bala -
Detect server node processing a http request
Is there any way to detect which server node is answering a http request? For debug purposes I would like to add the cluster element to the output of a jsp. Maybe it is also possible to force a jsp being processed by a given node?
Thanks in advance for your answers!
Best regards,
FrankHi Violeta,
Thanks for your answer! This has been very helpful indeed.
However, I´m still a bit puzzled. Replacing the saplb cookie forces the load balancer to use the given server, but the JSESSIONID does not change. Looking at the application data I know that I´m talking to a different server, but I still don´t seem to have a way to tell which server ansered - except my expectation that the saplb cookie might have been taken into account by the server.
Isn´t there a more sophisticated way to access this kind of information? Escpecially, getting a list of all available servers would be great, as this would allow to choose the server having a look at.
Best regards,
Frank -
What is Level-1 in recursive queries
Hi can some one explain to me what level-1 means in recursive queries and direct me to some good documentation on it as well
select
lpad(' ', level-1) || node_from || '->' || node_to
from
directed_graph
start with
node_from = 'F'
connect by
prior node_to = node_from;LEVEL is a pseudo-column. That means that you get that as one of the columns whenever you run recursive SQL in Oracle, even though your input tables don't contain that column. Other such columns are provided to detect leaf-level nodes, cycles etc.
The lpad function is used to provide an indentation that makes it convenient to read. Whatever is returned is padded using the space character level-1 times. the minus-one is so that the top level does not have any indentation at all. Try the query with and without it to see what it means.
If you are running it from SQLPLUS, you might want to name the column, then format it so that you can see it nicely.
By the way, in an arbitrary directed graph, there may be cycles (i.e pathways you can take that will lead you back to the starting node), either by intent or as a data error. You might want to put in code to detect that as well. -
Question regarding IWDTree and context Value Node naming
Hi,
I have a question regarding the IWDTree / IWDTreeNodeType components.
I have a context looking like this:
Context
+ ResponseNode
+ PersonNode (1..1)
+ PersonAddressNode (empty node, placeholder)
| + AdresNode (0..n)
+ PersonChildNode (empty node, placeholder)
| + PersonNode (0..n)
| + PersonAddressNode (empty node, placeholder)
| + AddressNode (0..n)
+ PersonParentsNode (empty node, placeholder)
+ PersonNode (0..n)
+ PersonAddressNode (empty node, placeholder)
+ AddressNode (0..n)
The context represents a person, a person's address, and a person's children and parents with their respective addresses.
As a result, on different branches, a PersonNode and AddressNode can appear.
And for some strange reason, all PersonNodes and AddressNodes link to the same ResponseNode.PersonNode.PersonParentsNode.PersonNode and ResponseNode.PersonNode.PersonParentsNode.PersonNode.PersonAddressNode.AddressNode respectively, irregardless of their branch...
Is it illegal to have multiple PersonNode and AddressNode node names, and should they be named uniquely?Generally, node names need to be unique inside the context, attributes in different nodes can have same names. I wonder if the context structure you described will result in code without compile errors.
The WD Tree can only be used with recursive context nodes or with a hierarchy of non-singleton child nodes.
Can you give an example how your tree should look like at runtime? -
Filteredtreemodel, how to hide parent nodes if no children
hi. i have surfed and read a lot of posts and topics here regarding filteredtreemodel. some i found hard to understand so i chose to use NiceGuy1's code from long ago since it's the easiest to understand.
package test;
import javax.swing.tree.DefaultMutableTreeNode;
import javax.swing.tree.DefaultTreeModel;
import javax.swing.tree.TreeNode;
import java.util.ArrayList;
import java.util.Enumeration;
public class FilteredTreeModel extends DefaultTreeModel {
// this hashmap gets the list of pdf files and the filter status
private String filterText;
private DefaultMutableTreeNode orig_root;
public FilteredTreeModel(DefaultMutableTreeNode root) {
super(root);
orig_root = root;
public void setFilterText(String s) {
this.filterText = s;
reload();
public String getFilterText() {
return this.filterText;
@Override
public Object getChild(Object parent, int index) {
return getFilteredChildren(parent).get(index);
@Override
public int getChildCount(Object parent) {
return getFilteredChildCount(parent);
@Override
public int getIndexOfChild(Object parent, Object child) {
return getFilteredChildren(parent).indexOf(child);
private int getFilteredChildCount(Object parent) {
return getFilteredChildren(parent).size();
private ArrayList<TreeNode> getFilteredChildren(Object parent) {
ArrayList<TreeNode> filteredChildren = new ArrayList<TreeNode>();
DefaultMutableTreeNode parentNode = null;
parentNode = (DefaultMutableTreeNode)parent;
for (Enumeration e=parentNode.children(); e.hasMoreElements();) {
DefaultMutableTreeNode nextNode = (DefaultMutableTreeNode) e.nextElement();
DefaultMutableTreeNode dummy = null;
if (nextNode.children().hasMoreElements()) {
filteredChildren.add(nextNode);
} else {
// if node is leaf node
if (filterText == null ) {
// add right away if no filter
filteredChildren.add(nextNode);
} else {
// if filter matches this leaf node, add it. if not, how to check if
// parent nodes have empty children and remove it.
return filteredChildren;
}i havent had luck the whole day trying to make this work. it seemed that once the filteredChildren.add() is called, it gets rendered to the treecellrenreder right away so if i wnat to remove the parents (in case it has no children based on the filter),the parent nodes will stay put in the jtree. any workaround? or ideas? i dont want to use a different defaulttreemodel for this. i want to avoid that because i have lots of nodes in my jtree.Looks like you need this:
for (Enumeration e=parentNode.getFilteredChildren(); e.hasMoreElements();) Edit: okay, that was just a quick guess. Actually you're going to get into trouble if you try to recursively suppress nodes with no children. First you suppress all the leaf nodes (because they naturally don't have any children). Then you suppress all of their parents, because now they don't have any unsuppressed children. Then you suppress all of the parents' parents, because now they don't have any unsuppressed children... and so on until you only have the root left. So you need to refine that requirement.
But I get what you're saying. I had to do a similar thing, only I didn't use a FilteredTreeModel, I just built the TreeModel based on a selection from another tree. It's ridiculously hard to do when you don't get the nodes in order from the database, too, but that's a different problem. -
I created a web dynpro project which implement a KM file repository constructs by recursion child node. If the node is collection (folder) there is no problem to open it,But if it is not (for example if it is a *.pdf or *.doc or *.txt), I dont know how can I open it. May be I should somehow cause the node to be a link.
Thanks a head for your help
Message was edited by: Armin ReichertHi,
1.Bind the ValueAttribute to the NodeItem and store all the URLs in the ValueAttribute.
2.Bind the same ValueAttribute to the IFrame control also.
3.On Click of TreeItem it will open the URL in the IFrame
Regards, VIP -
External context mapping with recursive treenode
Hi,
did anybody succeed with external context mapping of a recursive tree node?
I get the following runtime error. Everything works fine if I use a "regular" value node. I´ve also experimented with manual and automatic component creation.
Any help is appreciated
Helmut
com.sap.tc.webdynpro.progmodel.context.ContextException: NodeInfo(InnerCompInterface.OuterCompTree): cannot create nodes, no mapping defined yet
at com.sap.tc.webdynpro.progmodel.context.MappingInfo.getDataNode(MappingInfo.java:102)
at com.sap.tc.webdynpro.progmodel.context.RecursiveNodeInfo.init(RecursiveNodeInfo.java:127)
at com.sap.tc.webdynpro.progmodel.context.NodeInfo.init(NodeInfo.java:682)
at com.sap.tc.webdynpro.progmodel.context.NodeInfo.init(NodeInfo.java:682)
at com.sap.tc.webdynpro.progmodel.context.Context.init(Context.java:38)
at com.sap.tc.webdynpro.progmodel.controller.Controller.init(Controller.java:199)
at com.sap.tc.webdynpro.progmodel.controller.Component.getCustomControllerInternal(Component.java:409)
at com.sap.tc.webdynpro.progmodel.controller.Component.getMappableContext(Component.java:347)
at com.sap.tc.webdynpro.progmodel.controller.Component.getMappableContext(Component.java:376)
at com.sap.tc.webdynpro.progmodel.context.MappingInfo.init(MappingInfo.java:137)
at com.sap.tc.webdynpro.progmodel.context.NodeInfo.init(NodeInfo.java:667)
at com.sap.tc.webdynpro.progmodel.context.NodeInfo.init(NodeInfo.java:682)
at com.sap.tc.webdynpro.progmodel.context.Context.init(Context.java:38)
at com.sap.tc.webdynpro.progmodel.controller.Controller.init(Controller.java:199)
at com.sap.tc.webdynpro.clientserver.cal.ClientComponent.init(ClientComponent.java:346)
at com.sap.tc.webdynpro.clientserver.cal.ClientComponent.createComponent(ClientComponent.java:854)
at com.sap.tc.webdynpro.clientserver.cal.ClientComponent.createComponent(ClientComponent.java:157)
at com.sap.tc.webdynpro.progmodel.components.ComponentUsage.createComponentInternal(ComponentUsage.java:137)
at com.sap.tc.webdynpro.progmodel.components.ComponentUsage.createComponent(ComponentUsage.java:104)
at com.sap.tc.webdynpro.progmodel.components.ComponentUsage.createInstanceIfDemanded(ComponentUsage.java:659)
at com.sap.tc.webdynpro.progmodel.components.ComponentUsage.getInterfaceControllerInternal(ComponentUsage.java:300)
at com.sap.tc.webdynpro.progmodel.components.ComponentUsage.getControllerInternal(ComponentUsage.java:341)
at com.sap.tc.webdynpro.progmodel.controller.Component.getMappableContext(Component.java:381)
at com.sap.tc.webdynpro.progmodel.context.MappingInfo.getContext(MappingInfo.java:54)
at com.sap.tc.webdynpro.progmodel.context.MappingInfo.isComplete(MappingInfo.java:92)
at com.sap.tc.webdynpro.progmodel.context.NodeInfo.getStructureType(NodeInfo.java:247)
at com.sap.tc.webdynpro.progmodel.context.NodeInfo.getStructureType(NodeInfo.java:247)
at com.sap.tc.webdynpro.progmodel.context.AttributeInfo.initNodeMapping(AttributeInfo.java:546)
at com.sap.tc.webdynpro.progmodel.context.AttributeInfo.init(AttributeInfo.java:432)
at com.sap.tc.webdynpro.progmodel.context.NodeInfo.initAttributes(NodeInfo.java:692)
at com.sap.tc.webdynpro.progmodel.context.NodeInfo.initAfterCompletedMapping(NodeInfo.java:698)
at com.sap.tc.webdynpro.progmodel.context.MappingInfo.initAfterCompletedMapping(MappingInfo.java:159)
at com.sap.tc.webdynpro.progmodel.context.MappingInfo.initMapping(MappingInfo.java:152)
at com.sap.tc.webdynpro.progmodel.context.MappingInfo.init(MappingInfo.java:142)
at com.sap.tc.webdynpro.progmodel.context.NodeInfo.init(NodeInfo.java:667)
at com.sap.tc.webdynpro.progmodel.context.NodeInfo.init(NodeInfo.java:682)
at com.sap.tc.webdynpro.progmodel.context.Context.init(Context.java:38)
at com.sap.tc.webdynpro.progmodel.controller.Controller.init(Controller.java:199)
at com.sap.tc.webdynpro.progmodel.view.ViewManager.getView(ViewManager.java:539)
at com.sap.tc.webdynpro.progmodel.view.ViewManager.bindRoot(ViewManager.java:421)
at com.sap.tc.webdynpro.progmodel.view.ViewManager.init(ViewManager.java:129)
at com.sap.tc.webdynpro.progmodel.view.InterfaceView.initController(InterfaceView.java:41)
at com.sap.tc.webdynpro.progmodel.controller.Controller.init(Controller.java:200)
at com.sap.tc.webdynpro.clientserver.cal.ClientComponent.displayToplevelComponent(ClientComponent.java:134)
at com.sap.tc.webdynpro.clientserver.cal.ClientApplication.init(ClientApplication.java:364)
at com.sap.tc.webdynpro.clientserver.task.Task.createApplication(Task.java:217)
at com.sap.tc.webdynpro.clientserver.task.WebDynproMainTask.execute(WebDynproMainTask.java:548)
at com.sap.tc.webdynpro.clientserver.cal.AbstractClient.executeTasks(AbstractClient.java:57)
at com.sap.tc.webdynpro.clientserver.cal.ClientManager.doProcessing(ClientManager.java:249)
at com.sap.tc.webdynpro.serverimpl.defaultimpl.DispatcherServlet.doWebDynproProcessing(DispatcherServlet.java:139)
at com.sap.tc.webdynpro.serverimpl.defaultimpl.DispatcherServlet.doContent(DispatcherServlet.java:101)
at com.sap.tc.webdynpro.serverimpl.defaultimpl.DispatcherServlet.doGet(DispatcherServlet.java:38)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:740)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.runServlet(HttpHandlerImpl.java:383)
at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.handleRequest(HttpHandlerImpl.java:263)
at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:333)
at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:311)
at com.sap.engine.services.httpserver.server.RequestAnalizer.invokeWebContainer(RequestAnalizer.java:811)
at com.sap.engine.services.httpserver.server.RequestAnalizer.handle(RequestAnalizer.java:235)
at com.sap.engine.services.httpserver.server.Client.handle(Client.java:92)
at com.sap.engine.services.httpserver.server.Processor.request(Processor.java:147)
at com.sap.engine.core.service630.context.cluster.session.ApplicationSessionMessageListener.process(ApplicationSessionMessageListener.java:37)
at com.sap.engine.core.cluster.impl6.session.UnorderedChannel$MessageRunner.run(UnorderedChannel.java:71)
at com.sap.engine.core.thread.impl3.ActionObject.run(ActionObject.java:37)
at java.security.AccessController.doPrivileged(Native Method)
at com.sap.engine.core.thread.impl3.SingleThread.execute(SingleThread.java:94)
at com.sap.engine.core.thread.impl3.SingleThread.run(SingleThread.java:144)
/codeHi Helmut,
I face exactly the same problem with NW 2.0.7.
It is a bug in WebDynpro runtime.
Good news is that it is fixed with SP9, so this functionality will work in final release (I believe WD team uses regression tests
Regards,
VS -
DnD, JTree and inter-node placement
Hi, there.
Drag'n'Drop with JTrees has been discussed at length in this list. I have a DnD-capable application, and the user sees the nodes affected by the drag position as selected, so he knows where the drop will perform.
Now I want to drop not only on other nodes, but also inbetween. You may imagine there is a red bar shown as soon as the drag is between tree nodes, and the result will be a new node inserted at exactly this position.
Any ideas how to implement that?
HiranStill on the problem. Have some thoughts. But absolutely no idea whether this may work at all:
Upon dragover, the cell affected is selected. That means I query getClosestPathForLocation() and then call setSelectionPath with the result. This works for nodes.
Now I need to detect the inter-node placement. So the row must get calculated by myself, and if necessary, an extra node will be inserted into the tree. This extra node is rendered just as slim red line, so the user knows now he drops between nodes. Whatever happens now (drop performed, mouse moved elsewhere), the red line will be removed first.
What do you think? -
Naming conflict in xsd causing parsing failure
Hi,
I have a typical xml file which has duplicate root and child elements.Listed below is part of the xml.
======
<ListOfElement type =complex>
<Element type =complex>
<child1 type =string></child1>
<child2 type =string></child2>
<Element type =string></Element>
<child3 type =string></child3>
</Element>
<Element type =complex></Element>
<Element type =complex></Element>
</ListOfElement>=======
If I need to generate xsd for the above xml file and parse it successfully ,I need to use binding.
I have used it like this
===============
<?xml version="1.0" encoding="UTF-8"?>
<jxb:bindings version="1.0"
xmlns:jxb="http://java.sun.com/xml/ns/jaxb"
xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xjc="http://java.sun.com/xml/ns/jaxb/xjc"
jxb:extensionBindingPrefixes="xjc">>
<jxb:bindings schemaLocation="../schema/Element.xsd" node="/xs:schema">
<jxb:bindings node="//xs:complexType[@name='Element']//xs:Element">
<jxb:property name="ElementName"/>
</jxb:bindings>
</jxb:bindings>
</jxb:bindings>
===============
However this gives me an error stating [xjc] [ERROR] XPath evaluation of "//xs:complexType[@name='Element']//xs:Element" results in empty target node
[xjc] line 9 of comm_binding.xjb(file listed immediately above)
If anyone has had similar problems and know how to create an alias foa child node pls sendin your posts asap.
Thanks & Regards,I just tried a simplified version of your code and it worked fine.
<assign name="Assign_1">
<copy>
<from variable="inputVariable" part="payload" query="/client:XPathDotProcessRequest/client:level.1.item"/>
<to variable="outputVariable" part="payload" query="/client:XPathDotProcessResponse/client:level.1.item"/>
</copy>
<copy>
<from variable="inputVariable" part="payload" query="/client:XPathDotProcessRequest/client:level.2/client:level.2.item"/>
<to variable="outputVariable" part="payload" query="/client:XPathDotProcessResponse/client:level.2.level.2.item"/>
</copy>
<copy>
<from variable="inputVariable" part="payload" query="/client:XPathDotProcessRequest/client:level.2/client:item.2"/>
<to variable="outputVariable" part="payload" query="/client:XPathDotProcessResponse/client:level.2.item.2"/>
</copy>
</assign>
I suspect it may be something else in the schema that is causing it to break.
Can you see the input message in the BPEL console and verify that it is correct?
Have you tried selecting /ns4:ADT_A01/ns4:MSH/ns4:MSH.1 to make sure you can get that?
Have you tried selecting /ns4:ADT_A01/ns4:MSH/ns4:MSH.5/ns4:HD.1 to make sure you can get that?
Maybe you are looking for
-
How can I call multiple records(40) at same time as webservice ?
Hi All My scenario is some thing like calling SOAP(Webservice) to Rfc(BAPI) Thing is how can i call multiple records at the same time using the SOAP adapter i.e i need to make a request to BAPI and in the BAPI response based on the fields,
-
hi i just got a brand new iphone 5s i connected to itunes to restore all my data from the previous phone. when all the back up is finished i still cant use the phone as it ask me to restart again.... dont know what to do i tryed to restore 3/4 times
-
Kernal panic: help me solve the mystery.
Hey-oh. I've got a kernal panic on my hands. It's happened about half a dozen times this afternoon and I don't know what is triggering it. Just wanted to start this thread to see if anyone could help spot what is up. The screen gets dark and the rest
-
Production Order on basis of Material and Plant
Hi, I want to know the table name from which i can get the Production Order on the basis of Material No and Plant no
-
How the **** do I upgrade mac 10.5.8 to version 10.6
I need to upgrade my computer to get any videos and many websites to work, so I bought snow leapord version 10.6 from the apple website. Just like I expected it didn't work when I tried to download it. After about 4 different times I just gave up. I