B2B Document Definition - Using xpath 'or' in Identification Value
Hello,
I have a requirement similar to the one below, this is an example from the Oracle documentation,
In the below example, Oracle B2B compares the value of the country attribute to the value set for Identification Value. If the values match, then the document is identified successfully. I have a scenario, where I will receive data with value in the country attribute to be "US" or "France" or "India". Can an 'or' be used in the identification value? such as US or France or India as the Identification values for the Identification Expression "//*/@country".
Any ideas / suggestions are greatly appreciated.
Option 3: Check the Value of an Attribute
Assume that the value of the country attribute is US. Set the parameters as follows:
Field
Value
Identification Value
US
Identification Expression
//*/@country
Here is the excerpt of the XML payload for this option.
Check the Value of an Attribute
<?xml version="1.0" encoding="windows-1252" ?>
<MyAddress country="US" xmlns="http://www.example.org"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="PO.xsd">
<name>B2B Buyer</name>
<street>100 Oracle Parkway</street>
<city>Redwood City</city>
<state>CA</state>
<zip>94065</zip>
</MyAddress>
Thanks,
Venkatesh
Hi,
I am interested to know if you managed to make any progress on this issue?
We have a similar requirement whereby a trading partner sends an ebMS request using a single document type with the ebMS ACTION header identifying the action the request relates to. For example, the following are the key fields from two requests:
1)
SENDER_NAME = TradingPartnerX
RECEIVER_NAME = OurCompanyName
SERVICE_NAME = Manage Work
SERVICE_TYPE = v1.0
BUSINESS_ACTION_NAME = assignWork
Payload = <ManageWorkRequest>...</ManageWorkRequest>
2)
SENDER_NAME = TradingPartnerX
RECEIVER_NAME = OurCompanyName
SERVICE_NAME = Manage Work
SERVICE_TYPE = v1.0
BUSINESS_ACTION_NAME = updateWork
Payload = <ManageWorkRequest>...</ManageWorkRequest>
Where the Payloads of the two requests could potentially be identical.
Currently, we have the following configuration:
- Custom xml document type for ManageWorkRequest:
- Action name: (blank)
- Service name: (blank)
- Service type: (blank)
- From Role: (blank)
- To Role: (blank)
- Validate ebMS Header: unchecked
- Custom xml document definition for ManageWorkRequest:
- XML Identification Expression (XPath): //*[local-name() = 'ManageWorkRequest']
- XML Identification Value: (blank)
- TradingPartnerX Documents:
- Definition added for ManageWorkRequest
- both 'Sender' and 'Receiver' checked
- Document Details:
- Override DocType Param: checked
- Document Type ebMS:
- Action name: (blank)
- Service name: Manage Work
- Service type: v1.0
- From Role: Buyer
- To Role: Supplier
- Validate ebMS Header: unchecked
- Agreement setup between OurCompanyName and TradingPartnerX for inbound communication from TradingPartnerX to OurCompanyName
When TradingPartnerX attempts to send an assignWork ManageWorkRequest, B2B fails to identify which document type and agreement it relates to. After increasing the B2B logging level, the following can be seen in the soa_server1-diagnostic.log file:
[2013-11-19T11:16:39.881+10:00] [soa_server1] [TRACE] [] [oracle.soa.b2b.repository] [tid: Workmanager: , Version: 0, Scheduled=false, Started=false, Wait time: 0 ms\n] [userId: <anonymous>] [ecid: ccce6c0f16adb222:111ddc50:142539e3958:-7ffd-000000000013a96f,0] [APP: soa-infra] [SRC_CLASS: oracle.tip.b2b.log.ToplinkLogger] [SRC_METHOD: log] 2013.11.19 11:16:39.880--ServerSession(606155273)--Connection(692532584)--Thread(Thread[Workmanager: , Version: 0, Scheduled=false, Started=false, Wait time: 0 ms[[
,10,Application Daemon Threads])--SELECT ID, DIRECTION, APPS_DOCTYPE_NAME, DOC_DEF_NAME, APPS_DOC_PROTOCOL_VERSION, DOC_DEF_TIMESTAMP, APPS_DOCUMENT, DOC_PROTOCOL_NAME, APPS_XSLTFILE, DOC_PROTOCOL_VERSION, ATTRIBUTE1, DOC_REF_NAME, ATTRIBUTE3, DOC_ROUTING_ID, ATTRIBUTE5, DOCTYPE_NAME, ATTRIBUTE7, FROM_DC, ATTRIBUTE9, BUSINESS_ACTION_NAME, LABEL, CREATED, LABEL_DESC, APPS_DOC_PROTOCOL_NAME, MODIFIED, APPS_ACTION, RECEIVER_NAME, ATTRIBUTE2, SENDER_NAME, ATTRIBUTE6, SERVICE_NAME, ATTRIBUTE10, SERVICE_TYPE, DEFINITION_MO, STATE, AGREEMENT_ID, TO_DC, ATTRIBUTE8, TPA_NAME, IS_CUSTOM, TPA_REFERENCE, ATTRIBUTE4, CREATED_BY_UI, USER_NAME, CONTROL_NUMBER_SET FROM B2B_LIFECYCLE WHERE ((SENDER_NAME = ?) AND ((RECEIVER_NAME = ?) AND ((BUSINESS_ACTION_NAME = ?) AND ((SERVICE_NAME = ?) AND ((SERVICE_TYPE = ?) AND ((DIRECTION = ?) AND (STATE = ?)))))))
bind => [TradingPartnerX, OurCompanyName, assignWork, Manage Work, v1.0, INBOUND, Active]
[2013-11-19T11:16:39.883+10:00] [soa_server1] [ERROR] [] [oracle.soa.b2b.engine] [tid: Workmanager: , Version: 0, Scheduled=false, Started=false, Wait time: 0 ms\n] [userId: <anonymous>] [ecid: ccce6c0f16adb222:111ddc50:142539e3958:-7ffd-000000000013a96f,0] [APP: soa-infra] Error -: B2B-50547: Agreement not found for trading partners: FromTP TradingPartnerX, ToTP OurCompanyName with document type ACTION:assignWork Service:Manage Work ServiceTypev1.0-INBOUND.[[
at oracle.tip.b2b.tpa.RepoDataAccessor.queryAgreementMO(RepoDataAccessor.java:866)
at oracle.tip.b2b.tpa.RepoDataAccessor.getAgreementDetails(RepoDataAccessor.java:415)
at oracle.tip.b2b.tpa.TPAProcessor.processTPA(TPAProcessor.java:465)
at oracle.tip.b2b.tpa.TPAProcessor.processIncomingTPA(TPAProcessor.java:243)
at oracle.tip.b2b.engine.Engine.processIncomingMessageImpl(Engine.java:2560)
at oracle.tip.b2b.engine.Engine.processIncomingMessage(Engine.java:1751)
at oracle.tip.b2b.engine.Engine.incomingContinueProcess(Engine.java:4258)
at oracle.tip.b2b.engine.Engine.handleMessageEvent(Engine.java:3856)
at oracle.tip.b2b.engine.Engine.processEvents(Engine.java:3309)
at oracle.tip.b2b.engine.ThreadWorkExecutor.processEvent(ThreadWorkExecutor.java:637)
at oracle.tip.b2b.engine.ThreadWorkExecutor.run(ThreadWorkExecutor.java:214)
at oracle.integration.platform.blocks.executor.WorkManagerExecutor$1.run(WorkManagerExecutor.java:120)
at weblogic.work.j2ee.J2EEWorkManager$WorkWithListener.run(J2EEWorkManager.java:184)
at weblogic.work.DaemonWorkThread.run(DaemonWorkThread.java:30)
Error -: B2B-50547: Agreement not found for trading partners: FromTP TradingPartnerX, ToTP OurCompanyName with document type ACTION:assignWork Service:Manage Work ServiceTypev1.0-INBOUND.
at oracle.tip.b2b.tpa.RepoDataAccessor.queryAgreementMO(RepoDataAccessor.java:866)
at oracle.tip.b2b.tpa.RepoDataAccessor.getAgreementDetails(RepoDataAccessor.java:415)
at oracle.tip.b2b.tpa.TPAProcessor.processTPA(TPAProcessor.java:465)
at oracle.tip.b2b.tpa.TPAProcessor.processIncomingTPA(TPAProcessor.java:243)
at oracle.tip.b2b.engine.Engine.processIncomingMessageImpl(Engine.java:2560)
at oracle.tip.b2b.engine.Engine.processIncomingMessage(Engine.java:1751)
at oracle.tip.b2b.engine.Engine.incomingContinueProcess(Engine.java:4258)
at oracle.tip.b2b.engine.Engine.handleMessageEvent(Engine.java:3856)
at oracle.tip.b2b.engine.Engine.processEvents(Engine.java:3309)
at oracle.tip.b2b.engine.ThreadWorkExecutor.processEvent(ThreadWorkExecutor.java:637)
at oracle.tip.b2b.engine.ThreadWorkExecutor.run(ThreadWorkExecutor.java:214)
at oracle.integration.platform.blocks.executor.WorkManagerExecutor$1.run(WorkManagerExecutor.java:120)
at weblogic.work.j2ee.J2EEWorkManager$WorkWithListener.run(J2EEWorkManager.java:184)
at weblogic.work.DaemonWorkThread.run(DaemonWorkThread.java:30)
Looking at the SQL which has been logged, B2B is looking for an agreement which has the following:
SENDER_NAME = 'TradingPartnerX'
RECEIVER_NAME = 'OurCompanyName'
BUSINESS_ACTION_NAME = 'assignWork'
SERVICE_NAME = 'Manage Work'
SERVICE_TYPE = 'v1.0'
DIRECTION = 'INBOUND'
STATE = 'Active'
and it fails to identify any matching agreements which is correct - there aren't any matching these constraints. However, if we specify the 'Action name' field in the DocType param overrides for TradingPartnerX, then B2B is able to identify the agreement and everything works.
Based on this behaviour, it seems that in this scenario, B2B requires a separate agreement for each possible value which can be passed as the BUSINESS_ACTION_NAME in order to identify the document type and agreement correctly. My question is - is there another way to configure B2B to allow a list of valid 'Action names' rather than having to create a separate agreement for each one with the only difference being the value of the 'Action name' field?
If anyone is able to provide advice or guidance, it would be much appreciated.
Thanks
Kevin
Similar Messages
-
Error Defining Document Definition 4010_810 in B2B console
Hello B2B Gurus,
I have a small request to you all... I am trying to work on some B2B samples, I have created a Document definition for some reason i was having some issues with my SOA domain so i have created a new domain and i have purged the exisiting definitions in B2B console... When i tried to create the same document defininiton i am getting the below error. Can some one please let me know what is that i am missing.
extImpl addPartialTriggerListeners
WARNING: Could not find partial trigger timeRange from UIGraph[UIXFacesBeanImpl,
id=graph2] with the supported partialTriggers syntax. The partial trigger was f
ound with the deprecated syntax. Please use the supported syntax.
Dec 13, 2010 11:45:34 AM oracle.adfinternal.view.faces.renderkit.rich.SimpleSele
ctOneRenderer _getSelectedIndex
WARNING: Could not find selected item matching value "" in RichSelectOneChoice[U
IXEditableFacesBeanImpl, id=value20]
Dec 13, 2010 11:45:34 AM oracle.adfinternal.view.faces.renderkit.rich.SimpleSele
ctOneRenderer _getSelectedIndex
WARNING: Could not find selected item matching value "" in RichSelectOneChoice[U
IXEditableFacesBeanImpl, id=value30]
Dec 13, 2010 11:45:34 AM oracle.adfinternal.view.faces.renderkit.rich.SimpleSele
ctOneRenderer _getSelectedIndex
WARNING: Could not find selected item matching value "" in RichSelectOneChoice[U
IXEditableFacesBeanImpl, id=value40]
Dec 13, 2010 11:45:35 AM oracle.adfinternal.view.faces.renderkit.rich.SimpleSele
ctOneRenderer _getSelectedIndex
WARNING: Could not find selected item matching value "" in RichSelectOneChoice[U
IXEditableFacesBeanImpl, id=value20]
Dec 13, 2010 11:45:35 AM oracle.adfinternal.view.faces.renderkit.rich.SimpleSele
ctOneRenderer _getSelectedIndex
WARNING: Could not find selected item matching value "" in RichSelectOneChoice[U
IXEditableFacesBeanImpl, id=value30]
Dec 13, 2010 11:45:35 AM oracle.adfinternal.view.faces.renderkit.rich.SimpleSele
ctOneRenderer _getSelectedIndex
WARNING: Could not find selected item matching value "" in RichSelectOneChoice[U
IXEditableFacesBeanImpl, id=value40]
Querying docs for tp_MyCompany
EDI_X124010810null
In checkIfPackageExists /soa/b2b/EDI_X12/4010/ ### 810
In deleteFolder /soa/b2b/EDI_X12/4010/810
EDI_X124010997null
In checkIfPackageExists /soa/b2b/EDI_X12/4010/ ### 997
In deleteFolder /soa/b2b/EDI_X12/4010/997
BEan Util $$$ C:\OFM\Middleware1\user_projects\domains\LOCALSOADOMAIN\servers\so
a_server1\tmp\_WL_user\b2bui\bklbbb\public
Dec 13, 2010 11:46:33 AM org.apache.myfaces.trinidadinternal.config.upload.Uploa
dRequestWrapper setCharacterEncoding
WARNING: Unable to set request character encoding to UTF-8, because request para
meters have already been read.
Dec 13, 2010 11:46:33 AM org.apache.myfaces.trinidadinternal.config.upload.Uploa
dRequestWrapper setCharacterEncoding
WARNING: Unable to set request character encoding to UTF-8, because request para
meters have already been read.
BEan Util $$$ C:\OFM\Middleware1\user_projects\domains\LOCALSOADOMAIN\servers\so
a_server1\tmp\_WL_user\b2bui\bklbbb\public
BEan Util $$$ C:\OFM\Middleware1\user_projects\domains\LOCALSOADOMAIN\servers\so
a_server1\tmp\_WL_user\b2bui\bklbbb\public
FileManager.saveFileInMidTier : Size of file{ C:\OFM\Middleware1\user_projects\d
omains\LOCALSOADOMAIN\servers\soa_server1\tmp\_WL_user\b2bui\bklbbb\public/810.x
sd} is :783509
Dec 13, 2010 11:46:52 AM org.apache.myfaces.trinidadinternal.config.upload.Uploa
dRequestWrapper setCharacterEncoding
WARNING: Unable to set request character encoding to UTF-8, because request para
meters have already been read.
Dec 13, 2010 11:46:52 AM org.apache.myfaces.trinidadinternal.config.upload.Uploa
dRequestWrapper setCharacterEncoding
WARNING: Unable to set request character encoding to UTF-8, because request para
meters have already been read.
BEan Util $$$ C:\OFM\Middleware1\user_projects\domains\LOCALSOADOMAIN\servers\so
a_server1\tmp\_WL_user\b2bui\bklbbb\public
BEan Util $$$ C:\OFM\Middleware1\user_projects\domains\LOCALSOADOMAIN\servers\so
a_server1\tmp\_WL_user\b2bui\bklbbb\public
*FileManager.saveFileInMidTier : Size of file{ C:\OFM\Middleware1\user_projects\d*
omains\LOCALSOADOMAIN\servers\soa_server1\tmp\_WL_user\b2bui\bklbbb\public/810.e
cs} is :1242392
BEan Util $$$ C:\OFM\Middleware1\user_projects\domains\LOCALSOADOMAIN\servers\so
a_server1\tmp\_WL_user\b2bui\bklbbb\public
*## PArameter Name TransactionECSFileBlob &&& /soa/b2b/EDI_X12/4010/810/810def/81*
*0.ecsmds val null*
Dec 13, 2010 11:46:52 AM oracle.tip.b2b.ui.util.BeanUtil log
WARNING:
EXCEPTION:
MESSAGE:Index: 0, Size: 0
STACK TRACE:
java.lang.IndexOutOfBoundsException: Index: 0, Size: 0
at java.util.ArrayList.RangeCheck(ArrayList.java:547)
at java.util.ArrayList.get(ArrayList.java:322)
at oracle.mds.internal.cache.CacheKeyUtil.getRootCacheKeyAndHint(CacheKe
yUtil.java:413)
at oracle.mds.internal.cache.CacheKeyUtil.getRootCacheKeyAndHint(CacheKe
yUtil.java:348)
at oracle.mds.core.UpdateableSOContent.getCacheKey(UpdateableSOContent.j
ava:928)
at oracle.mds.core.UpdateableSOContent.cacheData(UpdateableSOContent.jav
a:869)
at oracle.mds.core.UpdateableSOContent.clearClientObjects(UpdateableSOCo
ntent.java:163)
at oracle.mds.core.MDSTransaction.flushChangesToPTrans(MDSTransaction.ja
va:638)
at oracle.mds.core.MDSTransaction.internalCommit(MDSTransaction.java:237
*2)*
at oracle.mds.core.MDSSession.flushChanges(MDSSession.java:981)
at oracle.tip.b2b.ui.util.FileManager.saveFileInMds(FileManager.java:450
at oracle.tip.b2b.ui.data.document.GuiDefinition.createDefTypeObj(GuiDef
inition.java:328)
at oracle.tip.b2b.ui.data.document.GuiDefinition.save(GuiDefinition.java
*:538)*
at oracle.tip.b2b.ui.backing.admin.AdminDocument.saveThreadAction(AdminD
ocument.java:1666)
at oracle.tip.b2b.ui.business.admin.FileUploadThread.run(FileUploadThrea
d.java:61)
java.lang.IndexOutOfBoundsException: Index: 0, Size: 0
at java.util.ArrayList.RangeCheck(ArrayList.java:547)
at java.util.ArrayList.get(ArrayList.java:322)
at oracle.mds.internal.cache.CacheKeyUtil.getRootCacheKeyAndHint(CacheKe
yUtil.java:413)
at oracle.mds.internal.cache.CacheKeyUtil.getRootCacheKeyAndHint(CacheKe
yUtil.java:348)
at oracle.mds.core.UpdateableSOContent.getCacheKey(UpdateableSOContent.j
ava:928)
at oracle.mds.core.UpdateableSOContent.cacheData(UpdateableSOContent.jav
a:869)
at oracle.mds.core.UpdateableSOContent.clearClientObjects(UpdateableSOCo
ntent.java:163)
at oracle.mds.core.MDSTransaction.flushChangesToPTrans(MDSTransaction.ja
va:638)
at oracle.mds.core.MDSTransaction.internalCommit(MDSTransaction.java:237
*2)*
at oracle.mds.core.MDSSession.flushChanges(MDSSession.java:981)
at oracle.tip.b2b.ui.util.FileManager.saveFileInMds(FileManager.java:450
at oracle.tip.b2b.ui.data.document.GuiDefinition.createDefTypeObj(GuiDef
inition.java:328)
at oracle.tip.b2b.ui.data.document.GuiDefinition.save(GuiDefinition.java
*:538)*
at oracle.tip.b2b.ui.backing.admin.AdminDocument.saveThreadAction(AdminD
ocument.java:1666)
at oracle.tip.b2b.ui.business.admin.FileUploadThread.run(FileUploadThrea
d.java:61)
Additional Log from the Admin Server
*###<Dec 13, 2010 1:19:25 PM EST> <Warning> <org.apache.myfaces.trinidadinternal.config.upload.UploadRequestWrapper> <mia-dt-6111> <soa_server1> <[ACTIVE] ExecuteThread: '1' for queue: 'weblogic.kernel.Default (self-tuning)'> <weblogic> <> <> <1292264365367> <BEA-000000> <Unable to set request character encoding to UTF-8, because request parameters have already been read.>*
*####<Dec 13, 2010 1:19:25 PM EST> <Warning> <org.apache.myfaces.trinidadinternal.config.upload.UploadRequestWrapper> <mia-dt-6111> <soa_server1> <[ACTIVE] ExecuteThread: '1' for queue: 'weblogic.kernel.Default (self-tuning)'> <weblogic> <> <> <1292264365367> <BEA-000000> <Unable to set request character encoding to UTF-8, because request parameters have already been read.>*
*####<Dec 13, 2010 1:19:30 PM EST> <Warning> <org.apache.myfaces.trinidadinternal.config.upload.UploadRequestWrapper> <mia-dt-6111> <soa_server1> <[ACTIVE] ExecuteThread: '0' for queue: 'weblogic.kernel.Default (self-tuning)'> <weblogic> <> <> <1292264370304> <BEA-000000> <Unable to set request character encoding to UTF-8, because request parameters have already been read.>*
*####<Dec 13, 2010 1:19:30 PM EST> <Warning> <org.apache.myfaces.trinidadinternal.config.upload.UploadRequestWrapper> <mia-dt-6111> <soa_server1> <[ACTIVE] ExecuteThread: '0' for queue: 'weblogic.kernel.Default (self-tuning)'> <weblogic> <> <> <1292264370304> <BEA-000000> <Unable to set request character encoding to UTF-8, because request parameters have already been read.>*
*####<Dec 13, 2010 1:19:30 PM EST> <Warning> <oracle.soa.b2b.ui> <mia-dt-6111> <soa_server1> <Thread-39> <weblogic> <> <> <1292264370757> <BEA-000000> <*
EXCEPTION:
MESSAGE:Index: 0, Size: 0
STACK TRACE:
java.lang.IndexOutOfBoundsException: Index: 0, Size: 0
* at java.util.ArrayList.RangeCheck(ArrayList.java:547)*
* at java.util.ArrayList.get(ArrayList.java:322)*
* at oracle.mds.internal.cache.CacheKeyUtil.getRootCacheKeyAndHint(CacheKeyUtil.java:413)*
* at oracle.mds.internal.cache.CacheKeyUtil.getRootCacheKeyAndHint(CacheKeyUtil.java:348)*
* at oracle.mds.core.UpdateableSOContent.getCacheKey(UpdateableSOContent.java:928)*
* at oracle.mds.core.UpdateableSOContent.cacheData(UpdateableSOContent.java:869)*
* at oracle.mds.core.UpdateableSOContent.clearClientObjects(UpdateableSOContent.java:163)*
* at oracle.mds.core.MDSTransaction.flushChangesToPTrans(MDSTransaction.java:638)*
* at oracle.mds.core.MDSTransaction.internalCommit(MDSTransaction.java:2372)*
* at oracle.mds.core.MDSSession.flushChanges(MDSSession.java:981)*
* at oracle.tip.b2b.ui.util.FileManager.saveFileInMds(FileManager.java:450)*
* at oracle.tip.b2b.ui.data.document.GuiDefinition.createDefTypeObj(GuiDefinition.java:328)*
* at oracle.tip.b2b.ui.data.document.GuiDefinition.save(GuiDefinition.java:538)*
* at oracle.tip.b2b.ui.backing.admin.AdminDocument.saveThreadAction(AdminDocument.java:1666)*
* at oracle.tip.b2b.ui.business.admin.FileUploadThread.run(FileUploadThread.java:61)*
*>*
Edited by: Patel Sandy on Dec 13, 2010 11:14 AMHello Sandy,
I am not sure what exactly the problem is but it seems your domain has been messed up.
Can you create a fresh schema in database using RCU and create a brand new domain pointing to those new schemas and then try to create a b2b document definition?
Regards,
Anuj -
XPath Expression in document definition
I am trying to use "XPath Expression1" for 894 in the document definition under XPath in order to retrieve invoice number so that, it would be used in BAM but I am not getting successful in putting exact XPath expression for invoice number. I am using as below
/Transaction-894/Segment-G82/Element-861
Pls suggest is there any wrong in the XPath?
Regards,
Suneel JakkaHere is the XSD for which I am trying XPath for the "Element-861" under "Segment-G82"..
Pls suggest me..
<?xml version="1.0" encoding="UTF-8"?>
<!-- Automatically generated by EDIFECS SpecBuilder (http://www.edifecs.com) -->
<xsd:schema xmlns="http://www.edifecs.com/xdata/200" targetNamespace="http://www.edifecs.com/xdata/200" xmlns:xsd="http://www.w3.org/2001/XMLSchema" version="1.0" elementFormDefault="qualified">
<xsd:annotation>
<xsd:appinfo>
<FileName>C:\Documents and Settings\jakkasun\Desktop\11g\X12_5010_894.ecs</FileName>
<InternalID>{0840BE5F-3518-463D-A128-D73D96D4A5D2}</InternalID>
</xsd:appinfo>
</xsd:annotation>
<xsd:element name="Transaction-894" type="Transaction-894"/>
<xsd:complexType name="Transaction-894">
<xsd:annotation>
<xsd:documentation>This X12 Transaction Set contains the format and establishes the data contents of the Delivery/Return Base Record Transaction Set (894) for use within the context of an Electronic Data Interchange (EDI) environment. The transaction set can be used to enable a Direct Store Delivery (DSD) vendor to communicate the details of a DSD delivery and is to be used during the check-in procedure. </xsd:documentation>
<xsd:appinfo>
<UNMKey>Full|CodeList|-<Parent Node ID>.<Index>|Composite|-<Node ID>|Element|-<Node ID>|Loop|-<Node ID>|Segment|-<Node ID>|Transaction|-<Node ID>|ReplacementCharacter|_|InternalSeparator|-</UNMKey>
</xsd:appinfo>
</xsd:annotation>
<xsd:sequence>
<xsd:element name="Internal-Properties" type="Internal-Properties" minOccurs="0"/>
<xsd:element name="Segment-ST" type="Segment-ST"/>
<xsd:element name="Segment-G82" type="Segment-G82"/>
<xsd:element name="Segment-N9" type="Segment-N9" minOccurs="0" maxOccurs="unbounded" nillable="true"/>
<xsd:element name="Loop-LS" type="Loop-LS" minOccurs="0" nillable="true"/>
<xsd:element name="Segment-G72" type="Segment-G72" minOccurs="0" maxOccurs="20" nillable="true"/>
<xsd:element name="Segment-G23" type="Segment-G23" minOccurs="0" maxOccurs="20" nillable="true"/>
<xsd:element name="Segment-G84" type="Segment-G84"/>
<xsd:element name="Segment-G86" type="Segment-G86"/>
<xsd:element name="Segment-G85" type="Segment-G85"/>
<xsd:element name="Segment-SE" type="Segment-SE"/>
</xsd:sequence>
<xsd:attribute name="Type" default="Transaction" type="xsd:string"/>
<xsd:attribute name="ID" default="894" type="xsd:string"/>
<xsd:attribute name="Name" default="Delivery/Return Base Record" type="xsd:string"/>
<xsd:attribute name="XDataVersion" fixed="2.0" type="xsd:string"/>
<xsd:attribute name="Standard" fixed="X12" use="required" type="xsd:string"/>
<xsd:attribute name="Version" default="V5010" type="xsd:string"/>
<xsd:attribute name="GUID" type="GUID"/>
<xsd:attribute name="CreatedBy" type="xsd:string"/>
<xsd:attribute name="CreatedDate" type="xsd:dateTime"/>
</xsd:complexType>
<xsd:simpleType name="GUID">
<xsd:restriction base="xsd:string">
<xsd:pattern value="\{[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}\}"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:complexType name="EDI-Element-String-Type">
<xsd:simpleContent>
<xsd:extension base="xsd:string">
<xsd:attribute name="Type" default="Element" type="xsd:string"/>
<xsd:attribute name="EDIDataType" type="xsd:string"/>
<xsd:attribute name="Macro" type="xsd:string" use="optional"/>
<xsd:attribute name="ApplicationInfo" type="xsd:string"/>
<xsd:attribute name="ID" type="xsd:string"/>
<xsd:attribute name="Name" type="xsd:string"/>
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
<xsd:complexType name="EDI-Element-Integer-Type">
<xsd:simpleContent>
<xsd:extension base="xsd:integer">
<xsd:attribute name="Type" default="Element" type="xsd:string"/>
<xsd:attribute name="EDIDataType" type="xsd:string"/>
<xsd:attribute name="Macro" type="xsd:string" use="optional"/>
<xsd:attribute name="ApplicationInfo" type="xsd:string"/>
<xsd:attribute name="ID" type="xsd:string"/>
<xsd:attribute name="Name" type="xsd:string"/>
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
<xsd:complexType name="EDI-Element-Decimal-Type">
<xsd:simpleContent>
<xsd:extension base="xsd:decimal">
<xsd:attribute name="Type" default="Element" type="xsd:string"/>
<xsd:attribute name="EDIDataType" type="xsd:string"/>
<xsd:attribute name="Macro" type="xsd:string" use="optional"/>
<xsd:attribute name="ApplicationInfo" type="xsd:string"/>
<xsd:attribute name="ID" type="xsd:string"/>
<xsd:attribute name="Name" type="xsd:string"/>
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
<xsd:complexType name="EDI-Element-hexBinary-Type">
<xsd:simpleContent>
<xsd:extension base="xsd:hexBinary">
<xsd:attribute name="Type" default="Element" type="xsd:string"/>
<xsd:attribute name="EDIDataType" type="xsd:string"/>
<xsd:attribute name="Macro" type="xsd:string" use="optional"/>
<xsd:attribute name="ApplicationInfo" type="xsd:string"/>
<xsd:attribute name="ID" type="xsd:string"/>
<xsd:attribute name="Name" type="xsd:string"/>
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
<xsd:complexType name="EDI-Element-base64Binary-Type">
<xsd:simpleContent>
<xsd:extension base="xsd:base64Binary">
<xsd:attribute name="Type" default="Element" type="xsd:string"/>
<xsd:attribute name="EDIDataType" type="xsd:string"/>
<xsd:attribute name="Macro" type="xsd:string" use="optional"/>
<xsd:attribute name="ApplicationInfo" type="xsd:string"/>
<xsd:attribute name="ID" type="xsd:string"/>
<xsd:attribute name="Name" type="xsd:string"/>
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
<xsd:complexType name="EDI-Element-Any-Type">
<xsd:simpleContent>
<xsd:extension base="xsd:string">
<xsd:attribute name="Type" default="Element" type="xsd:string"/>
<xsd:attribute name="EDIDataType" type="xsd:string"/>
<xsd:attribute name="Macro" type="xsd:string" use="optional"/>
<xsd:attribute name="ApplicationInfo" type="xsd:string"/>
<xsd:attribute name="ID" type="xsd:string"/>
<xsd:attribute name="Name" type="xsd:string"/>
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
<xsd:complexType name="Internal-Properties">
<xsd:sequence>
<xsd:element name="Data-Structure" type="Data-Structure" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="Data-Structure">
<xsd:sequence>
<xsd:element name="Lookup" type="Lookup" minOccurs="0" maxOccurs="unbounded"/>
<xsd:element name="Property" type="Property" minOccurs="0" maxOccurs="unbounded"/>
<xsd:element name="Data-Structure" type="Data-Structure" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
<xsd:attribute name="Name" type="xsd:string"/>
<xsd:attribute name="GUID" type="GUID"/>
</xsd:complexType>
<xsd:complexType name="Lookup">
<xsd:simpleContent>
<xsd:extension base="xsd:string">
<xsd:attribute name="Name" type="xsd:string"/>
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
<xsd:complexType name="Property">
<xsd:simpleContent>
<xsd:extension base="xsd:string">
<xsd:attribute name="Name" type="xsd:string"/>
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
<xsd:complexType name="Segment-ST">
<xsd:annotation>
<xsd:documentation>To indicate the start of a transaction set and to assign a control number</xsd:documentation>
</xsd:annotation>
<xsd:sequence>
<xsd:element name="Element-143" type="Element-143"/>
<xsd:element name="Element-329" type="Element-329"/>
<xsd:element name="Element-1705" type="Element-1705" minOccurs="0" nillable="true"/>
</xsd:sequence>
<xsd:attribute name="Type" default="Segment" type="xsd:string"/>
<xsd:attribute name="ID" default="ST" type="xsd:string"/>
<xsd:attribute name="Name" default="Transaction Set Header" type="xsd:string"/>
</xsd:complexType>
<xsd:complexType name="Element-143">
<xsd:annotation>
<xsd:documentation>Code uniquely identifying a Transaction Set </xsd:documentation>
</xsd:annotation>
<xsd:simpleContent>
<xsd:restriction base="EDI-Element-String-Type">
<xsd:enumeration value="100"/>
<xsd:enumeration value="101"/>
<xsd:enumeration value="102"/>
<xsd:enumeration value="103"/>
<xsd:enumeration value="104"/>
<xsd:enumeration value="105"/>
<xsd:enumeration value="106"/>
<xsd:enumeration value="107"/>
<xsd:enumeration value="108"/>
<xsd:enumeration value="109"/>
<xsd:enumeration value="110"/>
<xsd:enumeration value="111"/>
<xsd:enumeration value="112"/>
<xsd:enumeration value="113"/>
<xsd:enumeration value="120"/>
<xsd:enumeration value="121"/>
<xsd:enumeration value="124"/>
<xsd:enumeration value="125"/>
<xsd:enumeration value="126"/>
<xsd:enumeration value="127"/>
<xsd:enumeration value="128"/>
<xsd:enumeration value="129"/>
<xsd:enumeration value="130"/>
<xsd:enumeration value="131"/>
<xsd:enumeration value="132"/>
<xsd:enumeration value="133"/>
<xsd:enumeration value="135"/>
<xsd:enumeration value="138"/>
<xsd:enumeration value="139"/>
<xsd:enumeration value="140"/>
<xsd:enumeration value="141"/>
<xsd:enumeration value="142"/>
<xsd:enumeration value="143"/>
<xsd:enumeration value="144"/>
<xsd:enumeration value="146"/>
<xsd:enumeration value="147"/>
<xsd:enumeration value="148"/>
<xsd:enumeration value="149"/>
<xsd:enumeration value="150"/>
<xsd:enumeration value="151"/>
<xsd:enumeration value="152"/>
<xsd:enumeration value="153"/>
<xsd:enumeration value="154"/>
<xsd:enumeration value="155"/>
<xsd:enumeration value="157"/>
<xsd:enumeration value="158"/>
<xsd:enumeration value="159"/>
<xsd:enumeration value="160"/>
<xsd:enumeration value="161"/>
<xsd:enumeration value="163"/>
<xsd:enumeration value="170"/>
<xsd:enumeration value="175"/>
<xsd:enumeration value="176"/>
<xsd:enumeration value="179"/>
<xsd:enumeration value="180"/>
<xsd:enumeration value="185"/>
<xsd:enumeration value="186"/>
<xsd:enumeration value="187"/>
<xsd:enumeration value="188"/>
<xsd:enumeration value="189"/>
<xsd:enumeration value="190"/>
<xsd:enumeration value="191"/>
<xsd:enumeration value="194"/>
<xsd:enumeration value="195"/>
<xsd:enumeration value="196"/>
<xsd:enumeration value="197"/>
<xsd:enumeration value="198"/>
<xsd:enumeration value="199"/>
<xsd:enumeration value="200"/>
<xsd:enumeration value="201"/>
<xsd:enumeration value="202"/>
<xsd:enumeration value="203"/>
<xsd:enumeration value="204"/>
<xsd:enumeration value="205"/>
<xsd:enumeration value="206"/>
<xsd:enumeration value="210"/>
<xsd:enumeration value="211"/>
<xsd:enumeration value="212"/>
<xsd:enumeration value="213"/>
<xsd:enumeration value="214"/>
<xsd:enumeration value="215"/>
<xsd:enumeration value="216"/>
<xsd:enumeration value="217"/>
<xsd:enumeration value="219"/>
<xsd:enumeration value="220"/>
<xsd:enumeration value="222"/>
<xsd:enumeration value="223"/>
<xsd:enumeration value="224"/>
<xsd:enumeration value="225"/>
<xsd:enumeration value="227"/>
<xsd:enumeration value="228"/>
<xsd:enumeration value="240"/>
<xsd:enumeration value="242"/>
<xsd:enumeration value="244"/>
<xsd:enumeration value="245"/>
<xsd:enumeration value="248"/>
<xsd:enumeration value="249"/>
<xsd:enumeration value="250"/>
<xsd:enumeration value="251"/>
<xsd:enumeration value="252"/>
<xsd:enumeration value="255"/>
<xsd:enumeration value="256"/>
<xsd:enumeration value="259"/>
<xsd:enumeration value="260"/>
<xsd:enumeration value="261"/>
<xsd:enumeration value="262"/>
<xsd:enumeration value="263"/>
<xsd:enumeration value="264"/>
<xsd:enumeration value="265"/>
<xsd:enumeration value="266"/>
<xsd:enumeration value="267"/>
<xsd:enumeration value="268"/>
<xsd:enumeration value="269"/>
<xsd:enumeration value="270"/>
<xsd:enumeration value="271"/>
<xsd:enumeration value="272"/>
<xsd:enumeration value="273"/>
<xsd:enumeration value="274"/>
<xsd:enumeration value="275"/>
<xsd:enumeration value="276"/>
<xsd:enumeration value="277"/>
<xsd:enumeration value="278"/>
<xsd:enumeration value="280"/>
<xsd:enumeration value="283"/>
<xsd:enumeration value="284"/>
<xsd:enumeration value="285"/>
<xsd:enumeration value="286"/>
<xsd:enumeration value="288"/>
<xsd:enumeration value="290"/>
<xsd:enumeration value="300"/>
<xsd:enumeration value="301"/>
<xsd:enumeration value="303"/>
<xsd:enumeration value="304"/>
<xsd:enumeration value="309"/>
<xsd:enumeration value="310"/>
<xsd:enumeration value="311"/>
<xsd:enumeration value="312"/>
<xsd:enumeration value="313"/>
<xsd:enumeration value="315"/>
<xsd:enumeration value="317"/>
<xsd:enumeration value="319"/>
<xsd:enumeration value="322"/>
<xsd:enumeration value="323"/>
<xsd:enumeration value="324"/>
<xsd:enumeration value="325"/>
<xsd:enumeration value="326"/>
<xsd:enumeration value="350"/>
<xsd:enumeration value="352"/>
<xsd:enumeration value="353"/>
<xsd:enumeration value="354"/>
<xsd:enumeration value="355"/>
<xsd:enumeration value="356"/>
<xsd:enumeration value="357"/>
<xsd:enumeration value="358"/>
<xsd:enumeration value="361"/>
<xsd:enumeration value="362"/>
<xsd:enumeration value="404"/>
<xsd:enumeration value="410"/>
<xsd:enumeration value="412"/>
<xsd:enumeration value="414"/>
<xsd:enumeration value="417"/>
<xsd:enumeration value="418"/>
<xsd:enumeration value="419"/>
<xsd:enumeration value="420"/>
<xsd:enumeration value="421"/>
<xsd:enumeration value="422"/>
<xsd:enumeration value="423"/>
<xsd:enumeration value="424"/>
<xsd:enumeration value="425"/>
<xsd:enumeration value="426"/>
<xsd:enumeration value="429"/>
<xsd:enumeration value="431"/>
<xsd:enumeration value="432"/>
<xsd:enumeration value="433"/>
<xsd:enumeration value="434"/>
<xsd:enumeration value="435"/>
<xsd:enumeration value="436"/>
<xsd:enumeration value="437"/>
<xsd:enumeration value="440"/>
<xsd:enumeration value="451"/>
<xsd:enumeration value="452"/>
<xsd:enumeration value="453"/>
<xsd:enumeration value="455"/>
<xsd:enumeration value="456"/>
<xsd:enumeration value="460"/>
<xsd:enumeration value="463"/>
<xsd:enumeration value="466"/>
<xsd:enumeration value="468"/>
<xsd:enumeration value="470"/>
<xsd:enumeration value="475"/>
<xsd:enumeration value="485"/>
<xsd:enumeration value="486"/>
<xsd:enumeration value="490"/>
<xsd:enumeration value="492"/>
<xsd:enumeration value="494"/>
<xsd:enumeration value="500"/>
<xsd:enumeration value="501"/>
<xsd:enumeration value="503"/>
<xsd:enumeration value="504"/>
<xsd:enumeration value="511"/>
<xsd:enumeration value="517"/>
<xsd:enumeration value="521"/>
<xsd:enumeration value="527"/>
<xsd:enumeration value="536"/>
<xsd:enumeration value="540"/>
<xsd:enumeration value="561"/>
<xsd:enumeration value="567"/>
<xsd:enumeration value="568"/>
<xsd:enumeration value="601"/>
<xsd:enumeration value="602"/>
<xsd:enumeration value="620"/>
<xsd:enumeration value="625"/>
<xsd:enumeration value="650"/>
<xsd:enumeration value="715"/>
<xsd:enumeration value="753"/>
<xsd:enumeration value="754"/>
<xsd:enumeration value="805"/>
<xsd:enumeration value="806"/>
<xsd:enumeration value="810"/>
<xsd:enumeration value="811"/>
<xsd:enumeration value="812"/>
<xsd:enumeration value="813"/>
<xsd:enumeration value="814"/>
<xsd:enumeration value="815"/>
<xsd:enumeration value="816"/>
<xsd:enumeration value="818"/>
<xsd:enumeration value="819"/>
<xsd:enumeration value="820"/>
<xsd:enumeration value="821"/>
<xsd:enumeration value="822"/>
<xsd:enumeration value="823"/>
<xsd:enumeration value="824"/>
<xsd:enumeration value="826"/>
<xsd:enumeration value="827"/>
<xsd:enumeration value="828"/>
<xsd:enumeration value="829"/>
<xsd:enumeration value="830"/>
<xsd:enumeration value="831"/>
<xsd:enumeration value="832"/>
<xsd:enumeration value="833"/>
<xsd:enumeration value="834"/>
<xsd:enumeration value="835"/>
<xsd:enumeration value="836"/>
<xsd:enumeration value="837"/>
<xsd:enumeration value="838"/>
<xsd:enumeration value="839"/>
<xsd:enumeration value="840"/>
<xsd:enumeration value="841"/>
<xsd:enumeration value="842"/>
<xsd:enumeration value="843"/>
<xsd:enumeration value="844"/>
<xsd:enumeration value="845"/>
<xsd:enumeration value="846"/>
<xsd:enumeration value="847"/>
<xsd:enumeration value="848"/>
<xsd:enumeration value="849"/>
<xsd:enumeration value="850"/>
<xsd:enumeration value="851"/>
<xsd:enumeration value="852"/>
<xsd:enumeration value="853"/>
<xsd:enumeration value="854"/>
<xsd:enumeration value="855"/>
<xsd:enumeration value="856"/>
<xsd:enumeration value="857"/>
<xsd:enumeration value="858"/>
<xsd:enumeration value="859"/>
<xsd:enumeration value="860"/>
<xsd:enumeration value="861"/>
<xsd:enumeration value="862"/>
<xsd:enumeration value="863"/>
<xsd:enumeration value="864"/>
<xsd:enumeration value="865"/>
<xsd:enumeration value="866"/>
<xsd:enumeration value="867"/>
<xsd:enumeration value="868"/>
<xsd:enumeration value="869"/>
<xsd:enumeration value="870"/>
<xsd:enumeration value="871"/>
<xsd:enumeration value="872"/>
<xsd:enumeration value="873"/>
<xsd:enumeration value="874"/>
<xsd:enumeration value="875"/>
<xsd:enumeration value="876"/>
<xsd:enumeration value="877"/>
<xsd:enumeration value="878"/>
<xsd:enumeration value="879"/>
<xsd:enumeration value="880"/>
<xsd:enumeration value="881"/>
<xsd:enumeration value="882"/>
<xsd:enumeration value="883"/>
<xsd:enumeration value="884"/>
<xsd:enumeration value="885"/>
<xsd:enumeration value="886"/>
<xsd:enumeration value="887"/>
<xsd:enumeration value="888"/>
<xsd:enumeration value="889"/>
<xsd:enumeration value="891"/>
<xsd:enumeration value="893"/>
<xsd:enumeration value="894"/>
<xsd:enumeration value="895"/>
<xsd:enumeration value="896"/>
<xsd:enumeration value="920"/>
<xsd:enumeration value="924"/>
<xsd:enumeration value="925"/>
<xsd:enumeration value="926"/>
<xsd:enumeration value="928"/>
<xsd:enumeration value="940"/>
<xsd:enumeration value="943"/>
<xsd:enumeration value="944"/>
<xsd:enumeration value="945"/>
<xsd:enumeration value="947"/>
<xsd:enumeration value="980"/>
<xsd:enumeration value="990"/>
<xsd:enumeration value="993"/>
<xsd:enumeration value="996"/>
<xsd:enumeration value="997"/>
<xsd:enumeration value="998"/>
<xsd:enumeration value="999"/>
<xsd:attribute name="EDIDataType" fixed="ID" type="xsd:string"/>
<xsd:attribute name="ID" fixed="143" type="xsd:string"/>
<xsd:attribute name="Name" fixed="Transaction Set Identifier Code" type="xsd:string"/>
</xsd:restriction>
</xsd:simpleContent>
</xsd:complexType>
<xsd:complexType name="Element-329">
<xsd:annotation>
<xsd:documentation>Identifying control number that must be unique within the transaction set functional group assigned by the originator for a transaction set </xsd:documentation>
</xsd:annotation>
<xsd:simpleContent>
<xsd:restriction base="EDI-Element-String-Type">
<xsd:minLength value="4"/>
<xsd:maxLength value="9"/>
<xsd:attribute name="EDIDataType" fixed="AN" type="xsd:string"/>
<xsd:attribute name="ID" fixed="329" type="xsd:string"/>
<xsd:attribute name="Name" fixed="Transaction Set Control Number" type="xsd:string"/>
</xsd:restriction>
</xsd:simpleContent>
</xsd:complexType>
<xsd:complexType name="Element-1705">
<xsd:annotation>
<xsd:documentation>Reference assigned to identify Implementation Convention </xsd:documentation>
</xsd:annotation>
<xsd:simpleContent>
<xsd:restriction base="EDI-Element-String-Type">
<xsd:minLength value="1"/>
<xsd:maxLength value="35"/>
<xsd:attribute name="EDIDataType" fixed="AN" type="xsd:string"/>
<xsd:attribute name="ID" fixed="1705" type="xsd:string"/>
<xsd:attribute name="Name" fixed="Implementation Convention Reference" type="xsd:string"/>
</xsd:restriction>
</xsd:simpleContent>
</xsd:complexType>
<xsd:complexType name="Segment-G82">
<xsd:annotation>
<xsd:documentation>To transmit identifying numbers, dates, and other basic data relating to the transaction set</xsd:documentation>
</xsd:annotation>
<xsd:sequence>
<xsd:element name="Element-478" type="Element-478"/>
<xsd:element name="Element-861" type="Element-861"/>
<xsd:element name="Element-860" type="Element-860"/>
Regards,
Suneel Jakka -
Using XPath to create Document node
Hi, could anyone suggest how to create Document nodes using xpaths with the help of some api (dom4j, JAXP, etc)?
For example:
With xpath="//A/B", I need to produce:
<A>
<B>.. </B>
</A>
XPath is usually used for querying XML document, but now I need to do the reverse.
Thanks.DrClap, thanks for your reply.
Yes, the topic title is a bit misleading. I shouldn't call it "Document" node.
"And you have an XPath expression of a very restricted form which is supposed to describe the structure of that document."
Not really, what I have is a bunch of xpath expressions, each of them describe a element in a xml.
With these xpath expressions, in the end of the day I need to create a xml document with these elements.
For example, if I have
//A/B
//A/C
//A/D
I need to create a xml like this:
<A>
<B> ...</B>
<C>....</C>
<D>.....</D>
</A>
While I could do this in a manual way (creating each element from the root and adding children one by one....), I'm sure dom4j (or other packages) can do this but I couldn't find how. -
Problems using java.xml.xpath - How to get values from DTMNodeList?
Sorry for the waffle in the subject title, but I was unsure what to call it. I hope this thread is in the correct forum.
I'm having problems using xpath to parse some data from an XML file. I am able to create an expression which obtains the elements I wish to retreive, but I'm unsure on how to go about getting their values. So far I have..
public int getTerms(int PMID)
String uri = "http://www.ncbi.nlm.nih.gov/entrez/eutils/efetch.fcgi?db=pubmed&id="
+ PMID + "&retmode=xml";
// Create an XPath object with the XPathFactory class
XPathFactory factory = XPathFactory.newInstance();
XPath xPath = factory.newXPath();
// Define an InputSource for the XML article
InputSource inputSource = new InputSource(uri);
// Create the expression
String expression = "/PubmedArticleSet/PubmedArticle/MedlineCitation/MeshHeadingList/MeshHeading/DescriptorName";
// Use this expression to obtain a NodeSet of all the MeSH Headings for the article
try
DTMNodeList nodes = (DTMNodeList) xPath.evaluate(expression,
inputSource, XPathConstants.NODESET);
int length = nodes.getLength();
String[] terms = new String[length];
// Test mesh terms are being stored.
*for (int i=0; i<length; i++)*
* System.out.println(i + ": " + nodes.item(i).getNodeValue());*
return nodes.getLength();
catch (XPathExpressionException e2)
{ System.out.println("Article with PMID " + PMID + " has no associated MeSH terms");}
// return a default
return 0;
} The part in bold is the problematic code. I wish to retreive the values of each of the nodes I have taken into my DTMNodeList using a for loop to iterate through each node, and use the getNodeValue() method from the Node class which should return a string. However, the values I retreive are NULL. In the test document I use, the elements do have values.
Here is a snippet of the XML file I am reading in:
<MeshHeadingList>
<MeshHeading>
<DescriptorName MajorTopicYN="N">Binding Sites</DescriptorName>
</MeshHeading>
- <MeshHeading>
<DescriptorName MajorTopicYN="N">Chromatium</DescriptorName>
<QualifierName MajorTopicYN="Y">enzymology</QualifierName>
</MeshHeading>
- <MeshHeading>
<DescriptorName MajorTopicYN="Y">Cytochrome c Group</DescriptorName>
</MeshHeading>
- <MeshHeading>
<DescriptorName MajorTopicYN="N">Electron Spin Resonance Spectroscopy</DescriptorName>
</MeshHeading>
- <MeshHeading>
<DescriptorName MajorTopicYN="N">Flavins</DescriptorName>
</MeshHeading>
- <MeshHeading>
<DescriptorName MajorTopicYN="N">Heme</DescriptorName>
</MeshHeading>
- <MeshHeading>
<DescriptorName MajorTopicYN="N">Hydrogen-Ion Concentration</DescriptorName>
</MeshHeading>
- <MeshHeading>
<DescriptorName MajorTopicYN="N">Iron</DescriptorName>
<QualifierName MajorTopicYN="N">analysis</QualifierName>
</MeshHeading>
- <MeshHeading>
<DescriptorName MajorTopicYN="N">Magnetics</DescriptorName>
</MeshHeading>
- <MeshHeading>
<DescriptorName MajorTopicYN="N">Oxidation-Reduction</DescriptorName>
</MeshHeading>
- <MeshHeading>
<DescriptorName MajorTopicYN="N">Protein Binding</DescriptorName>
</MeshHeading>
- <MeshHeading>
<DescriptorName MajorTopicYN="N">Protein Conformation</DescriptorName>
</MeshHeading>
- <MeshHeading>
<DescriptorName MajorTopicYN="N">Temperature</DescriptorName>
</MeshHeading>
</MeshHeadingList>Any help would be appreciated.. thanks :-)Answered my own question....
The element value is actually the child of the node I am current at, so instead of doing:
i + ": " + nodes.item(i).getNodeValue()); I should have really done:
i + ": " + nodes.item(i).getChildNode().getNodeValue()); -
Use XPath to select one of the node??
Can I use xpath to draw <param-value>/mnt/VISL/stats/stats/clarent2</param-value>
only?
I have tried to use ApplyXPath sample, but
I don't know what xpath value I should use?
I tried /doc/servlet/init-param/param-value
but it certainly draw other tag with the same name
Pls help!!!
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE web-app
PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
<servlet>
<servlet-name>
gen_daily
</servlet-name>
<servlet-class>
gen_daily
</servlet-class>
<init-param>
<param-name>clarent_init_dir</param-name>
<param-value>/mnt/VISL/stats/stats/clarent2</param-value>
</init-param>
<init-param>
<param-name>linefeed_mode</param-name>
<param-value>2</param-value>
</init-param>
</servlet>
<servlet>
<servlet-name>
RequestParamExample
</servlet-name>
<servlet-class>
RequestParamExample
</servlet-class>
</servlet>
<servlet>
<servlet-name>
RequestParamExample2
</servlet-name>
<servlet-class>
RequestParamExample2
</servlet-class>
</servlet>
<!-- Define example application events listeners -->
<!-- Define servlets that are included in the example application -->
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
<taglib>
<taglib-uri>
http://java.apache.org/tomcat/examples-taglib
</taglib-uri>
<taglib-location>
/WEB-INF/jsp/example-taglib.tld
</taglib-location>
</taglib>
<resource-ref>
<res-ref-name>mail/session</res-ref-name>
<res-type>javax.mail.Session</res-type>
<res-auth>Container</res-auth>
</resource-ref>
<security-constraint>
<display-name>Example Security Constraint</display-name>
<web-resource-collection>
<web-resource-name>Protected Area</web-resource-name>
<!-- Define the context-relative URL(s) to be protected -->
<url-pattern>/jsp/security/protected/*</url-pattern>
<!-- If you list http methods, only those methods are protected -->
<http-method>DELETE</http-method>
<http-method>GET</http-method>
<http-method>POST</http-method>
<http-method>PUT</http-method>
</web-resource-collection>
<auth-constraint>
<!-- Anyone with one of the listed roles may access this area -->
<role-name>tomcat</role-name>
<role-name>role1</role-name>
</auth-constraint>
</security-constraint>
</web-app>You have to start at the root and go down the XML tree.
Try:
/web-app/servlet/init-param/param-value
Are you trying to use this in xsl?
Kind regards,
Hans. -
I have just started to use the XML DOM API. One thing I cannot see yet is an easy way to use XPath to get the value of an element.
What I would like to do is pass an XPath expression like this:
\EDIFACT\ORDERS\NAD[2]\NAD01\NAD0102
into a method, and get the value of the element returned to me.
Does anybody know if there is a method of one of the DOM interfaces that would provide that kind of functionality, or am I going to have to traverse the nodes of the DOM tree manually to do this?
BR,
Tony.Hi Tony,
I read your posted question - I have the same problem.
I think that the method find_from_path_ns (or find_from_path) is the only "xpath"-like way to get a value.
BUT the syntax is very limited so you cannot use all good features of xpath
To traverse the nodes manually is (in my problem) unpractible - the xml-structures are different and it's horrible to traverse the tree.
I need xpaths like ' //x/y[3]/z[a='MS']' . I know, the performance is not very good but for small XML-messages fast enough
Do you have any solutions?
regards
Wolfgang Hummel -
Document Definition XPATH expressions1, 2, & 3
I want to put a semi advanced XPATH expression into my document definition. When I receive the EDI for this document, I can get a status code in 2 different segments depending on the type of status it is. I would like to use the following xpath expression to extract the data from either location an show it in the consoleI:
/*[local-name()='Transaction-350']/*[local-name()='Loop-P4']/((*[local-name()='Segment-V9']/*[local-name()='Element-304']) | (*[local-name()='Loop-X4']/*[local-name()='Segment-X4']/*[local-name()='Element-35']))
When I try to run this xpath against the application wire message in my favorite XML Editor (XML Spy or Jedit) it returns the correct value, but in B2B does not give me any output.
Is it possible to use the | xpath operator in B2B?
ThanksNo. I don't think Oracle B2B supports this. You may consider using two separate XPath fields (XPath Expression1 and XPath Expression2) for this. It is a good requirement and I would suggest you to file an enhancement request with support.
Regards,
Anuj -
Custom Document Definition - XPath Tab
Hello B2B Gurus
I am trying to understand the value of the XPath Tab for Custom Document Defn.
1.What functionality does it provide? Documentation refers to extracting value form the Payload.
2. I have a requiremnt to extract PO number from the payload. Can I search Reports based on the PO Number?
3. Why do we have a hard limit of 3 XPathNames?
XPath Tab
XPath Name1
The XML XPath name for retrieving the value from the payload
XPath Expression1
The XML XPath expression for retrieving the value from the payload (see Note below table)
XPath Name2
The XML XPath name for retrieving the value from the payload
XPath Expression2
The XML XPath expression for retrieving the value from the payload (see Note below table)
XPath Name3
The XML XPath name for retrieving the value from the payload
XPath Expression3
The XML XPath expression for retrieving the value from the payload (see Note below table)
Thanks1.What functionality does it provide? Documentation refers to extracting value form the Payload.Yes, XPath is used to extract the values from the payload and you can see the extracted values at runtime on Reports. Currently there is provision of providing three XPaths and you can see all three XPath's value in reports. Basically it should be used for tracking purpose.
2. I have a requiremnt to extract PO number from the payload. Can I search Reports based on the PO Number?Yes, actually this is the basic reason of having this functionality in Oracle B2B. To search on the basis of PO number, extracted by one of XPath expression, go to Reports section, click on "Advanced" button on right side of search section. This will enable one more button "Add Fields" beside "search", "reset" & "save" in the search section. When you click on "Add Fields", it will show a drop-down where you may select any of the parameters. If you select a XPath expression (for e.g. Xpath Expression1) then a search field "Xpath Expression1" will get added in search section. Now you can provide a value and criterion for seraching i.e. "Equals"/"Starts With"/"Contains"/"Ends With". Once you click on search button after proving value and selecting criterion, respected reports will get displayed.
If you are on 11gR1 PS3 (11.1.1.4) then you may also use InstanceMessage API to programmatically access the instance message data. Here also you can use the xPath expression value -
http://download.oracle.com/docs/cd/E17904_01/integration.1111/e10229/b2b_api_imsg.htm#BABFEFCD
http://download.oracle.com/docs/cd/E17904_01/apirefs.1111/e18158/toc.htm
3. Why do we have a hard limit of 3 XPathNames?Generally this feature should be used for extracting key values from payload for tracking & monitoring purpose and hence limited to three. If you have a strong use case where you need more than three XPaths, then raise an ER with support and after reviewing your use case, B2B development may come up with a solution (may be a patch for current release or enhanced feature in future release)
Regards,
Anuj -
New Apps Tab in document definition page of B2B Console
Hi All,
I am trying to figure out a way to convert all EDI formats into a single Canonical XSD format before sending it to SOA layer. This is to avoid different SOA services for each EDI format.
Could you please let me know something about the Apps tab in document definition page of B2B Console. I am seeing an XSLT File field there. What can we use here?
Regards,
RaghavIf I upload standard 850 ecs file in B2B, can B2B read all custom 850 files, transalte based on standard ecs and send it to SOA layer in a single XSD(850) format?It will be supported in future release. As of now, you have two options -
1. Handle it at SOA by using XSLT transformations. Recommended.
2. You may create a generic 850 ecs which can handle all custom 850 transactions at your end though this will have some limitations and I do not recommend it personally.
And regarding Apps tab, can i create an XSLT file to convert EDI format to canonical format in B2B itself?No. B2B does not execute any XSLT to transform the messages.
Regards,
Anuj -
De - Identification functionality in B2B Document Editor
Hi Gurus,
Does B2B document Editor have any functionality to De - Identify senstive data from H7 messages?
Thanks,
DatlaHi Datla,
Yes, there is a de-identification support in Data Editor of B2B Document Editor. Once you open a EDI or HL7 doc with data editor, it will ask you to "Choose De-Identification and specify rule file". You may create a separate file for your use. Data Replacement Rule file is actually a XML which holds the separator information along with the data to be replaced. You may define your own DRR file.
To know more, just open the Data Editor from Document Editor, go to Help --> Content -->Data Replace and De-Identify section.
Regards,
Anuj -
Unable to use B2B Document Editor tool to create guideline from data file
Does anyone successfully used the B2B Document Editor tool to generate the guideline doc from an HL7 data file ?
I attempted to use the SpecGenerator feature of this tool to create a guideline from the "a01.xml" sample file in the HL7 tutorials (came with the B2B installation" and the wizard kept on giving me "parsing errors" message below
"The data in the file could not be parsed. Please check the file to verify that it is valid and formatted correctly. This error can occur for one of the following reasons: A) The data file may be a Word document or have some other binary format. B) The envelope data may not be formatted properly. If this is an X12 data file, please verify that the ISA segment is the correct size (exactly 106 characters). If this is an EDIFACT data file, it must have either a UNA or begin with UNB. For other standards, verify that the envelope segments conform to the specified rules. C) The segment/record delimiters in the file are incorrect."
Any idea why ? I did not alter the sample file in anyway -- its format is exactly the same as when it was installed.
Any helps are appreciate !!Hi,
I would suggest that you learn the B2B product starting with the HL7 tutorial. Start by importing the export files and follow the instructions to make the system work end to end.
Next, you want to configure for the HL7 tutorial manually using the ecs and xsd files provided in the HL7 tutorial directory. Again, ensure that the system work end to end after you have done the manual configuration.
Next, you create a new ecs and xsd file using the Document Editor from scratch and use them in your manual configuration. You can use the same doctype and version as in the tutorial so that you can be familiar with the Document Editor and at the end of this exercise, you know you have done things properly if the system works end to end. The documentation for Document Editor is mainly in the Windows Help section.
After the incremental steps above, you will have the knowledge to implement the document type and version of your project. Going straight into the requirements in your project makes it difficult to debug because they are too many moving parts.
Hope this helps,
Eng -
Using xpath expressions in Document-Builder
Hi all
we have re-designed our (existing) DDX-templates with the Document Builder in LC Workbench. The DDX templates are used to assemble PDFs with LC Assembler-Service.
Now my question: Is it still possible to use XPath-expression in the DDX template? Please find our example below:
The XPath expression works only if we copy&paste the DDX source code directly to the Assembler-Service property view (picture below). But referring the DDX-template doens't interpret the xpath path at run time (2nd picture below). Any help on that will be appreciated!
Works (using DDX source code directly):
Doesn't work (using DDX template):Hi,
>
I tried to get a portion of an XML by using XPath Expressions as follows:
String xPathExpression =
"declare namespace xq='http://inti.notariado.org/indices' " +
"$this/xq:RULES/xq:RULE[@disabled]";
I think any XPath expressions which use [] are not supported in stand alone
version, but as this is not documented I could be wrong.
Regards
Arek -
Error while using the B2B document editor
Hi All,
I am using B2B document editor version 6.6.0.2801 on Windows 7 32 bit.
When i open any guideline the editor, i get the following error:
One or more ActiveX controls could not be displayed because either:
1)You current security settings prohibit running ActiveX controls on this pages, or
2)You have blocked a publisher of one of the controls.
As a result, the page might not display correctly.
Could any please tell me how to overcome the error.
Regards,
Saurav SinglaHi Saurav,
It looks like an Operating System issue. You may refer -
http://social.technet.microsoft.com/Forums/en-US/w7itprosecurity/thread/90c3202c-448b-42b7-acf7-dab8dba7b000
http://support.microsoft.com/kb/907343
Regards,
Anuj -
Oracle Fusion Middleware 11G B2B Document Type not getting Identified
Hello,
I have installed Oracle Fusion Middleware 11g on my local machine and created a custom document type with proper .xsd definition and XPath Expression Identifier in Oracle B2B interface and configured its trading partners ( Host & Remote ) along with an agreement between the partners.
I have also configured the host listening channel of Generic-File type which picks xml files from my c:\orclsrvs_in folder.
My problem is that the moment I drop any sample file in the expected directory, it gets picked up from B2B , but there isn't any record of the same under Reports and Metrics links.
The Business message, Application message and Conversation message tabs are also not showing any information about the record picked, but in wire message tab, the record is shown in PROCESSING state.
I am not able to conclude whats wrong behind this.. where can i track the logs for the same ??
kindly help to resolve this issue.
Thanks & Regards
Hiteshkumar ChaudharyHi Hitesh,
i came to know that B2B extracts the TP name from the filename itselfYes, in case of Generic File, Generic SFTP and Generic FTP, file name provides the necessary values to Oracle B2B to identify the Trading Partner. You can define your own file name format in the Delivery Channel under Transport Protocol Parameters in field "Filename format" (It's an optional field but it is always good to define your own format, otherwise B2B will take it's default format - TradingPartner_DocumentType_Revision_msgType_msgId_replytoMsgID_extension.xml ). Following Filename formats can be used -
%FROM_PARTY%
%TO_PARTY%
%DOCTYPE_NAME%
%DOCTYPE_REVISION%
%MSG_ID%
%TIMESTAMP%
These file name formats can be used in any combination; for example,
%TO_PARTY%_%DOCTYPE_NAME%_%DOCTYPE_REVISION%.dat
Note - Any file extension is allowed.
what are the system parameters to be set in weblogic console and how?? This activity is part of the pre and post installation steps. If you have done those without getting any errors then nothing else is required.
how shall I reinstall XEngine properly ??XEngine is part of B2B installation. If B2B gets installed without flashing any errors then we assume that other components of this part has installed properly.
Regards,
Anuj
Edited by: Anuj Dwivedi, Infosys on Aug 28, 2009 5:51 PM
Maybe you are looking for
-
When I open a new tab, it is opening in Chrome, and i want it to open in Firefox
Whenever I open a new tab, instead of another Firefox window, it opens in Chrome, I don't want to have this happen, how do I undo it?
-
My 8620 HP Officejet Pro 8620 e-All-in-One Printer IS INCREDIBLY SLOW TO PRINT - TRIED EVERYTHING
I have an 8620 HP Officejet Pro 8620 e-All-in-One Printer It is connected via wireless set-up, with excellent signal strength. It is incredibly slow to print anything, especially PDF files that have graphics in them. I have the latest software instal
-
When I Phone is connected to the computer, can you get internet connection on the computer to send/receive images?
-
Chioce of KF depending on user entry
Hello, I have 3 different key figures that separate transaction currency, company code currency and controlling area currency per record. The requirement is to be able to display one of these key figures based on user entry. That is, I'd like to choo
-
Hi Experts. I just received access to a new SAP Cloud for customer system. I setup the Admin user for myself following the cloud setup guide. I just wanted to add an extra field in account screen by going into ADAPT mode. However , when i go into ADA