Missing namespace prefix in the soap body

Hello
The soap body that is produced along with soap header for my webservice. I
am the client talking to a server. The first piece in RED color is what
weblogic generates to send to the client but does NOT work. The one below
though works fine which is what I manipulated by hand to send to the
server. I have no idea why weblogic drops the namespace prefix in the
BODY.
-Narahari
The message is as shown below
POST /FS HTTP/1.1
Host: asgappsrv10:6211
Content-Type: text/xml; charset=utf-8
Connection: close
SOAPAction: "ListDomains"
<?xml version="1.0" encoding="utf-8"?>
<env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<env:Header>
<n1:Credentials xmlns:n1="urn:criticalpath:fs:api:1.0"
xsi:type="n1:Credentials">
<Username xsi:type="xsd:string">admin@default</Username>
<Password xsi:type="xsd:string">password</Password>
<SessionId xsi:nil="true"/>
</n1:Credentials>
</env:Header>
<env:Body
env:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<Fulfill xmlns:n2="urn:criticalpath:fs:api:1.0"
xsi:type="n2:Fulfill">
<Request xsi:type="xsd:string">ListDomains</Request>
<RequestAttributes soapenc:arrayType="n2:Attribute[0]"/>
<Async xsi:type="xsd:boolean">false</Async>
</Fulfill>
</env:Body>
</env:Envelope>
When you see the data carefully, the env:Body has the Fulfill element. But
it does have a namespace prefix on it. This causes the call to fail. If I
change the above segment manally to look like
POST /FS HTTP/1.1
Host: asgappsrv10:6211
Content-Type: text/xml; charset=utf-8
Connection: close
SOAPAction: "ListDomains"
<?xml version="1.0" encoding="utf-8"?>
<env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<env:Header>
<n1:Credentials xmlns:n1="urn:criticalpath:fs:api:1.0"
xsi:type="n1:Credentials">
<Username xsi:type="xsd:string">admin@default</Username>
<Password xsi:type="xsd:string">password</Password>
<SessionId xsi:nil="true"/>
</n1:Credentials>
</env:Header>
<env:Body
env:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<n2:Fulfill xmlns:n2="urn:criticalpath:fs:api:1.0"
xsi:type="n2:Fulfill">
<Request xsi:type="xsd:string">ListDomains</Request>
<RequestAttributes soapenc:arrayType="n2:Attribute[0]"/>
<Async xsi:type="xsd:boolean">false</Async>
</n2:Fulfill>
</env:Body>
</env:Envelope>

Hi All,
we are also facing the same issue, Please provide the solution if anyone knows. We are also using the SOA Suite 11g Version.

Similar Messages

  • Remove namespace prefix with the XMLAnonymizerBean is possible at SOAP Adap

    Hello,
    I am wondering is it possible Remove namespace prefix with the XMLAnonymizerBean at SOAP Receiver Adaptor?
    Thanks

    Hi Rajiv,
    Pl. go through this blog:
    /people/stefan.grube/blog/2007/02/02/remove-namespace-prefix-or-change-xml-encoding-with-the-xmlanonymizerbean
    Also if you want to use this at sender side, SOAP adapter will not support. Please check stefans reply in this thread:
    XMLAnonymizerBean doesnt work
    Regards,
    ---Satish

  • Namespace Prefix in the Root Element of the variable

    Hi Gurus,
    We need to call a webservice which requires a namespace prefix at the root elemnt of the xml payload. But as we know that the default behaviour of BPEL removes the prefix so the invoke activity is failing and so we are stuck.
    I found this thread Namespace prefix in Root element missing during variable assignment but i feel the solution specified in this link works only in SOA 10g environment Please let us know what needs to be done?
    Appreciate a prompt response.
    NOTE: SOA Suite Version- 11.1.1.4
    Regards
    Ayush

    Hi All,
    we are also facing the same issue, Please provide the solution if anyone knows. We are also using the SOA Suite 11g Version.

  • Extract fields from the SOAP body during mapping

    Hi all,
    I have an Abap Proxy to SOAP scenario with a main payload and an attachment. During mapping I need the reference of the attachment to store the reference in the main payload. I don't need the attachment itself.
    SOAP-Body:
      <?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
    - <!--  Eingangs-Message
      -->
    - <SAP:Manifest xmlns:SAP="http://sap.com/xi/XI/Message/30" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:wsu="http://www.docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" wsu:Id="wsuid-manifest-5CABE13F5C59AB7FE10000000A1551F7">
    - <SAP:Payload xlink:href="cid:payload-E742FF47D930DE5CE1000000C107826A @sap.com">
      <SAP:Name>MainDocument</SAP:Name>
      <SAP:Description />
      <SAP:Type>Application</SAP:Type>
      </SAP:Payload>
    - <SAP:Payload xlink:href="cid:payload-EE42FF47D930DE5CE1000000C107826A @sap.com">
      <SAP:Name>hugo.txt</SAP:Name>
      <SAP:Description />
      <SAP:Type>ApplicationAttachment</SAP:Type>
      </SAP:Payload>
      </SAP:Manifest>
    I need the attachment reference as string inside my main payload: cid:payload-EE42FF47D930DE5CE1000000C107826A @sap.com
    I wrote an user defined function to select the MessageId, but the MessageId is only part of the reference to the main payload.
    String constant;
    java.util.Map map;
    map = container.getTransformationParameters();
    constant = (String) map.get(StreamTransformationConstants.MESSAGE_ID);
    return constant;
    Has anybody an idea to get the reference of the attachment from the SOAP body with an user defined function or an adapter module?
    Thanks and kind regards
    Frank

    Hello,
    thank you all for the information. I found a solution for my problem on the sender side. I wrote an own helper class with  the method create_attach_from_txt_withref. This method  build an attachment with an own reference and write the reference back to the payload.
    This reference will not be changed within the execute_asynchronous method of the proxy.
    Method parameters:
    P_DATA        Importing   Type     STRING
    P_TYPE        Importing   Type     STRING
    P_NAME        Importing   Type     STRING
    P_ATTACHMENT  Exporting   Type Ref IF_AI_ATTACHMENT
    P_AREF        Exporting   Type     STRING
    Method coding:
    METHOD create_attach_from_txt_withref.
      DATA: lo_attachment TYPE REF TO cl_ai_attachment,
            l_payload     TYPE REF TO if_xms_payload,
            l_pref        TYPE        sxms_mf_s,
            l_guid        TYPE        guid_32,
            l_aref        TYPE        string.
      CLASS cl_ai_factory DEFINITION LOAD.
    " create the attachment
      p_attachment = cl_ai_factory=>create_attachment_from_text(
                    p_data = p_data             " attachment data
                    p_type = p_type             " attachment type
                    p_name = p_name ).          " attachment name
    " we need an implementing class of the interface if_ai_attachment
      lo_attachment ?= p_attachment.
    " get the new payload
      l_payload = lo_attachment->get_payload( ).
    " get the reference of the payload
      l_pref = l_payload->getreference( ).
    " build an own reference
      CALL FUNCTION 'GUID_CREATE'
        IMPORTING
          ev_guid_32 = l_guid.
      CONCATENATE 'payload-' l_guid '@sap.com' INTO l_aref.
      CONCATENATE 'cid:'     l_aref            INTO l_pref-href.
    " set our own reference
      l_payload->setreference( reference = l_pref ).
    " write back the modified payload
      lo_attachment->set_payload( p_payload = l_payload ).
    " return of the reference
      p_aref = l_aref.
    ENDMETHOD.
    If anybody has an idea how to read the soap body within an adapter module please let me know.
    Regards
    Frank

  • Content of the soap body

    I've this wsdl taken from the wsdl specification documentation.
    <?xml version="1.0"?>
    <definitions name="StockQuote"
    targetNamespace="http://example.com/stockquote.wsdl"
    xmlns:tns="http://example.com/stockquote.wsdl"
    xmlns:xsd1="http://example.com/stockquote.xsd"
    xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
    xmlns="http://schemas.xmlsoap.org/wsdl/">
    <types>
    <schema targetNamespace="http://example.com/stockquote.xsd"
    xmlns="http://www.w3.org/2000/10/XMLSchema">
    <element name="TradePriceRequest">
    <complexType>
    <all>
    <element name="tickerSymbol" type="string"/>
    </all>
    </complexType>
    </element>
    <element name="TradePrice">
    <complexType>
    <all>
    <element name="price" type="float"/>
    </all>
    </complexType>
    </element>
    </schema>
    </types>
    <message name="GetLastTradePriceInput">
    <part name="body" element="xsd1:TradePriceRequest"/>
    </message>
    <message name="GetLastTradePriceOutput">
    <part name="body" element="xsd1:TradePrice"/>
    </message>
    <portType name="StockQuotePortType">
    <operation name="GetLastTradePrice">
    <input message="tns:GetLastTradePriceInput"/>
    <output message="tns:GetLastTradePriceOutput"/>
    </operation>
    </portType>
    <binding name="StockQuoteSoapBinding" type="tns:StockQuotePortType">
    <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
    <operation name="GetLastTradePrice">
    <soap:operation soapAction="http://example.com/GetLastTradePrice"/>
    <input>
    <soap:body use="literal"/>
    </input>
    <output>
    <soap:body use="literal"/>
    </output>
    </operation>
    </binding>
    <service name="StockQuoteService">
    <documentation>My first service</documentation>
    <port name="StockQuotePort" binding="tns:StockQuoteBinding">
    <soap:address location="http://example.com/stockquote"/>
    </port>
    </service>
    </definitions>
    I developed the service implementation and a service client using wsimport, jaxb, jaxws.
    Trying running the client I get the exception:
    Cannot find dispatch method for {http://example.com/stockquote.xsd}TradePriceRequest
    Running the message request generated by soapUI has the same effect.
    The soap message request generated by soapUI, given the above WSDL, is:
    <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:stoc="http://example.com/stockquote.xsd">
    <soapenv:Header/>
    <soapenv:Body>
    <stoc:TradePriceRequest/>
    </soapenv:Body>
    </soapenv:Envelope>
    but in the wsdl spec it should be:
    <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
    <soapenv:Body>
    <m:GetLastTradePrice xmlns:m="Some-URI">
    <m:tickerSymbol>DIS</m:tickerSymbol>
    </m:GetLastTradePrice>
    </soapenv:Body>
    </soapenv:Envelope>
    In other word, the content of the soap body should be the wsdl operation or the complex type representing the input part?

    I am a newbie, so I don't know if my reply will be helpful.
    Reading the fault "Cannot find dispatch method for {http://example.com/stockquote.xsd}TradePriceRequest", I think the problem is that TradePriceRequest is a type for a message and it is treated as an operation. The content of the SOAP message should be the operation (GetLastTradePrice) and nested inside the operation should be the parameters for the operation (the complex type...). So the answer is probably "both", one inside the other.
    I think that the message as you wrote it:
    <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
    <soapenv:Body>
    <m:GetLastTradePrice xmlns:m="Some-URI">
    <m:tickerSymbol>DIS</m:tickerSymbol>
    </m:GetLastTradePrice>
    </soapenv:Body>
    </soapenv:Envelope>
    is correct.

  • Error_: ACS10002: An error occurred while processing the SOAP body

    Hi all,
    We have problem to connect MSCRM online via SDK since yesterday.   All of our MSCRM Online organizations have this issue.  Anyone has the same issue?  
    Error : ACS10002: An error occurred while processing the SOAP body. ACS50000: There was an error issuing a token. ACS50005: Token encryption is required but no encrypting certificate is configured for the relying party.
    Gary

    This is a server side webcache from the OTN site. Not anything client-related. Its a bug that cannot be fixed at this time as OTN is on an EOL version of software. The good news is that most of OTN is moving to a new CMS on the 19th and these errors will disappear.
    In the meantime, if you add a parameter refresh to the URL you get the error on, most of the time, you can get the page back. Parameter refresh is done by adding ?a=b to the end of the URL. You can keep changing the combo too. (i.e. ?c=d)

  • /BI0/ is not a valid namespace prefix for the organizational criterion

    Hi all,
    I'm getting the below error message when trying to transport 0bpartner that has a 0ORGUNIT as an attribute. I have come across some OSS notes, but those are not applicable to us. I was not able to implement the note is our system.
    We are on 7.3 SP5
    The error mesage is the following:
    Start of the after-import method RS_IOBJ_AFTER_IMPORT for object type(s) IOBJ ( )
    /BI0/ is not a valid namespace prefix for the organizational criterion
    Error SV 771 during after import handling of objects with type(s) IOBJ
    End of after import methode RS_IOBJ_AFTER_IMPORT (Aktivierungsmodus) - runtime: 00:12:19
    Any insight would be appreciated.
    Thanks,
    Voodi

    voodi wrote:
    Hi all,
    >
    > I'm getting the below error message when trying to transport 0bpartner that has a 0ORGUNIT as an attribute. I have come across some OSS notes, but those are not applicable to us. I was not able to implement the note is our system.
    >
    > We are on 7.3 SP5
    >
    >
    > The error mesage is the following:
    >
    >  Start of the after-import method RS_IOBJ_AFTER_IMPORT for object type(s) IOBJ ( )
    >  /BI0/ is not a valid namespace prefix for the organizational criterion
    >  Error SV 771 during after import handling of objects with type(s) IOBJ
    >  End of after import methode RS_IOBJ_AFTER_IMPORT (Aktivierungsmodus) - runtime: 00:12:19
    >
    >
    > Any insight would be appreciated.
    >
    > Thanks,
    > Voodi
    Hi Voodi,
    I strongly think this could be a authorzaiton issue.
    Have you checked the error log? More references : http://goo.gl/9554m ; SAP Note 731973
    Methods
    1. Activate and adjust table /bi0/pbpartner
    2. Activate and adjust table /bi0/morgunit
    3.Run program RSDG_IOBJ_ACTIVATE
    4 Repair info object using program RSDG_IOBJ_REORG
    5. If none of the above help run the program RSDMD_CHECKPRG_ALL with repair mode checked for 0ORGUNIT.
    Possible cases:
    1. Goto RSRV - SID Values in X and Y Tables for 0BPARTNER. If not try activation using RSDG_IOBJ_ACTIVATE
    2. Check changes : If you add new objects to 0BPARTNER then you should also collect that newly added object , collecting only 0BPARTNER is not enough.
    3. If 0BPARTNER is inactive in Q, pls collect it in a request and try to re transport and check.
    Best Regards, @{

  • Adding namespace prefix to the XMLa root element

    I am facing a problem in our application. I am assigning an XML content to a XSD variable. While assignment operation is performed the prefix of the XML root element alone is getting replaced with default namespace, though the source XML has the prefix. Please let me know if any patch or workaround is available to address this issue.
    Thanks!

    Hi All,
    we are also facing the same issue, Please provide the solution if anyone knows. We are also using the SOA Suite 11g Version.

  • Encryp and sign the SOAP Body in 8.1 SP2

    Hi,
    I have deployed a web service with security enabled for encrypting, signing and requires username token.I have written a client for the service and it works fine with 8.1 SP3.
    when i build the same app with 8.1 SP2 and deploy it gets deployed and everything is fine until the client invokes the service. I can see the request SOAP message going properly with a tunneling tool, but i get this error in the response.
    <env:Fault>
    <faultcode>env:Server</faultcode>
    <faultstring>Exception during processing: weblogic.utils.AssertionError: ***** ASSERTION FAILED *****[ Unable to secure response ] - with nested exception:[weblogic.xml.stream.XMLStreamException: Object not initialized. - with nested exception:[weblogic.xml.security.encryption.EncryptionException: Object not initialized. - with nested exception:[com.rsa.jsafe.JSAFE_InvalidUseException: Object not initialized.]]] (see Fault Detail for stacktrace
    Any Idea what would be wrong ? Does SP2 support WS Security ?
    regards,
    Arun

    Hi,
    i contacted BEA support and gotto know that this is a known issue.
    There was a bug when Message Level Security was enabled for Web Services in WLS 81sp2. If the request message exceeded a certain size, WebLogic Server was throwing the JSAFE_InvalidUseException when trying to encrypt the response.
    The buffer size was increased to accommodate large request messages and allow their encryption. As a result, WLS 81 sp4 no longer throws the JSAFE_InvalidUseException when trying to encrypt a large request message.
    There is a patch available for sp2, i got the patch CR190527_810sp2.jar and applied it. It works fine now.
    thanks
    Arun

  • Syntax error 1158: missing left brace({) before the function body as3

    hey guys  PLEASE help ME i have looked everywhere and can't find a thing on how to fix it
    stop();
    btnHelp.addEventListener(MouseEvent.CLICK, GoToScene2);
    btnMap.addEventListener(MouseEvent.CLICK, GoToScene3a);
    function GoToScene2(event)GoToScene3a(event){
    gotoAndPlay("meow")
    gotoAndPlay(1,"Scene 3a")

    You have two functions mashed together...
         function GoToScene2(event)GoToScene3a(event){
              gotoAndPlay("meow")
              gotoAndPlay(1,"Scene 3a")
    should be....
              function GoToScene2(event:MouseEvent):void  {          gotoAndPlay("meow")
         function GoToScene3a(event:MouseEvent):void  {
              gotoAndPlay(1,"Scene 3a")

  • JDeveloper 10.1.3 - Disabling ns0: namespace prefix in soap body children ?

    I am attempting to use a PeopleSoft web service. However, the PeopleSoft web service does not recognize operations which have a namespace prefix. Using visual studio, namespace prefixes are not used in the child elements of the soap body element. I am able to call the service using visual studio.
    JDeveloper 10.1.3 uses a namespace prefix for children of the body element which is recommended by the soap spec. However, I need to disable that behavior so that I can actually get the program working with PeopleSoft.
    Can anyone tell me if there is an easy way to disable the ns0: prefix that is used by the generated web service proxy stub? I have traced through the generated proxy code but I do not see any properties that can be modified. The only thing I can think of is to modify the generated code but I do not want to go that route.
    Thanks,
    Rich

    Delete the NS0: related text, in JDev, from your WSDL and it should work. I had the same problem with .NET not liking it also.
    Keep in mind you'll have to tweak the WSDL again if you regenerate it.
    You sure you're using 10.1.3? I upgraded and it shows the NS0: as a problem in existing projects. I'm working on the latest, production download so maybe it's been corrected.

  • Changing the namespace prefix in OSB body content

    I would like to change the namespace prefix of the namespace in the content of the Body in OSB (Replacing g: with dg:)
    For example:
    <g:Information>
    <g:firtName>John<g:firstName>
    <nc:date>1970-01-01<nc:date>
    </g:Information>
    should become
    <dg:Information>
    <dg:firtName>John<dg:firstName>
    <nc:date>1970-01-01<nc:date>
    </dg:Information>
    Any idea how can I do this?

    Re: Namespace replace/rename issue in ALSB
    Regards,
    Anuj

  • How to add exactly 2 NON XML caracters at the end of a SOAP body

    Hello all I am trying to add two (and only two) extra non xml caracters "AA" at the END of a SOAP body using the JAXWS handlers as so:
    HTTP/1.1 200 OK
    Content-Type: text/xml;charset=UTF-8
    Content-Length: 131
    Content-Length: 131
    Server: Jetty(7.x.y-SNAPSHOT)
    <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"><SOAP-ENV:Body></SOAP-ENV:Body></SOAP-ENV:Envelope>
    AA
    The problem is that if you try to add them to the SOAP body (see code below) you get a XML Unmarshalling exception. If I add "AA" as a soap attachment I get MORE than 2 caracters after the SOAP body (which I don't want)
    Here is the my SOAPHandler code :
    @Override
    public boolean handleMessage(SOAPMessageContext mc) {
    if (Boolean.TRUE.equals(mc.get(MessageContext.MESSAGE_OUTBOUND_PROPERTY))) {
    try {
    SOAPMessage message = context.getMessage()
    String stringSoapMessage= getMsgAsString(message);
    stringSoapMessage += "ss";
    message.getSOAPPart().setContent((Source) new StreamSource(new ByteArrayInputStream(msg.getBytes())));
    message.saveChanges();
    context.setMessage(message);
    } catch (Exception e1) {
    return true;
    public String getMsgAsString(SOAPMessage message) throws SOAPException {
    String msg = null;
    try {
    ByteArrayOutputStream baos = new ByteArrayOutputStream();
    message.writeTo(baos);
    msg = baos.toString();
    } catch (Exception e) {
    e.printStackTrace();
    return msg;
    so my question is this: is there any way to add exactly 2 non xml caracters at the end of the soap body using jaxws handlers ? I have spent several weeks on this so it is not an easy question...
    Thanks,
    Fred.

    Yes I have done it using CFX interceptors. But the runtime dependencies needed were too big for this particular use. I mean having to use these:
    apache/cxf/cxf-bundle/2.6.0/cxf-bundle-2.6.0.jar
    org/apache/neethi/neethi/3.0.2/neethi-3.0.2.jar                    
    wsdl4j/wsdl4j/1.6.2/wsdl4j-1.6.2.jar
    /org/codehaus/woodstox/wstx-asl/3.2.4/wstx-asl-3.2.4.jar
    org/apache/ws/xmlschema/xmlschema-core/2.0.2/xmlschema-core-2.0.2.jar
    org/mortbay/jetty/jetty-util/6.0.2/jetty-util-6.0.2.jar
    org/eclipse/jetty/jetty-util/7.5.4.v20111024/jetty-util-7.5.4.v20111024.jar
    org/apache/geronimo/specs/geronimo-servlet_2.5_spec/1.1.2/geronimo-servlet_2.5_spec-1.1.2.jar
    org/apache/geronimo/specs/geronimo-javamail_1.4_spec/1.7.1/geronimo-javamail_1.4_spec-1.7.1.jar
    org/apache/geronimo/specs/geronimo-servlet_3.0_spec/1.0/geronimo-servlet_3.0_spec-1.0.jar
    org/eclipse/jetty/jetty-http/7.5.4.v20111024/jetty-http-7.5.4.v20111024.jar
    org/eclipse/jetty/jetty-server/7.5.4.v20111024/jetty-server-7.5.4.v20111024.jar
    org/eclipse/jetty/jetty-io/7.5.4.v20111024/jetty-io-7.5.4.v20111024.jar
    org/eclipse/jetty/jetty-continuation/7.5.4.v20111024/jetty-continuation-7.5.4.v20111024.jar
    to add two caracters at the end of a soap message seems like over kill. If this is the only way to do this then i'll do it this way but it just seems like the implementation of the JAXWS API in JDK 6 seems inches away from being able to do this no ?
    Thanks for the replies,
    Fred

  • Conversion Agent - Namespace prefix missing

    Hi Guys,
    Trying to use CA to convert a flat file to nested XML. I managed to succesfuly build a script that converts the flat file to XML.
    The problem I am facing here is that, the converted XML is not having a namespace prefix and hence my mappings fail.
    Can you please let me know if there is some setting which allows me to add the namespace prefix in the output XML generated?
    Thanks
    Jai
    Just a bump
    Edited by: Jaishankar on Mar 12, 2010 10:09 AM

    In your TGP file you have one option "allow_empty_values".
    Use that for optional fields.
    example will be as below :
    Content<optional, allow_empty_values>(OffsetSearch(StaticInt()), TextSearch(StaticString("")), null_searcher, XPath("/X12/s/s1/TS_850/s/REF/*s/REF02")),

  • Can SOAP body have multiple immediate children without splitting the msg

    We have a vendor we need to send a SOAP message to, but they require the SOAP body have two different immediate children.  In graphical mapping this doesn't seem to be possible. 
    If we create separate external definitions for each, then they would become separate target messages once added to a message mapping.  If we try to combine the XSDs into one, import it as an external definition, and add it to the mapping, It prompts us to choose one of the elements of the external def from the top level.  The only way to choose a second is to add another, which again results it two separate target messages.
    Is our vendor's request compliant with W3C standards?  If so, is this just a limitation of graphical mapping and what are the most common workarounds in PI?

    >>If we create the SOAP envelope with our mapping, then does that affect the ability to use the SOAP adapter to provide a digital signature?
    This is what I would do. Consider synchronous scenario. If you sign the message digitally and send it to system A (say outbound)  and you need to have the same soap message structure (inbound)  during signature verification. Otherwise signature verification process will fail.
    Do as follow
    Outbound
    A) First mapping: Adding soap envelope  using (XSLT mapping) or java mapping or any way
    B) Second mapping: Signing the message using digital signature via java mapping
    Inbound
    First mapping should be digital signature verify using java mapping
    if the requirement to remove/modify saop envelope on the inbound side or any changes in structure only after the signature verification

Maybe you are looking for