Bpelc issues with WSDL schema definition

Hi,
I have been attempting to deploy a relative simple BPEL example, developed using the BPEL Designer Eclipse plugin and deployed on BPEL Process Manager.
The BPEL consists of receiving a SOAP message, copying variables using assign from the input message to a message defined in an external WSDL, invoking that WSDL's service and copying the results of that service into the output message.
To design the external service, I developed a simple Java class in Apache Axis and used the Java2WSDL tool to create all the interfaces. I then copied that WSDL to the BPEL designer and started to design the BPEL.
The problem is to do with the definition of messages within the WSDL, the following snippet is from the WSDL generated in Apache Axis:
<wsdl:types>
<schema xmlns="http://www.w3.org/2001/XMLSchema"
     targetNamespace="http://mdsuk.com/wsdl/example/PSP1">
<import namespace="http://schemas.xmlsoap.org/soap/encoding/"/>
<complexType name="OutputCT">
<sequence>
<element name="message" nillable="true" type="xsd:string"/>
<element name="paymentReference" nillable="true" type="xsd:string"/>
<element name="success" nillable="true" type="xsd:boolean"/>
</sequence>
</complexType>
</schema>
</wsdl:types>
I then tried to create the <assign> statement for the External Service Message -> BPEL Output Message using BPEL Designer using the visual editor, it generated the following code:
<assign name="assign-2">
<copy>
     <from variable="pspOutput" part="outputCT" query="/message"></from>
     <to variable="output" part="payload" query="/tns:OrderTestResponse/tns:result"/>
</copy>
<copy>
     <from variable="pspOutput" part="outputCT" query="/success"></from>
     <to variable="output" part="payload" query="/tns:OrderTestResponse/tns:success"/>
</copy>
</assign>
Trying to compile this generated code resulted in:
[bpelc] [Error ORABPEL-10057]: invalid query
[bpelc] [Description]: in line 94 of "D:\EclipseWorkspace\OrderTest\OrderTest.bpel", query "/message" is invalid, because step 'message' is not valid..
[bpelc] [Potential fix]: Check the XML schema and make sure your query string is valid.
[bpelc]
[bpelc] [Error ORABPEL-10057]: invalid query
[bpelc] [Description]: in line 98 of "D:\EclipseWorkspace\OrderTest\OrderTest.bpel", query "/success" is invalid, because step 'success' is not valid..
[bpelc] [Potential fix]: Check the XML schema and make sure your query string is valid.
So, the generated code from BPEL Designer was failing to compile. This resulted in a long check of the code, finally I realised that it expected the inputCT variable to be present in the XPath, so I manually changed the code to
<assign name="assign-2">
<copy>
     <from variable="pspOutput" part="outputCT" query="/outputCT/message"></from>
     <to variable="output" part="payload" query="/tns:OrderTestResponse/tns:result"/>
</copy>
<copy>
     <from variable="pspOutput" part="outputCT" query="/outputCT/success"></from>
     <to variable="output" part="payload" query="/tns:OrderTestResponse/tns:success"/>
</copy>
</assign>
This allowed to code to compile, so I deployed the BPEL to the Process Manager, and invoked a query using the Web Interface.
The BPEL started up fine, it invoked my external Axis Web Service, Axis produced the output (visible via debugging) however Process Manager tried to process the output, it crashed with the following exception:
06/01/19 16:29:11 com.oracle.bpel.client.BPELFault: faultName: {{http://schemas.xmlsoap.org/ws/2003/03/business-process/}selectionFailure}
messageType: {null}
parts: {{summary=<summary>empty variable/expression result.
xpath variable/expression expression "/outputCT/message" is empty at line 94, when attempting reading/copying it.
Please make sure the variable/expression result "/outputCT/message" is not empty.
</summary>}}
So, the compiled BPEL code, which had the WSDL schema to compare against was failing during execution, I inspected the output from the Axis Web Service, which was:
<?xml version="1.0" encoding="utf-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soapenv:Body>
<processPaymentResponse xmlns="http://mdsuk.com/wsdl/example/PSP1">
<outputCT xmlns="">
<ns1:message xmlns:ns1="http://mdsuk.com/wsdl/example/PSP1">Payment Succesful</ns1:message>
<ns2:paymentReference xmlns:ns2="http://mdsuk.com/wsdl/example/PSP1">1137688175137</ns2:paymentReference>
<ns3:success xmlns:ns3="http://mdsuk.com/wsdl/example/PSP1">true</ns3:success>
</outputCT>
</processPaymentResponse>
</soapenv:Body>
</soapenv:Envelope>
The key difference was that the message / paymentReference and success attributes were prefixed with the namespace "http://mdsuk.com/wsdl/example/PSP1" , this makes sense as the schema has the attribute targetNamespace="http://mdsuk.com/wsdl/example/PSP1".
However, when I tried to modify the BPEL to read:
<assign name="assign-2">
<copy>
     <from variable="pspOutput" part="outputCT" query="/outputCT/nsxml1:message"></from>
     <to variable="output" part="payload" query="/tns:OrderTestResponse/tns:result"/>
</copy>
<copy>
     <from variable="pspOutput" part="outputCT" query="/outputCT/nsxml1:success"></from>
     <to variable="output" part="payload" query="/tns:OrderTestResponse/tns:success"/>
</copy>
</assign>
It complained:
[bpelc] [Error ORABPEL-10057]: invalid query
[bpelc] [Description]: in line 94 of "D:\EclipseWorkspace\OrderTest\OrderTest.bpel", query "/outputCT/nsxml1:message" is invalid, because step 'nsxml1:message' is not valid..
[bpelc] [Potential fix]: Check the XML schema and make sure your query string is valid.
[bpelc]
[bpelc] [Error ORABPEL-10057]: invalid query
[bpelc] [Description]: in line 98 of "D:\EclipseWorkspace\OrderTest\OrderTest.bpel", query "/outputCT/nsxml1:sucess" is invalid, because step 'nsxml1:sucess' is not valid..
[bpelc] [Potential fix]: Check the XML schema and make sure your query string is valid.
[bpelc] .
So, the BPEL would not validate against the WSDL schema that was being produced, I read up on the W3 Schema specification, and found that the schema can take the attribute elementFormDefault - this attribute takes the values 'qualified' or 'unqualified'. If qualified, then it explicitly states that all children elements should be beloning to the namespace of this element.
So, I changed the schema to read:
<wsdl:types>
<schema xmlns="http://www.w3.org/2001/XMLSchema"
     targetNamespace="http://mdsuk.com/wsdl/example/PSP1"
     elementFormDefault="qualified">
<import namespace="http://schemas.xmlsoap.org/soap/encoding/"/>
<complexType name="OutputCT">
<sequence>
<element name="message" nillable="true" type="xsd:string"/>
<element name="paymentReference" nillable="true" type="xsd:string"/>
<element name="success" nillable="true" type="xsd:boolean"/>
</sequence>
</complexType>
</schema>
</wsdl:types>
The BPEL compiled and ran succesfully.
However, the problem/issue here is, Oracle bpelc assumed that if the elementFormDefault attribute was missing from the schema definition, it defaulted to unqualified, even with the targetNamespace attribute present.
Axis and <oXygen/> XML Editors, in which I tested the WSDL code, assumed that if the elementFormDefault attribute was missing, it defaulted to qualified.
I cannot find anything in the Schema Specification to say which is correct - can anyone shed any light on this? I also want to make Oracle BPEL users aware of this issue.
Regards,
Peter Dolukhanov

I resolved this issue by adding the following to the 2nd schema in the wsdl
xmlns:xsdLocal1="urn:/crmondemand/xml/integrationevent"
inside the 2nd schema
<xsd:schema
elementFormDefault="qualified"
attributeFormDefault="unqualified"
xmlns:xsdLocal1="urn:/crmondemand/xml/integrationevent"
targetNamespace="urn:crmondemand/ws/integrationevent/" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
and this line immediately below it
<xsd:import namespace="urn:/crmondemand/xml/integrationevent" />
I could then create a proxy class using wsdl.exe

Similar Messages

  • Issue with Opportunity schema contained in Opportunity.wsdl and Integration

    There is Opportunity XML schema object defined for Siebel web-service with URI “urn:/crmondemand/xml/opportunity” in opportunity.wsdl and opportunity.xsd contained in integrationevent.zip. Please find attached the schema files.
    If you check the diff, the opportunity schema is different, which is actually a conflict from Siebel side since it is the same object identified by URI “urn:/crmondemand/xml/opportunity”. Can we get some information about the discrepancy from Siebel OD team?
    Following compiler error comes for the BPEL process, where both Opportunity wsdl and integration event being used:
    Error:
    [Error ORABPEL-10903]: failed to read wsdl
    [Description]: in "bpel.xml", Global Type declaration/definition of name '{urn:/crmondemand/xml/opportunity}Opportunity' are duplicated at the following locations:
    file:/C:/Bhavnesh/Work/SiebelPoll/SourceCode/SiebelPoll/JDSU_SiebelToODSOpportunityTransfer/bpel/opportunity.wsdl [line#: 89]
    file:/C:/Bhavnesh/Work/SiebelPoll/SourceCode/SiebelPoll/JDSU_SiebelToODSOpportunityTransfer/bpel/opportunity.xsd [line#: 12]
    There are at least two of them looking different:
    file:/C:/Bhavnesh/Work/SiebelPoll/SourceCode/SiebelPoll/JDSU_SiebelToODSOpportunityTransfer/bpel/opportunity.wsdl [difference starting at line#:635]
    file:/C:/Bhavnesh/Work/SiebelPoll/SourceCode/SiebelPoll/JDSU_SiebelToODSOpportunityTransfer/bpel/opportunity.xsd [difference starting at line#:558]
    Global Type declaration/definition of name '{urn:/crmondemand/xml/opportunity}Team' are duplicated at the following locations:
    file:/C:/Bhavnesh/Work/SiebelPoll/SourceCode/SiebelPoll/JDSU_SiebelToODSOpportunityTransfer/bpel/opportunity.wsdl [line#: 2602]
    file:/C:/Bhavnesh/Work/SiebelPoll/SourceCode/SiebelPoll/JDSU_SiebelToODSOpportunityTransfer/bpel/opportunity.xsd [line#: 2524]
    There are at least two of them looking different:
    file:/C:/Bhavnesh/Work/SiebelPoll/SourceCode/SiebelPoll/JDSU_SiebelToODSOpportunityTransfer/bpel/opportunity.wsdl [difference starting at line#:2602]
    file:/C:/Bhavnesh/Work/SiebelPoll/SourceCode/SiebelPoll/JDSU_SiebelToODSOpportunityTransfer/bpel/opportunity.xsd [difference starting at line#:2524]
    [Potential fix]: If your site has a proxy server, then you may need to configure your BPEL Server, designer and browser with your proxy server configuration settings (see tech note on http://otn.oracle.com/bpel for instructions).
    Following is the difference between two schema:
    New line in opportunity.wsdl
    <xsd:element name="ListOfOpportunityContactRole" maxOccurs="1" minOccurs="0" type="xsdLocal1:ListOfOpportunityContactRole"></xsd:element>
    Difference between the sequence of elements in both schema:
    <xsd:complexType name="Team"><xsd:sequence><xsd:element name="OpportunityAccessId" maxOccurs="1" minOccurs="0" type="xsdLocal1:string30"></xsd:element>
    <xsd:element name="OpportunityTeamId" maxOccurs="1" minOccurs="0" type="xsd:string"></xsd:element>
    Thanks and regards,
    Bhavnesh Patel.
    Edited by: bhavnesh_p on Oct 9, 2008 1:24 PM

    Hello Bhavnesh,
    we just got into the same issue with the differing Opportunity-XSD/WSDL you have mentioned in your posting.
    Following is the difference between two schema:
    New line in opportunity.wsdl
    <xsd:element name="ListOfOpportunityContactRole" maxOccurs="1" minOccurs="0" type="xsdLocal1:ListOfOpportunityContactRole"></xsd:element>
    Difference between the sequence of elements in both schema:
    <xsd:complexType name="Team"><xsd:sequence><xsd:element name="OpportunityAccessId" maxOccurs="1" minOccurs="0" type="xsdLocal1:string30"></xsd:element>
    <xsd:element name="OpportunityTeamId" maxOccurs="1" minOccurs="0" type="xsd:string"></xsd:element>Did you get any update on this problem?
    Thanks in adavance & Best regards..
    Andre

  • Issue with WSDL created for sender agreement

    Hi,
    Can you please help me why I am getting the erroe with WSDL that has been created from directory Sener agreement in PI 7.1 EHP1?
    My interface is a SOAP to file ASYNC scenario and we have been given 5 XSDs that are referencing one each other ,5 XSDs are imported successfully and referenced properly,no errors/issues found.
    Created all ESr and directory objects and I tried creating WSDL from sender agreement for my Source/outbound inteface that is created with XSDs in ESR.
    When I try to import WSDL into SOPA UI to validate ,the import process stuck for ever while trying to import "http://www.w3.org/2001/xml.xsd" and finally throws me error.
    After that I tried importing WSDL created in Directory into AltovaXML spy to created the webservice request,I am getting the following error""invalid XML Schema:"xml:lang" is already declared in the schema dcument C:|..my WSDL.
    Even our partner who wants to make Webservice calls using this WSDL,they are not able to develop their Webservices they are getting errors something related to schema not found /not defined etc.
    Please let me know,what might be the issue?I verified several times with my XSD imports and referencing properly and configuration objects.
    Thank you for your help in advance.
    Regards,
    Prem

    Hi Mark,
    I am not getting issue while displaying/Exporting  as WSDL in ESR.I am getting issue while trying import WSDL that is generated out of Service Interface into SOAP UI or Altova XML Spy.
    I don't think PI created the WSDl out of W3 standards.
    This is the error I am getting in XML Spy:
    File C:\Documents and Settings\Prem\Desktop\SI_XYZ_O.wsdl is not valid
         Invalid XML schema: ''xml:lang' is already declared.
              Error location: schema / attribute++
    and in SOAP UI:It is trying to import the WSDL and it stuck for ever while trying to import http://www.w3.org/2001/xml.xsd and never imprts the WSDL into SOAP UI project.
    Please let me know,if you have any ideas.
    Thank you,
    Prem.

  • Performance issues with respect scheme registration,select & insert query

    I am facing performance issues with respect to schema registration,Select & insert query towards 10.2.0.3 version.It is taking around 45 minutes to register schema and it is taking around 5 min to insert a single document into xml db where as it was taking less than min to insert a single document into xml db of 9.2.0.6 version.Would like to know the issue and solution to resolve this issue.Please help me out on this as it is very urgent for me

    Since it appears that this is an XML DB specific question, you're probably better off posting in the XML DB. The folks over there have much more experience with the ins and outs of that particular product.
    Justin

  • Issue with publishing schema as webservice using WCF-BasicHTTP two way channel

    Here is my scenario:
    I am trying to publish a Req-Resp schema which will be consumed by an orchestration and will return a response to me .When I invoke the WCF service end point it triggers the orchestration but the response never comes back to the SOAP UI. My orchestration
    is completing and returning the response.
    But in the SOAP UI I am instead getting : <Message>Root element is missing.
    I am using WCF-BasicHTTP two way port. My app pool id under whcih the BT service is hosted  is part of Administrator group on the server
    My config file is as well updated with   <trust level="Full" originUrl="" /> info.
    What could be the reason for failure.

    Hi,
    Did you try checking your orchestration response xml against the schema definition WCF service is expecting to return.
    Regards Pushpendra K Singh

  • Issues with WSDL file loading in BPEL process Composite

    hi',
    I am facing lot of issues in 11G
    I am using:-->"Jdeveloper Studio Edition Version 11.1.1.2.0"
    When I am trying to open a already working composite from a different machine in my machine, it start giving error
    it is unable to build "Unable to load WSDL file", I have all the webservices in different machine OSB and my machine
    is targeting that machine OSB with IP address, In my BPEL process I am using localhost, I am able to see all the methods
    in composite and dosent shows any error, but when I try to compile it it gives unable to load WSDL file.
    please advice,
    thanks
    Yatan

    I suppose, any unhandled exception in the one-way BPEL process could have caused rollback of the instance and hence the instance might not be seen. Add fault handlers-catch/catch-all blocks in the one-way BPEL process if not done already, and test.

  • Unreleashed segment issue with SAP schema

    Hi All,
    We are trying to generate SAP schema in BizTalk 2010 and facing unreleased segment issue and discussed with SAP team whom suggested below ways. We were interacted with MSFT and no hotfix yet. Please guide me.
    The provider/external should call IDOCTYPE_READ_COMPLETE in the following way:
    - PI_RELEASE = ' ' => last existing segment version is returned
    - PI_RELEASE not available in the interface => last released version
    Which means: BizTalk needs to ensure the PI_RELEASE is not present in the call of the interface. This will allow pulling the last release version of the IDoc including not released segments.
    Thanks, Raja MCTS BizTalk Server 2010, MCC If this answers your question please mark it accordingly

    BizTalk does not support unreleased segments for Receive Operations.
    As far as I know SAP 'locks' the segment types that have not been released and the LOB adapter of BizTalk cannot properly read those segments.
    The SAP team should set a release on the IDOC types and segments you need.
    Glenn Colpaert - MCTS BizTalk Server - Blog : http://blog.codit.eu

  • Issue with passing schema name as variable to sql file

    Hi,
    I have a scenario wherein from SYS a Java process (Process_1) is invoking SQL files and executing the same in SQLPLUS mode.
    DB: Oracle 11.2.3.0
    Platform: Oracle Linux 5 (64-bit)
    Call_1.sql is being invoked by Java which contains the below content:-
    ALTER SESSION SET CURRENT_SCHEMA=&&1;
    UPDATE <table1> SET <Column1> = &&1;
    COMMIT;
    @Filename_1.sql
    Another process (Process_2) again from SYS user is also accessing Filename_1.sql.
    The content of Filename_1.sql is:-
    DECLARE
    cnt NUMBER := 0;
    BEGIN
      SELECT COUNT(1) INTO cnt FROM all_tables WHERE table_name = 'TEST' AND owner = '&Schema_name';
      IF cnt = 1 THEN
      BEGIN
        EXECUTE IMMEDIATE 'DROP TABLE TEST';
        dbms_output.put_line('Table dropped with success');
      END;
      END IF;
      SELECT COUNT(1) INTO cnt FROM all_tables WHERE table_name = 'TEST' AND owner = '&Schema_name';
      IF cnt = 0 THEN
      BEGIN
        EXECUTE IMMEDIATE 'CREATE TABLE TEST (name VARCHAR2(100) , ID NUMBER)';
        dbms_output.put_line('Table created with success');
      END;
      END IF;
    End;
    Process_2 uses "&Schema_Name" identifier to populate the owner name in Filename_1.sql. But Process_1 needs to use "&&1" to populate the owner name. This is where I am looking a way to modify Call_1.sql file so that it can accommodate both "&&1"  to populate owner name values in Filename_1.sql (with avoiding making any changes to Filename_1.sql).
    Any help would be appreciated.
    Thanks.

    Bad day for good code. Have yet to spot any posted today... Sadly, yours is just another ugly hack.
    The appropriate method for using SQL*Plus substitution variables (in an automated fashion), is as command line parameters. Not as static/global variables defined by some other script ran prior.
    So if a script is, for example, to create a schema, it should look something as follows:
    -- usage: create-schema.sql <schema_name>
    set verify off
    set define on
    create user &1 identified by .. default tablespace .. quota ... ;
    grant ... to &1;
    --eof
    If script 1 wants to call it direct then:
    -- script 1
    @create-schema SCOTT
    If script 2 want to call it using an existing variable:
    -- script 2
    @create-schema &SCHEMA
    Please - when hacking in this fashion, make an attempt to understand why the hack is needed and how it works. (and yes, the majority of SQL*Plus scripts fall into the CLI hack category). There's nothing simple, beautiful, or elegant about SQL*Plus scripts and their mainframe roots.

  • Sound Playback Issue with IDT High Definition Audio Codec HP Pavilion dv6 Notebook PC

    Since i bought this laptop, every time i use skype or the Windows Sound Recorder, i hear static that drastically increases in volume. Uninstalling the IDT High Definition Audio Codec prompts my computer to automatically install the driver again, this usually fixes the problem, but after restarting my laptop, the problem returns.
    Does anyone know a permanent fix to this issue?
    Product name: HP Pavilion dv6 Notebook PC
    Product number: B3K22PA#ABG

    Hi,
    Please try:
    (a) Uninstall IDT sound from Device Manager,
    (b) Reboot the machine
    (c) Download the following package and install again:
         http://ftp.hp.com/pub/softpaq/sp55001-55500/sp55094.exe
    (d) Reboot the machine.
    Regards.
    BH
    **Click the KUDOS thumb up on the left to say 'Thanks'**
    Make it easier for other people to find solutions by marking a Reply 'Accept as Solution' if it solves your problem.

  • Read XML with different schema definitions

    Hello,
    I have an XML stored in a table as XMLTYPE and I have no problem to read the first part (ELMAHeader)
    WITH t AS(
    SELECT XMLTYPE(
    q'[<?xml version = '1.0' encoding = 'UTF-8'?>
    <ELMAKM xsi:noNamespaceSchemaLocation="./KM/01.00/ELMAKM_000001.xsd"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:km="http://www.zivit.de/KiStA/KiStAM/V1.0/KiStA-KiStAM-Anfrage">
       <ELMAKOM>
          <ELMAHeader ELMAKMVersion="1">
             <AuthSteuernummer>BG</AuthSteuernummer>
             <AccountID>11</AccountID>
             <KundeneigeneID>1</KundeneigeneID>
             <Verarbeitungslauf>PROD</Verarbeitungslauf>
             <ErstellungsDatum>2014-09-16</ErstellungsDatum>
             <ErstellungsZeit>11:00:27.7</ErstellungsZeit>
          </ELMAHeader>
          <ELMAVerfahren>
             <KISTA_KM_ANTW UUID="0345" OrdBegriff="SLD"
             xsi:schemaLocation="http://www.zivit.de/KiStA/KM/01.00-r000001 ./KM/01.00/ELMAKM_KISTA_000001.xsd"
             xmlns="http://www.zivit.de/KiStA/KM/01.00-r000001"
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xmlns:k="http://www.zivit.de/KiStA/Std/01.00-r000001">
                <KiStAV_DL Zulassungsnummer="2"/>
                <KiStAV Zulassungsnummer="2" Name="SLD"/>
                <Antwort xsi:type="AntwortArt3" UUID="0f" KdOrdBegriff="4">
                   <ReturnCode>1</ReturnCode>
                   <Anlass Datum="2014-08-11" Grund="1"/>
                   <PersAngabe>
                      <Person>
                         <k:NName>B</k:NName>
                         <k:VName>Y</k:VName>
                         <k:GebDt>1944-10-11</k:GebDt>
                      </Person>
                      <Adresse xsi:type="k:InlandsAdresse">
                         <k:Str>A-Str.</k:Str>
                         <k:HausNr>5</k:HausNr>
                         <k:Ort>M</k:Ort>
                         <k:Plz>8</k:Plz>
                      </Adresse>
                   </PersAngabe>
                </Antwort>
             </KISTA_KM_ANTW>
          </ELMAVerfahren>
       </ELMAKOM>
    </ELMAKM>]') x FROM dual
    SELECT  x
           ,elma.ELMAKMVersion
           ,elma.AuthSteuernummer
           ,elma.AccountID
           ,elma.KundeneigeneID
    FROM    t
           ,XMLTABLE(
                '/ELMAKM/ELMAKOM/ELMAHeader'
                PASSING t.x
                COLUMNS ELMAKMVersion       VARCHAR2(8)     PATH '@ELMAKMVersion'
                       ,AuthSteuernummer    VARCHAR2(10)    PATH 'AuthSteuernummer'
                       ,AccountID           VARCHAR2(10)    PATH 'AccountID'
                       ,KundeneigeneID      VARCHAR2(10)    PATH 'KundeneigeneID'
                ) elma
    But how can I read the second part(ELMAVerfahren)? I tried many selects but I get no results, e.g.
    WITH ...
    SELECT  x
           ,elma.UUID
    FROM    t
           ,XMLTABLE(
                XMLNAMESPACES(
                    DEFAULT './KM/01.00/ELMAKM_KISTA_000001.xsd'
                    ,'http://www.zivit.de/KiStA/KiStAM/V1.0/KiStA-KiStAM-Anfrage' AS "km"
                    ,'http://www.zivit.de/KiStA/Std/01.00-r000001' AS "k"
                '/ELMAKM/ELMAKOM/ELMAVerfahren/KISTA_KM_ANTW'
                PASSING t.x
                COLUMNS UUID       VARCHAR2(8)     PATH '@UUID'
                ) elma
    DB version
    Oracle Database 11g Enterprise Edition Release 11.2.0.2.0 - 64bit Production
    Regards
    Marcus

    Hi Marcus,
    If you declare a default namespace using the XMLNamespaces clause, it'll apply to all unqualified elements referenced by the XQuery expression.
    In your attempt, ELMAKM, ELMAKOM and ELMAVerfahren are treated as being part of the default namespace, which is wrong since those nodes are in no namespace.
    To handle this kind of situations, where there are default namespace redefinitions down the tree, you have to declare a prefix :
    SELECT  x 
           ,elma.UUID 
    FROM    t 
           ,XMLTABLE(
               XMLNamespaces('http://www.zivit.de/KiStA/KM/01.00-r000001' as "ns0") 
            ,  '/ELMAKM/ELMAKOM/ELMAVerfahren/ns0:KISTA_KM_ANTW' 
                PASSING t.x 
                COLUMNS UUID       VARCHAR2(8)     PATH '@UUID' 
                ) elma

  • Issue with xsd Data type mapping for collection of user defined data type

    Hi,
    I am facing a issue with wsdl for xsd mapping for collection of user defined data type.
    Here is the code snippet.
    sample.java
    @WebMethod
    public QueryPageOutput AccountQue(QueryPageInput qpInput)
    public class QueryPageInput implements Serializable, Cloneable
    protected Account_IO fMessage = null;
    public class QueryPageOutput implements Serializable, Cloneable
    protected Account_IO fMessage = null;
    public class Account_IO implements Serializable, Cloneable {
    protected ArrayList <AccountIC> fintObjInst = null;
    public ArrayList<AccountIC>getfintObjInst()
    return (ArrayList<AccountIC>)fintObjInst.clone();
    public void setfintObjInst(AccountIC val)
    fintObjInst = new ArrayList<AccountIC>();
    fintObjInst.add(val);
    Public class AccountIC
    protected String Name;
    protected String Desc;
    public String getName()
    return Name;
    public void setName(String name)
    Name = name;
    For the sample.java code, the wsdl generated is as below:
    <?xml version="1.0" encoding="UTF-8" ?>
    <wsdl:definitions
    name="SimpleService"
    targetNamespace="http://example.org"
    xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
    xmlns:tns="http://example.org"
    xmlns:xsd="http://www.w3.org/2001/XMLSchema"
    xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/"
    xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
    xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/"
    >
    <wsdl:types>
    <xs:schema version="1.0" targetNamespace="http://examples.org" xmlns:ns1="http://example.org/types"
    xmlns:xs="http://www.w3.org/2001/XMLSchema">
    <xs:import namespace="http://example.org/types"/>
    <xs:element name="AccountWSService" type="ns1:accountEMRIO"/>
    </xs:schema>
    <xs:schema version="1.0" targetNamespace="http://example.org/types" xmlns:ns1="http://examples.org"
    xmlns:tns="http://example.org/types" xmlns:xs="http://www.w3.org/2001/XMLSchema">
    <xs:import namespace="http://examples.org"/>
    <xs:complexType name="queryPageOutput">
    <xs:sequence>
    <xs:element name="fSiebelMessage" type="tns:accountEMRIO" minOccurs="0"/>
    </xs:sequence>
    </xs:complexType>
    <xs:complexType name="accountEMRIO">
    <xs:sequence>
    <xs:element name="fIntObjectFormat" type="xs:string" minOccurs="0"/>
    <xs:element name="fMessageType" type="xs:string" minOccurs="0"/>
    <xs:element name="fMessageId" type="xs:string" minOccurs="0"/>
    <xs:element name="fIntObjectName" type="xs:string" minOccurs="0"/>
    <xs:element name="fOutputIntObjectName" type="xs:string" minOccurs="0"/>
    <xs:element name="fintObjInst" type="xs:anyType" minOccurs="0" maxOccurs="unbounded"/>
    </xs:sequence>
    </xs:complexType>
    <xs:complexType name="queryPageInput">
    <xs:sequence>
    <xs:element name="fPageSize" type="xs:string" minOccurs="0"/>
    <xs:element name="fSiebelMessage" type="tns:accountEMRIO" minOccurs="0"/>
    <xs:element name="fStartRowNum" type="xs:string" minOccurs="0"/>
    <xs:element name="fViewMode" type="xs:string" minOccurs="0"/>
    </xs:sequence>
    </xs:complexType>
    </xs:schema>
    <schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="http://example.org"
    xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:tns="http://example.org" xmlns:ns1="http://example.org/types">
    <import namespace="http://example.org/types"/>
    <xsd:complexType name="AccountQue">
    <xsd:sequence>
    <xsd:element name="arg0" type="ns1:queryPageInput"/>
    </xsd:sequence>
    </xsd:complexType>
    <xsd:element name="AccountQue" type="tns:AccountQue"/>
    <xsd:complexType name="AccountQueResponse">
    <xsd:sequence>
    <xsd:element name="return" type="ns1:queryPageOutput"/>
    </xsd:sequence>
    </xsd:complexType>
    <xsd:element name="AccountQueResponse" type="tns:AccountQueResponse"/>
    </schema>
    </wsdl:types>
    <wsdl:message name="AccountQueInput">
    <wsdl:part name="parameters" element="tns:AccountQue"/>
    </wsdl:message>
    <wsdl:message name="AccountQueOutput">
    <wsdl:part name="parameters" element="tns:AccountQueResponse"/>
    </wsdl:message>
    <wsdl:portType name="SimpleService">
    <wsdl:operation name="AccountQue">
    <wsdl:input message="tns:AccountQueInput" xmlns:ns1="http://www.w3.org/2006/05/addressing/wsdl"
    ns1:Action=""/>
    <wsdl:output message="tns:AccountQueOutput" xmlns:ns1="http://www.w3.org/2006/05/addressing/wsdl"
    ns1:Action=""/>
    </wsdl:operation>
    </wsdl:portType>
    <wsdl:binding name="SimpleServiceSoapHttp" type="tns:SimpleService">
    <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
    <wsdl:operation name="AccountQue">
    <soap:operation soapAction=""/>
    <wsdl:input>
    <soap:body use="literal"/>
    </wsdl:input>
    <wsdl:output>
    <soap:body use="literal"/>
    </wsdl:output>
    </wsdl:operation>
    </wsdl:binding>
    <wsdl:service name="SimpleService">
    <wsdl:port name="SimpleServicePort" binding="tns:SimpleServiceSoapHttp">
    <soap:address location="http://localhost:7101/WS-Project1-context-root/SimpleServicePort"/>
    </wsdl:port>
    </wsdl:service>
    </wsdl:definitions>
    In the above wsdl the collection of fintObjInst if of type xs:anytype. From the wsdl, I do not see the xsd mapping for AccountIC which includes Name and Desc. Due to which, when invoking the web service from a different client like c#(by creating proxy business service), I am unable to set the parameters for AccountIC. I am using JAX-WS stack and WLS 10.3. I have already looked at blog http://weblogs.java.net/blog/kohlert/archive/2006/10/jaxws_and_type.html but unable to solve this issue. However, at run time using a tool like SoapUI, when this wsdl is imported, I am able to see all the params related to AccountIC class.
    Can some one help me with this.
    Thanks,
    Sudha.

    Did you try adding the the XmlSeeAlso annotation to the webservice
    @XmlSeeAlso({<package.name>.AccountIC.class})
    This will add the schema for the data type (AccountIC) to the WSDL.
    Hope this helps.
    -Ajay

  • Issue with external WSDL in own Outbound interface using SOAP UI

    Hello,
    this is the issue:
    a) Imported an external WSDL to PI as external definition
    b) Added external definition to a sync. Service interface
    c) Completed configuration and created a WSDL from the sender agreement in Directory (this is PI 7.1)
    d) imported the WSDL from c) to soap UI which we are using for testing interfaces
        (already successful with other sync interface where the WSDL from c) contains a message type created in PI
    e) testing this interface results in an error:
    Error message in MONI:
    SAP:Error SOAP:mustUnderstand="1" xmlns:SAP="http://sap.com/xi/XI/Message/30" xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/">
      <SAP:Category>Application</SAP:Category>
      <SAP:Code area="MAPPING">EXCEPTION_DURING_EXECUTE</SAP:Code>
      <SAP:P1>com/sap/xi/tf/_MM_TestTrigger_Testm~</SAP:P1>
      <SAP:P2>com.sap.aii.mappingtool.tf7.IllegalInstanceExcepti</SAP:P2>
      <SAP:P3>on: Cannot create target element /ns0:props. Value</SAP:P3>
      <SAP:P4>s missing in queue context. Target XSD requires a~</SAP:P4>
      <SAP:AdditionalText />
      <SAP:Stack>Runtime exception occurred during application mapping com/sap/xi/tf/_MM_Test_Testm; com.sap.aii.mappingtool.tf7.IllegalInstanceException: Cannot create target element /ns0:props. Values missing in queue context. Target XSD requires a</SAP:Stack>
      <SAP:Retry>M</SAP:Retry>
      </SAP:Error>
    This is the message as it looks like in soapUI:
    <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:com="http://jusit.hp.com/sys/common/">
       <soapenv:Header/>
       <soapenv:Body>
          <props>
             <com:Property>
                <com:PropertyName>A</com:PropertyName>
                <com:PropertyValue>1</com:PropertyValue>
             </com:Property>
          </props>
       </soapenv:Body>
    </soapenv:Envelope>
    This is the payload in MONI as it comes from SOAP UI (using http connection):
    <?xml version="1.0" encoding="UTF-8" standalone="yes" ?><!-- Mapping der Request-Message -->
    <props xmlns:com='http://jusit.hp.com/sys/common/' xmlns:soapenv='http://schemas.xmlsoap.org/soap/envelope/'>
             <com:Property>
                <com:PropertyName>A</com:PropertyName>
                <com:PropertyValue>1</com:PropertyValue>
             </com:Property>
          </props>
    This is the payload as it looks like in Mapping Test in Enterprise Repos. from implemented ext.def.:
    <?xml version="1.0" encoding="UTF-8"?>
    <ns0:props xmlns:ns0="http://jusit.hp.com/sys/common/">
       <ns0:Property>
          <ns0:PropertyName>A</ns0:PropertyName>
          <ns0:PropertyValue>1</ns0:PropertyValue>
       </ns0:Property>
    </ns0:props>
    Is there any restriction with external definitions to be used in PI which could be the reason for this strange behaviour?
    The implementation contained a message type created in PI earlier which was running successful!
    The problem came up with the external definition!
    Thank you for your help!
    Best regards
    Dirk

    Hi,
    the problem is not the mapping as it is 1:1 with the same message on both sides.
    But when I replace the "com"s with "ns0" and "props" with "ns0:props" in the request in soap UI
    the payload will be accepted and mapping is successful!
    So the issue is about the modification soap UI is doing on the imported WSDL.
    a) Generated request in soap UI from imported WSDL:  FAILS in PI!!!!
    <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:com="http://test.ap.com/sys/common/">
       <soapenv:Header/>
       <soapenv:Body>
          <props>
             <com:Property>
                <!You may enter the following 2 items in any order>
                <com:PropertyName>?</com:PropertyName>
                <com:PropertyValue>?</com:PropertyValue>
             </com:Property>
          </props>
       </soapenv:Body>
    </soapenv:Envelope>
    b) Modified request in soap UI from imported WSDL: WILL BE PROCESSED IN PI
    <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns0="http://test.ap.com/sys/common/">
       <soapenv:Header/>
       <soapenv:Body>
          <ns0:props>
             <ns0:Property>
                <!You may enter the following 2 items in any order>
                <ns0:PropertyName>B</ns0:PropertyName>
                <ns0:PropertyValue>5</ns0:PropertyValue>
             </ns0:Property>
          </ns0:props>
       </soapenv:Body>
    </soapenv:Envelope>
    But is there any possibility to avoid this effect in soap UI?
    Regards
    Dirk

  • Issue with provided message for WSDL of SAP PI sender interface

    Hi,
    as I am not familar with SOAP interfaces and use of WSDL by partners with WSDL generated in SAP PI there are some issues that I have with a scenario:
    1. Import of external xsd for message is done
    2. Enterprise Repository and Integration Directory objects are completely created and activated
    3. WSDL was generated from ID Sender agreement (This is PI 7.1)
    4. Partner got the WSDL
    The partner provided now some test messages by mail that I would like to test in the mapping as the message is really complex.
    But the result is strange...
    1. The header of the partner message is this:
    <XJustiz_Daten xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
      <Grunddaten xmlns="http://www.xjustiz.de">
    (Some german words are in that example. But this doesn t matter!)
    This is different to the xml that PI generates in mapping:
    <?xml version="1.0" encoding="UTF-8"?>
    <ns0:XJustiz_Daten xmlns:ns0="http://www.xjustiz.de">
       <ns0:Grunddaten>
          <ns0:Grunddaten XJustizVersion="">
    Partner defines xsi:   instead of ns0   and PI fails using this message!
    So I had to change the message header and add ns0: to all element tags and node tags of the message.
    (See for example with first node "Grunddaten").
    2. There are some mandatory nodes and elements.
    An example:
    - Rechtsform is mandatory node (1..1) with element content (mandatory 1..1)
    So it will appear in the payload like this:
                        <ns0:Rechtsform>
                                <ns0:content xmlns=""/>
                         </ns0:Rechtsform>
    But the partner provides this:
    <Rechtsform xsi:nil="true" />
    which is the next issue as PI doesn t understand as xsi is not mapped to a namespace. !
    It would be easy to use an "exist" function to solve the issue with the not provided element but this will not help
    when the node is provided with additinal information xsi:....
    Can you give any help/answer why PI is not able to handle such things.
    Thank you!
    Best regards
    Dirk

    Hello Meinhard,
    If you are the Service Owner, the sender system must use your wsdl message (WebService Definition).
    If there're other problems or the sender system can't use your message structure, in agreement with them you need to develope a different mapping.

  • AquaLogic Service Bus Perspective - WSDL Files with External Schemas

    I am using the AquaLogic Service Bus Perspective in WebLogic Workshop to create my proxy services, business services, wsdls, schemas, etc. I have a wsdl that imports a schema based on its registered namepsace...not its schemaLocation. This works fine in the ALSB console, but in the WebLogic Workshop perspective, I cannot Publish my WSDL because the WSDL is not aware of any global resources...such as this Schema definition that is external to the WSDL. How do you make Globally aware resources in WebLogic Workshop? The same thing works in through the ALSB Web-based console...but that same file produces a wsdl validation error in my IDE because it has no idea about that schema.
    Thanks -jay

    Thanks to both of you who replied to my question - it is very much appreciated
    We had a theory that you could just store everything under 'sbconfig' in CVS and restore it - but I thought that might be a bit hacky and less upgrade resistant.
    Do you use build scripts for setting up dev/qa/prod endpoints because 'customisation files' are new or did you find a problem with 'customisation files' that made you resort to using a build script?
    We were hoping to have some process like
    Export JAR
    Export Customisation File for Dev/QA/Prod
    In Dev, we import the JAR + dev customisation file
    In QA, we import the JAR + QA customisation file
    In Prod, we import the JAR + prod customisation file
    I know I have no chance, but you wouldn't care to share said document for my reading (not copying) pleasure? No worries if you don't :)
    Thanks for your comments guys :)
    Dan.
    just in case
    email is daniel prosser at gmail com
    dots between my name and com
    Edited by dan_prosser at 08/14/2007 6:33 PM

  • Issue with weblogic.jar parsing the wsdl

    Hi,
    Here is a very small program, for which i am facing the problem of getting the
    types from the wsdl. It works fine, as standalone....You do not have to deploy
    the code any where..just have weblogic.jar in the classpath. It does not work.
    It works when weblogic.jar is not in the classpath..any help is GREATLY APPRECIATED...
    java.wsdl.Types from the java.wsdl.Definition object and the schema in the types
    is null ( when weblogic.jar is present in the
    I am always getting null in the schema (
    import javax.wsdl.Definition;
    //import weblogic.soap.wsdl.binding.Definition;
    import javax.wsdl.xml.WSDLReader;
    import javax.wsdl.factory.WSDLFactory;
    public class Test {
    Definition definition = null;
    public static void main(String args[] ) {
    Test test = new Test();
    test.parseWSDL(args[0]);
    public void parseWSDL(String WSDLName)
    try
    WSDLFactory wsdlFactory = WSDLFactory.newInstance();
    WSDLReader wsdlReader = wsdlFactory.newWSDLReader();
    wsdlReader.setFeature("javax.wsdl.verbose",false);
    wsdlReader.setFeature("javax.wsdl.importDocuments",true);
    definition = wsdlReader.readWSDL(WSDLName);
    System.out.println("-----------" + definition.getTypes() );
    catch( Exception e ) {
    System.out.println("Exception" + e ); }
    Thank for your help.
    Nag

    Hi Nag,
    With little reference to Sir Walter Scott, it would be a very tangled
    web we weave in an attempt to factor out the inter-relationships of
    javax interfaces that are hindering your effort. All to say, we don't
    currently support JSR 110 (javax.wsdl.*) and it is not on the near term
    horizon.
    Have you considered using autotype [1]?
    Regards,
    Bruce
    [1]
    http://edocs.bea.com/wls/docs81/webserv/anttasks.html#1080062
    Nag wrote:
    >
    Hi,
    Here is a very small program, for which i am facing the problem of getting the
    types from the wsdl. It works fine, as standalone....You do not have to deploy
    the code any where..just have weblogic.jar in the classpath. It does not work.
    It works when weblogic.jar is not in the classpath..any help is GREATLY APPRECIATED...
    java.wsdl.Types from the java.wsdl.Definition object and the schema in the types
    is null ( when weblogic.jar is present in the
    I am always getting null in the schema (
    import javax.wsdl.Definition;
    //import weblogic.soap.wsdl.binding.Definition;
    import javax.wsdl.xml.WSDLReader;
    import javax.wsdl.factory.WSDLFactory;
    public class Test {
    Definition definition = null;
    public static void main(String args[] ) {
    Test test = new Test();
    test.parseWSDL(args[0]);
    public void parseWSDL(String WSDLName)
    try
    WSDLFactory wsdlFactory = WSDLFactory.newInstance();
    WSDLReader wsdlReader = wsdlFactory.newWSDLReader();
    wsdlReader.setFeature("javax.wsdl.verbose",false);
    wsdlReader.setFeature("javax.wsdl.importDocuments",true);
    definition = wsdlReader.readWSDL(WSDLName);
    System.out.println("-----------" + definition.getTypes() );
    catch( Exception e ) {
    System.out.println("Exception" + e ); }
    Thank for your help.
    Nag

Maybe you are looking for