Re: Describe input xml

Anamitra,
I didn't get a chance to work on this issue.
From my understanding I have quickly created a test wsdl and test xsd.
I don't know whether it will work. I have not tested it. It needs many
corrections.
Take a look at the attached wsdl and xsd and let me know your suggestion.
Scenario:
1. Exposed method:
public String requestPurchaseOrder(String poXML)
2. poXML should be of type po.xsd
3. Validation - ?? No Idea. For now manual validation.
I guess we both have similar requirement, if you get it working before me,
please post your finding.
Thanks,
Karthik.
"Anamitra" <[email protected]> wrote in message
news:[email protected]...
>
Hi karthik
I still dont get how the poXML can be represented by a schema in a WSDL.Can you
give me a sample wsdl for that?
Thanks
Anamitra
"Karthik V" <[email protected]> wrote:
Manoj:
Sorry, I got confused when you said, "the runtime will strip the xml
tags".
After your explanation, I understand that the runtime is actually going
to
perform some conversion without any loss of data.
To conclude, logically,
public void test(String poXML) is valid, and poXML can be represented
by
a schema definition.
When I get a chance, I'm going to create a quick example of this use
case
and post it.
Thanks,
/k
"manoj cheenath" <[email protected]> wrote in message
news:[email protected]...
java.lang.String is mapped to xsd:string which means the xml
should look like:
<foo xsi:type=xsd:string >sometext without any xml tags</foo>
So if there are xml tags inside the string you passed
in, runtime need to replace the tags with > and
<.
On the other end the runtime will again replace
etc back to < or >. So you will get back theright XML. But on the wire it will be plain text
not XML.
So, if you dont want to convert to string, then you should use
javax.xml.soap.SOAPElement or org.w3c.Element as
your parameter type instead of java.lang.String.
http://manojc.com
"Karthik V" <[email protected]> wrote in message
news:[email protected]...
Manoj:
I do not understand how the runtime will strip the xml.
I think Anamitra's requirement of:
public void test(String poXML)
is very valid and a simple requirement.
Infact, my requirement too is similar..
1. Expose a method which takes in a String object.
2. Define how the String is going to look like (using xsd).
3. Instead of defining the schema in WSDL, we would like to import
the
schema and use it.
4. Later use the schema to validate the incoming request.
In real time most of us would like to work with String because ofits
simplicity.
Is there any reason why the implementation for such a simple usecase is
so
confusing?
/k
"manoj cheenath" <[email protected]> wrote in message
news:[email protected]...
public void test( String poXML )
is not the best solution for you, i think, because
in this case the runtime will strip the xml tags
inside poXML. so the envelope will look like:
<m:my-method>
<poXML>sdfjds >some thing < something else...</poXML>
</m:my-method>
instead of:
<m:my-method>
<poXML>some thing <foo> something else</foo></poXML>
</m:my-method>
Will that be ok for you? Else, you can use DOM or
javax.xml.soap.SOAPElement:
public void test( org.w3c.Dom poXML );
It looks like there is bug in WLS 7.0.2. The CR for this
is CR104719. Please contact support if you need a patch.
If you do clientgen on the WSDL, it is going to generate
the classes (value types) for you. It looks like you do not
want to do data binding. Take a look at DII client with generic
type-mapping. Will this help you?
package examples.jaxrpc.call5;
import java.net.URL;
import javax.xml.soap.SOAPConstants;
import javax.xml.rpc.ServiceFactory;
import javax.xml.rpc.Service;
import javax.xml.rpc.Call;
import javax.xml.rpc.ParameterMode;
import javax.xml.namespace.QName;
import javax.xml.rpc.encoding.TypeMapping;
import javax.xml.rpc.encoding.TypeMappingRegistry;
import javax.xml.soap.SOAPElement;
import weblogic.webservice.encoding.GenericTypeMapping;
import weblogic.webservice.core.soap.SOAPElementImpl;
public class MSInterop{
public static void main( String[] args ) throws Exception{
//dont parse wsdl till we set the typemapping
System.setProperty( "weblogic.webservice.servicenamechecking",
"false" );
//create service factory
ServiceFactory factory = ServiceFactory.newInstance();
//define qnames
String targetNamespace = "http://soapinterop.org/";
QName serviceName = new QName( targetNamespace, "SimpleTest"
QName portName = new QName( targetNamespace, "SimpleTestSoap");
QName operationName = new QName( "http://soapinterop.org/",
"echoStruct" );
URL wsdlLocation = new URL(
"http://www.mssoapinterop.org/asmx/simple.asmx?WSDL" );
//create service
Service service = factory.createService( wsdlLocation,serviceName );
TypeMappingRegistry registry =
service.getTypeMappingRegistry();
>>>>>
registry.register( SOAPConstants.URI_NS_SOAP_ENCODING,
new GenericTypeMapping() );
//create call
Call call = service.createCall( portName, operationName );
//construct struct
SOAPElement elem = new SOAPElementImpl( "inputStruct", null,null );
elem.addChildElement( "varInt" ).addTextNode( "1" );
elem.addChildElement( "varString" ).addTextNode( "samplestring" );
elem.addChildElement( "varFloat" ).addTextNode( "2.2" );
System.out.println( elem );
try{
SOAPElement res = (SOAPElement)call.invoke(new Object[]{elem } );
System.out.println( res );
}catch( javax.xml.rpc.JAXRPCException e ){
e.printStackTrace();
e.getLinkedCause().printStackTrace();
Call echoFloat = service.createCall( portName,
new QName( "http://soapinterop.org/", "echoFloat" ) );
System.out.println( echoFloat.invoke( new Object[]{new
Float(100.0)} ) );
http://manojc.com
"Anamitra" <[email protected]> wrote in message
news:[email protected]...
Hi Bruce
I think the wsdl that you sent was very near to what I was
looking
for.
But I
would try to make the requirement more clear: The points below
are
listed
in order
of priority:
1>First and foremost I am looking to create a Webservice such
that
it
exposes
a method which takes in a java.lang.String
public void test(String poXML)
But in the WSDL I want to show the user the schema definition
for
the
po
XML.
And would desire that the Webservices framework do the schema
validation
of the
incoming xml. But I dont thing this works as the wsdl generated
always
says the
type is "xsd:string". So I started looking into the 2nd option:
2>Create a doc/literal type service and expose that method as:
public void test(POXMLBean poXML)
This generated the reqd schema in the wsdl level but the client
is
being
forced
to use the POXMLBean to invoke the method. I would ideally want
the
client
to
just deal with the XML of the pobean as described in the
generated
schema
definition.
For example the client using JAXRPC should be say doing the code
like
this:
String poXML = "<po> <order>000</order> </po>"
call.invoke(poXML").
Is this possible? I am not able to do this. My primary important
thing
is
that
the client has to deal with XML and not with anything else. The
client
shouldnot
have to deal with POXMLBean. This is what I am trying to acheive
and
not
able
to.
3> So that leaves me to the last option which is not that good:
ie I keep my original approach:
public void test(String poXML)
and somehow via wsdl:documentation say that the schema for this
poXML
is
this...
But I cannot change the type in the parameter poXML from
xs:string
right?
Bottom line is there any way for the client to pass string/byte[]
xml
data
to
the webservice - but still be able to look into the WSDL and
see
what
the
reqd
XML structure should be? I thought doc/literal should do it -
but
using
weblogic
I am not able to do it. Can u help me with this pls.
thanks
Anamitra
Bruce Stephens <[email protected]> wrote:
Hello,
See what you think of this example of using import. It seems
to
describe your exact use case:
http://www.ws-i.org/SampleApplications/SupplyChainManagement/2002-08/Retai
l
er.wsdl
(Disclaimer, anyone could have found this via public UDDI.)
The issue I believe that Anamitra sees is the gap between the
runtime
and the toolset.
Bruce
Anamitra wrote:
Hi Karthik
I am a bit confused as to what you mean when u say "import".
The
generated
webservices.xml
contains a <types> and a <type-mapping> element. I suppose
u r
asking
me to put
the xsd definition in the <types> section - right?
If the method is like this:
public String doit(String msg)
How do I attach the <xs:string> type "msg" to the actual
XML
schema
that I just
imported?
I dont know whether I am asking stupid questions or not -
but I
would
have ideall
liked to see my "msg" of type say "PurchaseOrder" which is
the
schema
that I imported.
And the external client should just be able to give the
"PurchaseOrder"
xml to
the Webservice and invoke the "doit" method.
Am I making any sense?
thanks
Anamitra
"Karthik V" <[email protected]> wrote:
I doubt if servicegen has any option for doing it
automatically.
You should manually edit web-services.xml and import thexsd.
/k
"Anamitra" <[email protected]> wrote in message
news:[email protected]...
Hi Karthik/Bruce
Can you pls explain to me how using weblogic tools
[servicegen]
one
can
include
the xsd pointers in the WSDL file.
We have a similar kind of requirement where we have
webservices
which
take
in
string [XML data] as a parameter and the WSDL only shows
method
parameter
types
as xsd:string - but we want to show something like a schema
definition.
So
if
there is anyway to put the schema definition in the WSDL
- pls
let
me know
that
would be very very helpful.
thanks
Anamitra
"Karthik V" <[email protected]> wrote:
Bruce,
Thanks for your response. That helped.
I have another question for you.
I know this would sound strange.
But my requirement is to expose a session bean method
that
could
take
different xml inputs.
For example:
TestBean exposes testMethod(String xmlstr)
xmlstr could be of schema xmlSchema1.xsd
or xmlstr could be of schema xmlSchema2.xsd
In future it could also represent xmlSchema3.xsd... and
so
on.
What is the right approach in this scenario?
I was thinking to create a different web service fordifferent
xsd.
Say, webservice1 imports xmlSchema1.xsd, webservice2
imports
xmlSchema2.xsd...
Un fortunately due to some design restrictions, I cannotcreate
different
methods in my session bean like testMethod1,
testMethod2....
Is there any other better way to do this in one webservice?
>>>>>>>>>>>
Thanks in advance for any suggestions. And excuse myunusual
requirement.
/k
"Bruce Stephens" <[email protected]> wrote in message
news:[email protected]...
Hello,
Personally I like to see everything in one place, i.e.
in
the
WSDL,
however everyone else :-) uses the import. The
SOAPBuilders
round
3
have several tests showing imports. Also WSI Basic
profile
has
some
helpful guidelines on using import:
http://www.ws-i.org/Profiles/Basic/2003-03/BasicProfile-1.0-BdAD.html
>>>>>>>>>>>>
HTHs,
Bruce
Karthik V wrote:
Hi,
I have created few doc style web services, with a
very
complex
xml
input
and
output. (1200 lines of xsd)
Input and out put are xml as java.lang.String.
What would be the best practice to represent this
in the
WSDL?
Just
a
reference to the xsd file is good, or should it be
completely
presented
within the WSDL? I'm not sure how my wsdl should look
like...
I will be using the same schema (xsd) in other web
services
too
to
perform
different functions.
Any suggestions would be greatly appreciated.
Thanks
/k
[testWSDL.wsdl]
[PO.xsd]

Hello Karthik/Anamitra,
i have the same requirements in my webservices:
1) Expose the Handler method receiving String
public String runRequest(String poXML)
2) On the other hand - the message (the poXML string) should be in XML format according to some XSD file.
Have you got this working already?
If so, please explain what the WSDL looks like.
Thanks in advance,
Orly

Similar Messages

  • Describe input xml

    Hi,
    I have created few doc style web services, with a very complex xml input and
    output. (1200 lines of xsd)
    Input and out put are xml as java.lang.String.
    What would be the best practice to represent this in the WSDL? Just a
    reference to the xsd file is good, or should it be completely presented
    within the WSDL? I'm not sure how my wsdl should look like...
    I will be using the same schema (xsd) in other web services too to perform
    different functions.
    Any suggestions would be greatly appreciated.
    Thanks
    /k

    Hi karthik
    I still dont get how the poXML can be represented by a schema in a WSDL. Can you
    give me a sample wsdl for that?
    Thanks
    Anamitra
    "Karthik V" <[email protected]> wrote:
    Manoj:
    Sorry, I got confused when you said, "the runtime will strip the xml
    tags".
    After your explanation, I understand that the runtime is actually going
    to
    perform some conversion without any loss of data.
    To conclude, logically,
    public void test(String poXML) is valid, and poXML can be represented
    by
    a schema definition.
    When I get a chance, I'm going to create a quick example of this use
    case
    and post it.
    Thanks,
    /k
    "manoj cheenath" <[email protected]> wrote in message
    news:[email protected]...
    java.lang.String is mapped to xsd:string which means the xml
    should look like:
    <foo xsi:type=xsd:string >sometext without any xml tags</foo>
    So if there are xml tags inside the string you passed
    in, runtime need to replace the tags with > and
    <.
    On the other end the runtime will again replace
    etc back to < or >. So you will get back theright XML. But on the wire it will be plain text
    not XML.
    So, if you dont want to convert to string, then you should use
    javax.xml.soap.SOAPElement or org.w3c.Element as
    your parameter type instead of java.lang.String.
    http://manojc.com
    "Karthik V" <[email protected]> wrote in message
    news:[email protected]...
    Manoj:
    I do not understand how the runtime will strip the xml.
    I think Anamitra's requirement of:
    public void test(String poXML)
    is very valid and a simple requirement.
    Infact, my requirement too is similar..
    1. Expose a method which takes in a String object.
    2. Define how the String is going to look like (using xsd).
    3. Instead of defining the schema in WSDL, we would like to import
    the
    schema and use it.
    4. Later use the schema to validate the incoming request.
    In real time most of us would like to work with String because ofits
    simplicity.
    Is there any reason why the implementation for such a simple usecase is
    so
    confusing?
    /k
    "manoj cheenath" <[email protected]> wrote in message
    news:[email protected]...
    public void test( String poXML )
    is not the best solution for you, i think, because
    in this case the runtime will strip the xml tags
    inside poXML. so the envelope will look like:
    <m:my-method>
    <poXML>sdfjds >some thing < something else...</poXML>
    </m:my-method>
    instead of:
    <m:my-method>
    <poXML>some thing <foo> something else</foo></poXML>
    </m:my-method>
    Will that be ok for you? Else, you can use DOM or
    javax.xml.soap.SOAPElement:
    public void test( org.w3c.Dom poXML );
    It looks like there is bug in WLS 7.0.2. The CR for this
    is CR104719. Please contact support if you need a patch.
    If you do clientgen on the WSDL, it is going to generate
    the classes (value types) for you. It looks like you do not
    want to do data binding. Take a look at DII client with generic
    type-mapping. Will this help you?
    package examples.jaxrpc.call5;
    import java.net.URL;
    import javax.xml.soap.SOAPConstants;
    import javax.xml.rpc.ServiceFactory;
    import javax.xml.rpc.Service;
    import javax.xml.rpc.Call;
    import javax.xml.rpc.ParameterMode;
    import javax.xml.namespace.QName;
    import javax.xml.rpc.encoding.TypeMapping;
    import javax.xml.rpc.encoding.TypeMappingRegistry;
    import javax.xml.soap.SOAPElement;
    import weblogic.webservice.encoding.GenericTypeMapping;
    import weblogic.webservice.core.soap.SOAPElementImpl;
    public class MSInterop{
    public static void main( String[] args ) throws Exception{
    //dont parse wsdl till we set the typemapping
    System.setProperty( "weblogic.webservice.servicenamechecking",
    "false" );
    //create service factory
    ServiceFactory factory = ServiceFactory.newInstance();
    //define qnames
    String targetNamespace = "http://soapinterop.org/";
    QName serviceName = new QName( targetNamespace, "SimpleTest"
    QName portName = new QName( targetNamespace, "SimpleTestSoap");
    QName operationName = new QName( "http://soapinterop.org/",
    "echoStruct" );
    URL wsdlLocation = new URL(
    "http://www.mssoapinterop.org/asmx/simple.asmx?WSDL" );
    //create service
    Service service = factory.createService( wsdlLocation,serviceName );
    TypeMappingRegistry registry = service.getTypeMappingRegistry();
    registry.register( SOAPConstants.URI_NS_SOAP_ENCODING,
    new GenericTypeMapping() );
    //create call
    Call call = service.createCall( portName, operationName );
    //construct struct
    SOAPElement elem = new SOAPElementImpl( "inputStruct", null,
    null );
    elem.addChildElement( "varInt" ).addTextNode( "1" );
    elem.addChildElement( "varString" ).addTextNode( "samplestring" );
    elem.addChildElement( "varFloat" ).addTextNode( "2.2" );
    System.out.println( elem );
    try{
    SOAPElement res = (SOAPElement)call.invoke(new Object[]{elem } );
    System.out.println( res );
    }catch( javax.xml.rpc.JAXRPCException e ){
    e.printStackTrace();
    e.getLinkedCause().printStackTrace();
    Call echoFloat = service.createCall( portName,
    new QName( "http://soapinterop.org/", "echoFloat" ) );
    System.out.println( echoFloat.invoke( new Object[]{new
    Float(100.0)} ) );
    http://manojc.com
    "Anamitra" <[email protected]> wrote in message
    news:[email protected]...
    Hi Bruce
    I think the wsdl that you sent was very near to what I was looking
    for.
    But I
    would try to make the requirement more clear: The points below
    are
    listed
    in order
    of priority:
    1>First and foremost I am looking to create a Webservice such
    that
    it
    exposes
    a method which takes in a java.lang.String
    public void test(String poXML)
    But in the WSDL I want to show the user the schema definition
    for
    the
    po
    XML.
    And would desire that the Webservices framework do the schema
    validation
    of the
    incoming xml. But I dont thing this works as the wsdl generated
    always
    says the
    type is "xsd:string". So I started looking into the 2nd option:
    2>Create a doc/literal type service and expose that method as:
    public void test(POXMLBean poXML)
    This generated the reqd schema in the wsdl level but the client
    is
    being
    forced
    to use the POXMLBean to invoke the method. I would ideally want
    the
    client
    to
    just deal with the XML of the pobean as described in the generated
    schema
    definition.
    For example the client using JAXRPC should be say doing the code
    like
    this:
    String poXML = "<po> <order>000</order> </po>"
    call.invoke(poXML").
    Is this possible? I am not able to do this. My primary important
    thing
    is
    that
    the client has to deal with XML and not with anything else. The
    client
    shouldnot
    have to deal with POXMLBean. This is what I am trying to acheive
    and
    not
    able
    to.
    3> So that leaves me to the last option which is not that good:
    ie I keep my original approach:
    public void test(String poXML)
    and somehow via wsdl:documentation say that the schema for this
    poXML
    is
    this...
    But I cannot change the type in the parameter poXML from xs:string
    right?
    Bottom line is there any way for the client to pass string/byte[]
    xml
    data
    to
    the webservice - but still be able to look into the WSDL and
    see
    what
    the
    reqd
    XML structure should be? I thought doc/literal should do it -
    but
    using
    weblogic
    I am not able to do it. Can u help me with this pls.
    thanks
    Anamitra
    Bruce Stephens <[email protected]> wrote:
    Hello,
    See what you think of this example of using import. It seems
    to
    describe your exact use case:
    http://www.ws-i.org/SampleApplications/SupplyChainManagement/2002-08/Retail
    er.wsdl
    (Disclaimer, anyone could have found this via public UDDI.)
    The issue I believe that Anamitra sees is the gap between the
    runtime
    and the toolset.
    Bruce
    Anamitra wrote:
    Hi Karthik
    I am a bit confused as to what you mean when u say "import".
    The
    generated
    webservices.xml
    contains a <types> and a <type-mapping> element. I suppose
    u r
    asking
    me to put
    the xsd definition in the <types> section - right?
    If the method is like this:
    public String doit(String msg)
    How do I attach the <xs:string> type "msg" to the actual
    XML
    schema
    that I just
    imported?
    I dont know whether I am asking stupid questions or not -
    but I
    would
    have ideall
    liked to see my "msg" of type say "PurchaseOrder" which is
    the
    schema
    that I imported.
    And the external client should just be able to give the
    "PurchaseOrder"
    xml to
    the Webservice and invoke the "doit" method.
    Am I making any sense?
    thanks
    Anamitra
    "Karthik V" <[email protected]> wrote:
    I doubt if servicegen has any option for doing it automatically.
    You should manually edit web-services.xml and import the
    xsd.
    /k
    "Anamitra" <[email protected]> wrote in message
    news:[email protected]...
    Hi Karthik/Bruce
    Can you pls explain to me how using weblogic tools
    [servicegen]
    one
    can
    include
    the xsd pointers in the WSDL file.
    We have a similar kind of requirement where we have
    webservices
    which
    take
    in
    string [XML data] as a parameter and the WSDL only shows
    method
    parameter
    types
    as xsd:string - but we want to show something like a schema
    definition.
    So
    if
    there is anyway to put the schema definition in the WSDL
    - pls
    let
    me know
    that
    would be very very helpful.
    thanks
    Anamitra
    "Karthik V" <[email protected]> wrote:
    Bruce,
    Thanks for your response. That helped.
    I have another question for you.
    I know this would sound strange.
    But my requirement is to expose a session bean method
    that
    could
    take
    different xml inputs.
    For example:
    TestBean exposes testMethod(String xmlstr)
    xmlstr could be of schema xmlSchema1.xsd
    or xmlstr could be of schema xmlSchema2.xsd
    In future it could also represent xmlSchema3.xsd... and
    so
    on.
    What is the right approach in this scenario?
    I was thinking to create a different web service fordifferent
    xsd.
    Say, webservice1 imports xmlSchema1.xsd, webservice2 imports
    xmlSchema2.xsd...
    Un fortunately due to some design restrictions, I cannot
    create
    different
    methods in my session bean like testMethod1, testMethod2....
    Is there any other better way to do this in one web service?
    Thanks in advance for any suggestions. And excuse my unusual
    requirement.
    /k
    "Bruce Stephens" <[email protected]> wrote in message
    news:[email protected]...
    Hello,
    Personally I like to see everything in one place, i.e.
    in
    the
    WSDL,
    however everyone else :-) uses the import. The
    SOAPBuilders
    round
    3
    have several tests showing imports. Also WSI Basic
    profile
    has
    some
    helpful guidelines on using import:
    http://www.ws-i.org/Profiles/Basic/2003-03/BasicProfile-1.0-BdAD.html
    HTHs,
    Bruce
    Karthik V wrote:
    Hi,
    I have created few doc style web services, with a
    very
    complex
    xml
    input
    and
    output. (1200 lines of xsd)
    Input and out put are xml as java.lang.String.
    What would be the best practice to represent this
    in the
    WSDL?
    Just
    a
    reference to the xsd file is good, or should it be
    completely
    presented
    within the WSDL? I'm not sure how my wsdl should look
    like...
    I will be using the same schema (xsd) in other web
    services
    too
    to
    perform
    different functions.
    Any suggestions would be greatly appreciated.
    Thanks
    /k

  • How to transfer multi-input xml file to One xml file using BPM?

    Hi!
    Using BPM, We wana transfer multiful xml file to One xml at Remote FTP Server.
    I don't know how to design BPM.
    ============== samle1: input xml====================
    <?xml version="1.0" encoding="ISO-8859-1"?>
    <!DOCTYPE Shipments SYSTEM "DTD/Shipment.dtd">
    <Shipments>
      <sendingPartnerID>XXX</sendingPartnerID>
      <receivingPartnerID>XXX_UPSTMS</receivingPartnerID>
      <receivingMessageType>TPSDLS</receivingMessageType>
      <Shipment ID="0081646547" Type="CREATE">
        <CustomerID>XXX</CustomerID>
      </Shipment>
    </Shipments>
    ============== samle2: output xml====================
    <?xml version="1.0" encoding="ISO-8859-1"?>
    <!DOCTYPE Shipments SYSTEM "DTD/Shipment.dtd">
    <Shipments>
      <sendingPartnerID>XXX</sendingPartnerID>
      <receivingPartnerID>XXX_UPSTMS</receivingPartnerID>
      <receivingMessageType>TPSDLS</receivingMessageType>
      <Shipment ID="0081646547" Type="CREATE">
      </Shipment>
      <Shipment ID="0081886548" Type="CREATE">
      </Shipment>
      <Shipment ID="0081646999" Type="CREATE">
      </Shipment>
    </Shipments>
    Message was edited by: ChangSeop Song

    Hi,
    To convert multiple xml files into a single file, you will have to perform a N:1 mapping.
    The following tutorials are available on SAP to help you understand BPM and also to collect multiple XML messages so that they can be mapped into a single message. Check them out,
    http://help.sap.com/saphelp_nw04/helpdata/en/08/16163ff8519a06e10000000a114084/frameset.htm
    http://help.sap.com/saphelp_nw04/helpdata/en/08/16163ff8519a06e10000000a114084/frameset.htm
    http://help.sap.com/saphelp_nw04/helpdata/en/14/80243b4a66ae0ce10000000a11402f/frameset.htm
    http://help.sap.com/saphelp_nw04/helpdata/en/14/80243b4a66ae0ce10000000a11402f/frameset.htm
    Regards,
    Bhavesh

  • Mapping complete input XML structure into one field on target

    Hi,
    I have a scenario where I need to map the complete input XML structure as it is, into one field on target side. so can we achieve this in Graphical Mapping? If yes, please share your valuable info.
    Regards,
    Shiva.

    Hello,
    this is the java map code.just compile it and made a .zip file import it and use it Interface Mapping.
    import com.sap.aii.mapping.api.StreamTransformation;
    import com.sap.aii.mapping.api.AbstractTrace;
    import com.sap.aii.mapping.api.StreamTransformationConstants;
    import java.util.Map;
    import java.io.*;
    public class PayloadToXMLField1 implements StreamTransformation {
        String strXML = new String();
       //Declare the XML tag for your XML message
       String StartXMLTag = "<DocumentBody>";
       String EndXMLTag = "</DocumentBody>";
       //String StartXMLTag1 = "<Code>";
       //String EndXMLTag1 = "</Code>";
        AbstractTrace trace;
        private Map param = null;
        public void setParameter(Map param) {
            this.param = param;
        public void execute(InputStream in, OutputStream out) {
            trace =
                (AbstractTrace) param.get(
                    StreamTransformationConstants.MAPPING_TRACE);
            trace.addInfo("Process Started");
            try {
                StringBuffer strbuffer = new StringBuffer();
                byte[] b = new byte[4096];
                for (int n;(n = in.read(b)) != -1;) {
                    strbuffer.append(new String(b, 0, n));
                strXML = strbuffer.toString();
            } catch (Exception e) {
                System.out.println("Exception Occurred");
            String outputPayload =
                StartXMLTag
             + "<![CDATA["
             + strXML
             + "]]>"
             + EndXMLTag;
            try {
                out.write(outputPayload.getBytes());
             trace.addInfo("Process Completed");;
            } catch (Exception e) {
                trace.addInfo("Process Terminated: Error in writing out payload");;

  • FODC0002 [{bea-err}FODC0002a]: Error parsing input XML: Error at line:2 col

    I have an ODSI Physical Service that is based on a Java Function. The Java Function builds a SQL statement and uses JDBC to query for a ResultSet. One of the columns that is queried is a Clob. Sometimes, the data in this column causes an XMLBeans validation exception in ODSI: {err}XQ0027: Validation failed: error: decimal: Invalid decimal value: unexpected char '114'
    The issue is not consistently replicable with particular database record, the database records that present this issue at one point in time will be resolved after a restart of ODSI and replaced by another list of records that present the same error.
    As can be seen from the stack trace, it looks like the issue is happening after the database query has returned and while the process is assembling the SOAP response.
    Error at line:2 col:481 Line:2 '=' expected, got char[99]
    at weblogic.xml.babel.scanner.ScannerState.expect(ScannerState.java:241)
    at weblogic.xml.babel.scanner.OpenTag.read(OpenTag.java:60)
    at weblogic.xml.babel.scanner.Scanner.startState(Scanner.java:251)
    at weblogic.xml.babel.scanner.Scanner.scan(Scanner.java:178)
    at weblogic.xml.babel.baseparser.BaseParser.accept(BaseParser.java:533)
    at weblogic.xml.babel.baseparser.BaseParser.accept(BaseParser.java:510)
    at weblogic.xml.babel.baseparser.EndElement.parse(EndElement.java:34)
    at weblogic.xml.babel.baseparser.BaseParser.parseElement(BaseParser.java:457)
    at weblogic.xml.babel.baseparser.BaseParser.parseSome(BaseParser.java:326)
    at weblogic.xml.stax.XMLStreamReaderBase.advance(XMLStreamReaderBase.java:195)
    at weblogic.xml.stax.XMLStreamReaderBase.next(XMLStreamReaderBase.java:237)
    at weblogic.xml.stax.XMLEventReaderBase.parseSome(XMLEventReaderBase.java:189)
    at weblogic.xml.stax.XMLEventReaderBase.nextEvent(XMLEventReaderBase.java:122)
    at weblogic.xml.query.parsers.StAXEventAdaptor.queueNextTokens(StAXEventAdaptor.java:136)
    at weblogic.xml.query.parsers.StAXEventAdaptor.queueNextTokens(StAXEventAdaptor.java:124)
    at weblogic.xml.query.parsers.BufferedParser.fetchNext(BufferedParser.java:79)
    at weblogic.xml.query.iterators.GenericIterator.next(GenericIterator.java:104)
    at weblogic.xml.query.runtime.navigation.ChildPath.fetchNext(ChildPath.java:308)
    at weblogic.xml.query.iterators.GenericIterator.hasNext(GenericIterator.java:133)
    at weblogic.xml.query.schema.BestEffortValidatingIterator$OpenedIterator.hasNext(BestEffortValidatingIterator.java:224)
    at weblogic.xml.query.schema.ValidatingIterator.fetchNext(ValidatingIterator.java:82)
    at weblogic.xml.query.iterators.GenericIterator.next(GenericIterator.java:104)
    at weblogic.xml.query.xdbc.iterators.ItemIterator.fetchNext(ItemIterator.java:86)
    at weblogic.xml.query.iterators.LegacyGenericIterator.next(LegacyGenericIterator.java:109)
    at weblogic.xml.query.schema.BestEffortValidatingIterator.fetchNext(BestEffortValidatingIterator.java:85)
    at weblogic.xml.query.iterators.GenericIterator.next(GenericIterator.java:104)
    at weblogic.xml.query.xdbc.iterators.ItemIterator.fetchNext(ItemIterator.java:86)
    at weblogic.xml.query.iterators.LegacyGenericIterator.next(LegacyGenericIterator.java:109)
    at weblogic.xml.query.runtime.typing.SeqTypeMatching.fetchNext(SeqTypeMatching.java:137)
    at weblogic.xml.query.iterators.GenericIterator.next(GenericIterator.java:104)
    at com.bea.dsp.wrappers.jf.JavaFunctionIterator.fetchNext(JavaFunctionIterator.java:273)
    at weblogic.xml.query.iterators.GenericIterator.next(GenericIterator.java:104)
    at weblogic.xml.query.runtime.querycide.QueryAssassin.fetchNext(QueryAssassin.java:54)
    at weblogic.xml.query.iterators.GenericIterator.peekNext(GenericIterator.java:163)
    at weblogic.xml.query.runtime.qname.InsertNamespaces.fetchNext(InsertNamespaces.java:247)
    at weblogic.xml.query.iterators.GenericIterator.next(GenericIterator.java:104)
    at weblogic.xml.query.runtime.core.ExecutionWrapper.fetchNext(ExecutionWrapper.java:88)
    at weblogic.xml.query.iterators.GenericIterator.next(GenericIterator.java:104)
    at weblogic.xml.query.xdbc.iterators.ItemIterator.fetchNext(ItemIterator.java:86)
    at weblogic.xml.query.iterators.LegacyGenericIterator.hasNext(LegacyGenericIterator.java:130)
    at weblogic.xml.query.xdbc.util.Serializer.serializeItems(Serializer.java:251)
    at com.bea.ld.server.ResultPusher$DSP25CompatibilityPusher.next(ResultPusher.java:236)
    at com.bea.ld.server.ResultPusher.pushResults(ResultPusher.java:112)
    at com.bea.ld.server.XQueryInvocation.execute(XQueryInvocation.java:770)
    at com.bea.ld.EJBRequestHandler.invokeQueryInternal(EJBRequestHandler.java:624)
    at com.bea.ld.EJBRequestHandler.invokeOperationInternal(EJBRequestHandler.java:478)
    at com.bea.ld.EJBRequestHandler.invokeOperation(EJBRequestHandler.java:323)
    at com.bea.ld.ServerWrapperBean.invoke(ServerWrapperBean.java:153)
    at com.bea.ld.ServerWrapperBean.invokeOperation(ServerWrapperBean.java:80)
    at com.bea.ld.ServerWrapper_s9smk0_ELOImpl.invokeOperation(ServerWrapper_s9smk0_ELOImpl.java:63)
    at com.bea.dsp.ws.RoutingHandler$PriviledgedRunner.run(RoutingHandler.java:96)
    at com.bea.dsp.ws.RoutingHandler.handleResponse(RoutingHandler.java:217)
    at weblogic.wsee.handler.HandlerIterator.handleResponse(HandlerIterator.java:287)
    at weblogic.wsee.handler.HandlerIterator.handleResponse(HandlerIterator.java:271)
    at weblogic.wsee.ws.dispatch.server.ServerDispatcher.dispatch(ServerDispatcher.java:176)
    at weblogic.wsee.ws.WsSkel.invoke(WsSkel.java:80)
    at weblogic.wsee.server.servlet.SoapProcessor.handlePost(SoapProcessor.java:66)
    at weblogic.wsee.server.servlet.SoapProcessor.process(SoapProcessor.java:44)
    at weblogic.wsee.server.servlet.BaseWSServlet$AuthorizedInvoke.run(BaseWSServlet.java:285)
    at weblogic.wsee.server.servlet.BaseWSServlet.service(BaseWSServlet.java:169)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
    at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227)
    at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)
    at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:292)
    at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:175)
    at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3498)
    at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
    at weblogic.security.service.SecurityManager.runAs(Unknown Source)
    at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2180)
    at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2086)
    at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1406)
    at weblogic.work.ExecuteThread.execute(ExecuteThread.java:201)
    at weblogic.work.ExecuteThread.run(ExecuteThread.java:173)
    <Apr 29, 2011 12:47:01 PM EDT> <Notice> <ODSI> <BEA-000000> <LabOrderDataServices> <Error occurred performing ODSI operation: {ld:LabOrder/logical/LabOrderReport}getLabOrderDetails:1
    weblogic.xml.query.exceptions.XQueryDynamicException: ld:LabOrder/logical/LabOrderReport.ds, line 34, column 6: {err}FODC0002 [{bea-err}FODC0002a]: Error parsing input XML: Error at line:2 col:481 Line:2 '=' expected, got char[99]
    at weblogic.xml.query.iterators.AbstractIterator.reportUserError(AbstractIterator.java:95)
    at weblogic.xml.query.iterators.AbstractIterator.reportUserError(AbstractIterator.java:147)
    at weblogic.xml.query.parsers.Parser.reportParseError(Parser.java:157)
    at weblogic.xml.query.parsers.StAXEventAdaptor.queueNextTokens(StAXEventAdaptor.java:225)
    at weblogic.xml.query.parsers.StAXEventAdaptor.queueNextTokens(StAXEventAdaptor.java:124)
    Truncated. see log file for complete stacktrace
    javax.xml.stream.XMLStreamException: Error at line:2 col:481 Line:2 '=' expected, got char[99]
    at weblogic.xml.stax.XMLStreamReaderBase.advance(XMLStreamReaderBase.java:206)
    at weblogic.xml.stax.XMLStreamReaderBase.next(XMLStreamReaderBase.java:237)
    at weblogic.xml.stax.XMLEventReaderBase.parseSome(XMLEventReaderBase.java:189)
    at weblogic.xml.stax.XMLEventReaderBase.nextEvent(XMLEventReaderBase.java:122)
    at weblogic.xml.query.parsers.StAXEventAdaptor.queueNextTokens(StAXEventAdaptor.java:136)
    Truncated. see log file for complete stacktrace
    Error at line:2 col:481 Line:2 '=' expected, got char[99]
    at weblogic.xml.babel.scanner.ScannerState.expect(ScannerState.java:241)
    at weblogic.xml.babel.scanner.OpenTag.read(OpenTag.java:60)
    at weblogic.xml.babel.scanner.Scanner.startState(Scanner.java:251)
    at weblogic.xml.babel.scanner.Scanner.scan(Scanner.java:178)
    at weblogic.xml.babel.baseparser.BaseParser.accept(BaseParser.java:533)
    Truncated. see log file for complete stacktrace
    >
    Can somebody shed some light on this issue?
    Thanks
    Edited by: user738507 on May 6, 2011 7:21 AM

    Here is the java function:
         * Iterate through the search results and build out the XmlBean response
         * @param helper A helper class used to simplify common JDBC commands
         * @param doc The XmlBean document to populate
         * @param isCollectionsIncluded True if Collection info should be included in results, False otherwise
         * @param isFullDetailsIncluded True if Result data should be included in results, False otherwise
         * @throws Exception
         private static void addOrders(XmlBeansJDBCHelper helper, LabOrderReportDocument doc,
                   boolean isCollectionsIncluded, boolean isFullDetailsIncluded) throws Exception {
              int rows = 0;
              ResultSet rs = helper.getResultSet();
              LabOrders labOrders = doc.getLabOrderReport().addNewLabOrders();
              LabOrder record = null;
              HashMap<Long, Collection> parentCollectionMap = null;
              // initialize variable used to track when child elements of the XML should be created
              long previousRowOrderId = 0;
              long previousRowParentOrderCollectionId = 0;
              long previousRowOrderCollectionId = 0;
              long previousRowResultId = 0;
              boolean isRootCollectionNode = false;
              LabOrder.Collections lastParentOuterCollectionsAdded = null;
              com.idexx.services.lde.laborder.Collection.Collections lastParentInnerCollectionsAdded = null;
              com.idexx.services.lde.laborder.Collection lastCollectionAdded = null;
              Result lastResultAdded = null;
              // Loop through the results and build XmlBean nodes for each row
              // Since the SQL is joining Orders to Collections (one-to-many) to Results (one-to-many),
              // and returning a flat structure, there will be duplicate Order data on each row when
              // multiple collections exist on the Order, and duplicate Collection data when multiple
              // Results exist. We can use this fact to determine when to create a new Collection, or
              // Result node.
              while (helper.getResultSet().next())
                   rows++;
                   long currentRowParentOrderCollectionId = 0;
                   long currentRowOrderCollectionId = 0;
                   long currentRowResultId = 0;
                   long currentRowResultRemarkId = 0;
                   //int rowno = helper.getResultSet().getRow();
                   // Get the Order ID
                   logDebug("Getting the OrderId.....");
                   BigInteger dbOrderId = JDBCHelper.getBigInteger(rs, DataConstants.ORDER_ID);
                   logDebug("DONE getting the OrderId.");
                   long currentRowOrderId = dbOrderId.longValue();
                   // Determine the Order ID, Order Collection ID, and Result ID currently being processed.
                   // These will be used to determine whether to start a new LabOrder Bean, Collections Bean, or Results Bean
                   if (isCollectionsIncluded || isFullDetailsIncluded) {
                        // Get the ParentOrderCollectionID
                        logDebug("Getting the Parent Collection Order ID.....");
                        BigInteger dbParentOrderCollectionId = JDBCHelper.getBigInteger(rs, DataConstants.PARENT_ORDER_COLLECTION_ID);
                        if ( dbParentOrderCollectionId != null )
                             currentRowParentOrderCollectionId = dbParentOrderCollectionId.longValue();
                        else
                             currentRowParentOrderCollectionId = 0;
                        // Get the OrderCollectionID
                        logDebug("Getting the Order Collection ID.....");
                        BigInteger dbOrderCollectionId = JDBCHelper.getBigInteger(rs, DataConstants.ORDER_COLLECTION_ID);
                        if ( dbOrderCollectionId != null )
                             currentRowOrderCollectionId = dbOrderCollectionId.longValue();
                        else
                             currentRowOrderCollectionId = 0;
                        if ( isFullDetailsIncluded ) {
                             // Get the ResultID
                             logDebug("Getting the Result Id.....");
                             BigInteger dbResultId = JDBCHelper.getBigInteger(rs, DataConstants.RESULT_ID);
                             if ( dbResultId != null )
                                  currentRowResultId = dbResultId.longValue();
                             else
                                  currentRowResultId = 0;
                             // Get the ResultRemarkID
                             BigInteger dbResultRemarkId = JDBCHelper.getBigInteger(rs, DataConstants.RESULT_REMARK_ID);
                             if ( dbResultRemarkId != null )
                                  currentRowResultRemarkId = dbResultRemarkId.longValue();
                             else
                                  currentRowResultRemarkId = 0;
                   isRootCollectionNode = (currentRowParentOrderCollectionId == 0);
                   logDebug("currentRowOrderId: " + currentRowOrderId);
                   logDebug("previousRowOrderId: " + previousRowOrderId);
                   logDebug("currentRowResultId: " + currentRowResultId);
                   logDebug("previousRowResultId: " + previousRowResultId);
                   logDebug("currentRowResultRemarkId: " + currentRowResultRemarkId);
                   logDebug("previousRowResultRemarkId: N/A");
                   logDebug("currentRowParentOrderCollectionId: " + currentRowParentOrderCollectionId);
                   logDebug("previousRowParentOrderCollectionId: " + previousRowParentOrderCollectionId);
                   logDebug("currentRowOrderCollectionId: " + currentRowOrderCollectionId);
                   logDebug("previousRowOrderCollectionId: " + previousRowOrderCollectionId);
                   if ( currentRowOrderId != previousRowOrderId ) {
                        parentCollectionMap = new HashMap<Long, Collection>();
                        lastParentOuterCollectionsAdded = null;
                        lastParentInnerCollectionsAdded = null;
                        lastCollectionAdded = null;
                        lastResultAdded = null;
                        // This is a new Order, generate a new Lab Order bean
                        record = addOrder(labOrders, helper, dbOrderId, isFullDetailsIncluded);
                        logDebug("Order Added!");
                        // If there is Parent Collection data and it should be included, build a Collections element,
                        // and populate the first one
                        if ( !isRootCollectionNode && (isCollectionsIncluded || isFullDetailsIncluded) ) {
                             lastParentOuterCollectionsAdded = record.addNewCollections();
                             lastCollectionAdded = addCollection(record, helper, lastParentOuterCollectionsAdded, true);
                             logDebug("Collection Added! Is it null? " + (lastCollectionAdded == null));
                        // If there is Collection data and it should be included, build a Collections element,
                        // and populate the first one
                        if ( currentRowOrderCollectionId > 0 && (isCollectionsIncluded || isFullDetailsIncluded) ) {
                             if ( isRootCollectionNode ) {
                                  lastParentOuterCollectionsAdded = record.addNewCollections();
                                  lastCollectionAdded = addCollection(record, helper, lastParentOuterCollectionsAdded, false);
                                  parentCollectionMap.put(new Long(currentRowOrderCollectionId), lastCollectionAdded);
                                  logDebug("parent collection added to map: " + currentRowOrderCollectionId);
                             else {
                                  lastParentInnerCollectionsAdded = lastCollectionAdded.addNewCollections();
                                  lastCollectionAdded = addCollection(record, helper, lastParentInnerCollectionsAdded, false);
                             logDebug("Collection Added! Is it null? " + (lastCollectionAdded == null));
                             // If there is Result data and it should be included, build a Results element,
                             // and populate the first one
                             if ( currentRowResultId > 0 && isFullDetailsIncluded ) {
                                  logDebug("Adding result....");
                                  lastResultAdded = addResult(record, helper, lastCollectionAdded);
                                  logDebug("Result Added!");
                                  // If there is Result Remark data and it should be included, build a ResultRemarks element,
                                  // and populate the first one
                                  if ( currentRowResultRemarkId > 0 && isFullDetailsIncluded ) {
                                       addResultRemark(record, helper, lastResultAdded);
                        logDebug("DONE getting first Collection and Result.");
                   else if ( currentRowParentOrderCollectionId != previousRowParentOrderCollectionId
                             && (isCollectionsIncluded || isFullDetailsIncluded) ) {
                        // This is a new, top level, Order Collection to be included
                        lastParentOuterCollectionsAdded = null;
                        lastParentInnerCollectionsAdded = null;
                        lastCollectionAdded = null;
                        lastResultAdded = null;
                        logDebug("Getting next Order Collection...");
                        // If there is Parent Collection data and it should be included, build a Collections element,
                        // and populate the first one
                        if ( !isRootCollectionNode ) {
                             lastCollectionAdded = (com.idexx.services.lde.laborder.Collection)parentCollectionMap.get(new Long(currentRowParentOrderCollectionId));
                             logDebug("A Collection Added! Is it null? " + (lastCollectionAdded == null));
                        // If there is Collection data and it should be included, build a Collections element,
                        // and populate the first one
                        if ( currentRowOrderCollectionId > 0 ) {
                             if ( isRootCollectionNode ) {
                                  //LabOrder.Collections collections = record.addNewCollections();
                                  lastParentOuterCollectionsAdded = record.getCollections();
                                  lastCollectionAdded = addCollection(record, helper, lastParentOuterCollectionsAdded, false);
                                  parentCollectionMap.put(new Long(currentRowOrderCollectionId), lastCollectionAdded);
                             else {
                                  lastParentInnerCollectionsAdded = lastCollectionAdded.addNewCollections();
                                  lastCollectionAdded = addCollection(record, helper, lastParentInnerCollectionsAdded, false);
                             logDebug("B Collection Added! Is it null? " + (lastCollectionAdded == null));
                             // If there is Result data and it should be included, build a Results element,
                             // and populate the first one
                             if ( currentRowResultId > 0 && isFullDetailsIncluded ) {
                                  lastResultAdded = addResult(record, helper, lastCollectionAdded);
                                  // If there is Result Remark data and it should be included, build a ResultRemarks element,
                                  // and populate the first one
                                  if ( currentRowResultRemarkId > 0 && isFullDetailsIncluded ) {
                                       addResultRemark(record, helper, lastResultAdded);
                   else if ( currentRowOrderCollectionId != previousRowOrderCollectionId
                             && (isCollectionsIncluded || isFullDetailsIncluded) ) {
                        // This is a new Order Collection to be included inside of a parent collection
                        logDebug("Getting next CHILD Order Collection...");
                        logDebug("isRootCollectionNode: " + isRootCollectionNode);
                        logDebug("Order ID: " + helper.getBigInteger(DataConstants.ORDER_ID));
                        logDebug("Order Collection ID: " + helper.getBigInteger(DataConstants.ORDER_COLLECTION_ID));
                        logDebug("Collection ID: " + helper.getBigInteger(DataConstants.COLLECTION_ID));
                        if ( isRootCollectionNode ) {
                             lastCollectionAdded = addCollection(record, helper, lastParentOuterCollectionsAdded, false);
                             parentCollectionMap.put(new Long(currentRowOrderCollectionId), lastCollectionAdded);
                        else {
                             com.idexx.services.lde.laborder.Collection parentCollection = (com.idexx.services.lde.laborder.Collection)parentCollectionMap.get(new Long(currentRowParentOrderCollectionId));
                             if(parentCollection == null) {
                                  log(LOG_LEVEL.WARN, "Parent Collection with id: " + currentRowParentOrderCollectionId + " is null for collection id: " + currentRowOrderCollectionId + " but isRootCollectionNode is " + isRootCollectionNode);
                             } else {
                                  lastParentInnerCollectionsAdded = parentCollection.getCollections();
                                  logDebug("Is lastParentInnerCollectionsAdded null? " + (lastParentInnerCollectionsAdded == null));
                                  lastCollectionAdded = addCollection(record, helper, lastParentInnerCollectionsAdded, false);
                        // If there is Result data and it should be included, build a Results element,
                        // and populate the first one
                        if ( currentRowResultId > 0 && isFullDetailsIncluded ) {
                             lastResultAdded = addResult(record, helper, lastCollectionAdded);
                             // If there is Result Remark data and it should be included, build a ResultRemarks element,
                             // and populate the first one
                             if ( currentRowResultRemarkId > 0 && isFullDetailsIncluded ) {
                                  addResultRemark(record, helper, lastResultAdded);
                   else if ( currentRowResultId != previousRowResultId
                             && isFullDetailsIncluded ) {
                        // There is a new Result to be included
                        logDebug("Getting next Result...");
                        // This is a new result to be included
                        lastResultAdded = addResult(record, helper, lastCollectionAdded);
                        // If there is Result Remark data and it should be included, build a ResultRemarks element,
                        // and populate the first one
                        if ( currentRowResultRemarkId > 0 && isFullDetailsIncluded ) {
                             addResultRemark(record, helper, lastResultAdded);
                   else if ( isFullDetailsIncluded ) {
                        // There is a new Result Remark to include
                        logDebug("Getting next Result Remark...");
                        // This is a new result remark to be included
                        addResultRemark(record, helper, lastResultAdded);
                   logDebug("Done building response.");
                   previousRowResultId = currentRowResultId;
                   previousRowParentOrderCollectionId = currentRowParentOrderCollectionId;
                   previousRowOrderCollectionId = currentRowOrderCollectionId;
                   previousRowOrderId = currentRowOrderId;
              logDebug("Found " + rows + " rows of data.");
         }

  • Email input xml as body of mail

    Dear all
    I need to provide the input xml in the body of the mail. The body of the mail should be the input xml.
    I understand that in order to provide the content in the email body we need to use the XIMail30  package. However this is only for the text. But we need xml in the email body?
    Regards
    Monika

    hi,
    >>>But we need xml in the email body?
    what you can do is you can use escape chars
      "   & quot;
      <   & lt;
      >   & gt;
      &   & amp;
    which will allow you to send XML data as text and it will be visible as "XML" in the e-mail body right ?
    or you can use CDATA to wrap the XML too and send as text
    Regards,
    Michal Krawczyk

  • Input XML - DB - Output XML

    I have been able to get Liquid Data up and running.
    I have set my Output XSD as the target schema
    I have included my DB and mapped it to the Output XSD
    I am having problems getting the Input XML into my project. When I include in my XML source (input xsd) it does not show all the elements....
    My bigger question is, can I through Liquid Data, map an input XML file to a DB (run sql to match up XML element value and DB table values) and export the SQL recordset to my defind XML file?
    I started down this road based on a 'yes' answer from a
    peer.
    Spending a little more time than I had hoped on this one...
    I need to do this below..
    <Membership_ID>000001</Membership_ID> //Input XML
    ...db....
    Select * from Member_Table where XML.Membership_ID = Member_Table.Memb_ID
    ...db....
    Insert Into Pre-Defined XML.....
    <Memb_F_Name>Elvis</Memb_F_Name>
    <Memb_L_Name>Costello</Memb_L_Name>
    <Memb_City>Miami</Memb_City>
    <Memb_Age>50</Memb_Age>
    <Memb_ID>000001</Memb_ID> //Makes Hit On This
    Making progress but, any examples would be great...
    TIA
    Jay

    to use an xml file as a datasource, create an XML File Datasource in the LD Console (you need to specify a schema there). Go to the DataView Builder, reconnect to the server, it will show the XML File source with all the elements defined in the schema.
    To compare values with a db against values in a file, you need to defined an LD rdbms source for the db and an LD XML file source for the file.
    Then write your xquery - it will look something like...
    for $file_rec in document("MyFileSource")
    for $db_rec in document("MyDBSource")
    where $db_rec/Member_id eq $file_rec/Member_id
    return
    $db_rec

  • Input XML having multiple values in the same tag

    Hi,
    In my scenario, my input XML is in the following format...
    <Product>
    <Site_ID>A1, A2, A3</Site_ID>
    <SIte_Name>ABC, XYZ, PQR</Site_Name>
    </Product>
    A1 corresponds to ABC
    A2 corresponds to XYZ and so on...
    Is there some way to retrieve values from such a source file and then map it to the target
    i.e A1 ABC has to go as one record
    A2 XYZ has to go as a second record and so on..
    Thanks in advance,
    Regards,
    Karen

    using xslt you can retrive Site_ID values and Site_name and then you have to use your own abap logic to split the values.
    for example
    site_name = 'A1, A2, A3, A4' .
    then you can use split site_name at ',' into table <itab>

  • Input XML Format needs to be Translated Into CSV String Format

    Hi,
    I need to translate input xml format to CSV string format in BPEL.
    How to use xpath function to do this?
    Thanks

    1. In the partner link of the file adapter you can run the wizard and create a XSD according to your CSV format.
    (you just need to create an example of CSV)
    The wizard will create a XSD automatically.
    2. Assign an invoke activity to that partner link.
    3. Use transformation to pass data from your XML input into the invoke variable.
    Arik

  • Input xml  to where clause ..

    An input XML passed as a parameter to the oracle stored procedure . based on input xml the dynamic predicate( where ) clause need to be build . for example
    <map opt="and" >
    <map opt="and" >
    <condition opt="equal" >
         <key>job_id</key>
         <value>IT_PROG</value>
    </condition>
    <conditon opt="equal" >
              <key>salary</key>
              <value>9000</value>
    </conditon>
    </map>
    <map opt="or" >
    <condition opt="equal" >
              <key>manger_id</key>
              <value>100</value>
    </condition>
    <conditon opt="like" >
                   <key>lastname</key>
                   <value>m</value>
    </conditon>
    </map>
    </map>
    select * from employees where (job_id='IT_PROG' and salary='9000') or (manager_id = '100' or last_name like '%m%').
    please help with pl/sql part of this . i have written a pl/sql which can print the element tag , what changes should i make this code .
    The input xml will be dynamic based on the input xml the predicate should be prepared, i want to use oracle dom .
    declare
    vxml xmltype;
    l_xmldoc xmldom.DOMDocument;
    l_ndlist xmldom.DOMNodeList;
    l_node xmldom.DOMNode;
    l_element xmldom.DOMElement;
    len number;
    BEGIN
    vxml:= xmltype('<map opt="and" >
    <map opt="and" >
    <condition opt="equal" >
         <key>job_id</key>
         <value>IT_PROG</value>
    </condition>
    <conditon opt="equal" >
              <key>salary</key>
              <value>9000</value>
    </conditon>
    </map>
    <map opt="or" >
    <condition opt="equal" >
              <key>manger_id</key>
              <value>100</value>
    </condition>
    <conditon opt="like" >
                   <key>lastname</key>
                   <value>m</value>
    </conditon>
    </map>
    </map>
    l_xmldoc := xmldom.newDOMDocument(vxml);
    l_ndlist := xmldom.getElementsByTagName(l_xmldoc, '*');
    len := xmldom.getLength(l_ndlist);
    -- loop through elements
    for i in 1..len-1 loop
    l_node := xmldom.item(l_ndlist, i);
    dbms_output.put( xmldom.getNodeName(l_node));
    l_node := xmldom.getFirstChild(l_node);
    if xmldom.getNodeType(l_node) = xmldom.TEXT_NODE then
    dbms_output.put('='|| xmldom.getNodeValue(l_node) || ' ');
    end if;
    dbms_output.put(' ');
    end loop;
    dbms_output.put_line('');
    END;

    >
    our application has java front end , the users have option to select multiple filter values . the frond end developers will send an xml construct as the one i have showed . based on the input xml i have to apply those filters on a table . so i thought using xml dom and parse the xml and make a dynamic sql from that .
    >
    why java app needs to send XML? Let it create SQL and execute it.
    Of course you can do it in PL/SQL but it less convenient comparing to Java.
    If you can extract values from XML, then just create SQL for them, assign bind vars and execute it dynamically.
    Yes, you will have to implement lots of IF logic.
    Advise: Use bind variables as placeholders for values to avoid injection attacks. Do not concatenate values into your dynamic SQL.

  • Large input xml request to BPEL

    Does BPEL load the whole input request xml in memory?
    I have a input request having multiple IDs. The oracle business rule transforms 1 id at a time.
    BPEL calls the business rule in flowN for a size of 20. (processes 20 ids at a time)
    The input request size is huge more than 150K ids at a time. Does BPEL load the whole input xml in memory ( DOM tree)?
    what is a better way to do it

    Avoid calling the BPEL process with big payload.
    It loads everything into memory, you could use debatching technique in the file adapter to split the payload into more manageable sizes.
    Do stress testing to check whether its working fine under different loads.
    --Prasanna                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           

  • Batch input xml files to one flatfile output

    I have a receive location where I would need to wait for couple of minutes to get
    all the xml files needed to process. Every file in that receive location is of same format.
    I would need to produce one output flat file for all the input xml files received within couple of minutes.A mapping need
    to be applied on every file before it's converted to a flat file batch.
    I tried to batch the input xml files but I am unable to implement the mapping which has to be applied on every input xml
    file.
    How do I approach this?

    Thank you for your response.The transformed xml has got header, body and trailer so when I processed two files by using the map in the receive port. The batched output flat file is as below:
    HEADER 27052014                                   
    1      HSGbryan_oNSYS300270520141038                                     
    2      HSG3851911NSYS150220420141455                      22042014       
    3      HSG3851909NSYS150220420141449                      22042014       
    4      HSG3853034NSYS150220420141436                      22042014       
    TRAILER      4
    HEADER 27052014                                   
    1      HSGbryan_oNSYS150270520141045                                     
    TRAILER      1
    However, the required output is
    HEADER 27052014                                   
    1      HSGbryan_oNSYS300270520141038                                     
    2      HSG3851911NSYS150220420141455                      22042014       
    3      HSG3851909NSYS150220420141449                      22042014       
    4      HSG3853034NSYS150220420141436                      22042014        
    5      HSGbryan_oNSYS150270520141045                                     
    TRAILER      5
    Is there anything we can tweak in to have one header and trailer with the body having sequential row count for the entire flat file batched message?

  • Java input xml data and xsl template -output file excel

    i need help or same special link on web.
    i must develop code or use a special tool that make this.
    INPUT:
    xml that contain real data
    xsl that explain a report template
    OUTPUT:
    file excel that show the template xsl with xml data source
    thank for help me.

    Hi,
    Please refer to "Oracle XML Publisher User's Guide".
    Applications Releases 11i and 12
    http://www.oracle.com/technetwork/indexes/documentation/index.html
    This is also explained in the document attached in (Publishing Concurrent Requests with XML Publisher [ID 295409.1]).
    Thanks,
    Hussein

  • Generating Input XML

    Hi,
    I have a schema and a xsl file.Is there any way to generate the input xml file using the same?
    find my sample xsl file below :
    <?xml version="1.0" encoding="iso-8859-1"?>
    <!-- � 2004-2005 Pantero Corporation. All rights reserved. -->
    <!-- Exporting Pantero maps to XSLT file:                  -->
    <!-- Source Type: com.cingular.ngLimitedXmlSchemaDataSource.Contact -->
    <!-- Target Type: com.cingular.cingularCommon.Contact -->
    <xsl:stylesheet version="1.1"
         xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
         <xsl:output method="xml" encoding="UTF-8"/>
         <xsl:template match="/Contact">
                   <xsl:element name="Contact" namespace="http://www.CingularCommonXmlSchema.com/CingularCommonXmlSchema.xsd">
                   <xsl:element name="BusinessPhone" namespace="http://www.CingularCommonXmlSchema.com/CingularCommonXmlSchema.xsd">
                             <xsl:value-of select="./businessPhone"/>
                   </xsl:element>
                   <xsl:element name="City" namespace="http://www.CingularCommonXmlSchema.com/CingularCommonXmlSchema.xsd">
                             <xsl:value-of select="./city"/>
                   </xsl:element>
                   <xsl:element name="ContactType" namespace="http://www.CingularCommonXmlSchema.com/CingularCommonXmlSchema.xsd">
                             <xsl:value-of select="./contactType"/>
                   </xsl:element>
                   <xsl:element name="EntityName" namespace="http://www.CingularCommonXmlSchema.com/CingularCommonXmlSchema.xsd">
                             <xsl:value-of select="./name"/>
                   </xsl:element>
                   <xsl:element name="StateAbbreviation" namespace="http://www.CingularCommonXmlSchema.com/CingularCommonXmlSchema.xsd">
                             <xsl:value-of select="./state"/>
                   </xsl:element>
              <xsl:comment> concatWithDelimiter(AddressLineOne, AddressLineTwo, ", ") TO StreetAddress1 </xsl:comment>
                   <xsl:element name="TollFreePhone" namespace="http://www.CingularCommonXmlSchema.com/CingularCommonXmlSchema.xsd">
                             <xsl:value-of select="./tollFreePhone"/>
                   </xsl:element>
                   <xsl:element name="Zip" namespace="http://www.CingularCommonXmlSchema.com/CingularCommonXmlSchema.xsd">
                             <xsl:value-of select="./zip"/>
                   </xsl:element>
                   </xsl:element>
         </xsl:template>
    </xsl:stylesheet>here is the xsd :
    i am using CONTACT in this xsd....
    <?xml version="1.0" encoding="utf-8"?>
    <!--  CONFIDENTIAL LICENSED MATERIAL
          � 2004-2005 Pantero Corporation. All rights reserved.     -->
    <!-- Exporter Configuration Options:
         Include all the packages in the selected schema.
         Complex Types Only - false               
         Include Required Rules - true               
         Include Reverse Relationships - false     
         Export with Weak Typing - false-->
    <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
    xmlns:tns="http://www.CingularCommonXmlSchema.com/CingularCommonXmlSchema.xsd"
    targetNamespace="http://www.CingularCommonXmlSchema.com/CingularCommonXmlSchema.xsd">
    <!-- Type name: com.cingular.cingularCommonXmlSchema.Battery-->
       <xs:element name="Battery" type="tns:Battery"/>
       <xs:complexType name="Battery">
          <xs:sequence>
             <xs:element name="HoursAtFullCapacity" minOccurs="0" type="xs:int"/>
             <xs:element name="InstallationDate" minOccurs="0" type="xs:date"/>
             <xs:element name="Manufacturer" minOccurs="0" type="xs:string"/>
             <xs:element name="Model" minOccurs="0" type="xs:string"/>
             <xs:element name="NumberOfBatteries" minOccurs="0" type="xs:int"/>
             <xs:element name="NumberOfCells" minOccurs="0" type="xs:int"/>
          </xs:sequence>
       </xs:complexType>
    <!-- Type name: com.cingular.cingularCommonXmlSchema.Contact-->
       <xs:element name="Contact" type="tns:Contact"/>
       <xs:complexType name="Contact">
          <xs:sequence>
             <xs:element name="BusinessPhone" minOccurs="0" type="xs:string"/>
             <xs:element name="City" minOccurs="0" type="xs:string"/>
             <xs:element name="ContactType" minOccurs="0" type="xs:string"/>
             <xs:element name="EntityName" minOccurs="0" type="xs:string"/>
             <xs:element name="StateAbbreviation" minOccurs="0" type="xs:string"/>
             <xs:element name="StreetAddress1" minOccurs="0" type="xs:string"/>
             <xs:element name="TollFreePhone" minOccurs="0" type="xs:string"/>
             <xs:element name="Zip" minOccurs="0" type="xs:string"/>
          </xs:sequence>
       </xs:complexType>
    <!-- Type name: com.cingular.cingularCommonXmlSchema.Generator-->
       <xs:element name="Generator" type="tns:Generator"/>
       <xs:complexType name="Generator">
          <xs:sequence>
             <xs:element name="Manufacturer" minOccurs="0" type="xs:string"/>
             <xs:element name="Rating" minOccurs="0" type="xs:string"/>
             <xs:element name="Receptacle" minOccurs="0" type="xs:string"/>
          </xs:sequence>
       </xs:complexType>
    <!-- Type name: com.cingular.cingularCommonXmlSchema.GetContactByKeyRequest-->
       <xs:element name="GetContactByKeyRequest" type="tns:GetContactByKeyRequest"/>
       <xs:complexType name="GetContactByKeyRequest">
          <xs:sequence>
             <xs:element name="contactId" minOccurs="0" type="xs:string"/>
          </xs:sequence>
       </xs:complexType>
    <!-- Type name: com.cingular.cingularCommonXmlSchema.GetContactByKeyResponse-->
       <xs:element name="GetContactByKeyResponse" type="tns:GetContactByKeyResponse"/>
       <xs:complexType name="GetContactByKeyResponse">
          <xs:sequence>
             <xs:element name="Contact" type="tns:Contact" minOccurs="0"/>
          </xs:sequence>
       </xs:complexType>
    <!-- Type name: com.cingular.cingularCommonXmlSchema.Location-->
       <xs:element name="Location" type="tns:Location"/>
       <xs:complexType name="Location">
          <xs:sequence>
             <xs:element name="AlarmResponsibility" minOccurs="0" type="xs:string"/>
             <xs:element name="CellSiteId" minOccurs="0" type="xs:int"/>
             <xs:element name="City" minOccurs="0" type="xs:string"/>
             <xs:element name="CLLI" minOccurs="0" type="xs:string"/>
             <xs:element name="ConstructionDate" minOccurs="0" type="xs:date"/>
             <xs:element name="Country" minOccurs="0" type="xs:string"/>
             <xs:element name="County" minOccurs="0" type="xs:string"/>
             <xs:element name="CTSEntryId" minOccurs="0" type="xs:string"/>
             <xs:element name="CTSLocationId" minOccurs="0" type="xs:string"/>
             <xs:element name="Directions" minOccurs="0" type="xs:string"/>
             <xs:element name="FCCASRNumber" minOccurs="0" type="xs:string"/>
             <xs:element name="FinancialLocation" minOccurs="0" type="xs:string"/>
             <xs:element name="Floor" minOccurs="0" type="xs:string"/>
             <xs:element name="Height" minOccurs="0" type="xs:int"/>
             <xs:element name="IsActive" minOccurs="0" type="xs:int"/>
             <xs:element name="IsCingularOwned" minOccurs="0" type="xs:int"/>
             <xs:element name="IsLighted" minOccurs="0" type="xs:int"/>
             <xs:element name="Latitude" minOccurs="0" type="xs:double"/>
             <xs:element name="LocationId" minOccurs="0" type="xs:int"/>
             <xs:element name="LocationType" minOccurs="0" type="xs:string"/>
             <xs:element name="Longitude" minOccurs="0" type="xs:double"/>
             <xs:element name="MeanHeightAboveSeaLevel" minOccurs="0" type="xs:int"/>
             <xs:element name="MorphologyType" minOccurs="0" type="xs:string"/>
             <xs:element name="PhoneNumber" minOccurs="0" type="xs:string"/>
             <xs:element name="Room" minOccurs="0" type="xs:string"/>
             <xs:element name="SiteAccessDescription" minOccurs="0" type="xs:string"/>
             <xs:element name="StateAbbreviation" minOccurs="0" type="xs:string"/>
             <xs:element name="StreetAddress1" minOccurs="0" type="xs:string"/>
             <xs:element name="StreetAddress2" minOccurs="0" type="xs:string"/>
             <xs:element name="SubleaseRights" minOccurs="0" type="xs:int"/>
             <xs:element name="UsId" minOccurs="0" type="xs:string"/>
             <xs:element name="XNGAltSiteId" minOccurs="0" type="xs:string"/>
             <xs:element name="Zip" minOccurs="0" type="xs:string"/>
             <xs:element name="ZipPLUS4" minOccurs="0" type="xs:string"/>
             <xs:element name="Contact" type="tns:Contact" minOccurs="0" maxOccurs="unbounded"/>
             <xs:element name="Market" type="tns:Market" minOccurs="0"/>
          </xs:sequence>
       </xs:complexType>
    <!-- Type name: com.cingular.cingularCommonXmlSchema.Market-->
       <xs:element name="Market" type="tns:Market"/>
       <xs:complexType name="Market">
          <xs:sequence>
             <xs:element name="Market" minOccurs="0" type="xs:string"/>
             <xs:element name="MarketCluster" minOccurs="0" type="xs:string"/>
             <xs:element name="Region" minOccurs="0" type="xs:string"/>
          </xs:sequence>
       </xs:complexType>
    <!-- Type name: com.cingular.cingularCommonXmlSchema.Project-->
       <xs:element name="Project" type="tns:Project"/>
       <xs:complexType name="Project">
          <xs:sequence>
             <xs:element name="M145ActualDate" minOccurs="0" type="xs:date"/>
             <xs:element name="M145ForecastDate" minOccurs="0" type="xs:date"/>
             <xs:element name="M150ActualDate" minOccurs="0" type="xs:date"/>
             <xs:element name="M150ForecastDate" minOccurs="0" type="xs:date"/>
             <xs:element name="M80ActualDate" minOccurs="0" type="xs:date"/>
             <xs:element name="M80ForecastDate" minOccurs="0" type="xs:date"/>
             <xs:element name="ProjectNumber" minOccurs="0" type="xs:string"/>
             <xs:element name="SearchringName" minOccurs="0" type="xs:string"/>
             <xs:element name="Location" type="tns:Location" minOccurs="0"/>
          </xs:sequence>
       </xs:complexType>
    <!-- Type name: com.cingular.cingularCommonXmlSchema.RBS-->
       <xs:element name="RBS" type="tns:RBS"/>
       <xs:complexType name="RBS">
          <xs:sequence>
             <xs:element name="AffectedManagedObject" minOccurs="0" type="xs:string"/>
             <xs:element name="CTSSiteId" minOccurs="0" type="xs:string"/>
             <xs:element name="BaseStationType" minOccurs="0" type="xs:string"/>
             <xs:element name="BeastBSCName" minOccurs="0" type="xs:string"/>
             <xs:element name="BeastCellId" minOccurs="0" type="xs:string"/>
             <xs:element name="CellNetwork" minOccurs="0" type="xs:string"/>
             <xs:element name="CLLI3" minOccurs="0" type="xs:string"/>
             <xs:element name="CTSCellId" minOccurs="0" type="xs:string"/>
             <xs:element name="CTSSwitchName" minOccurs="0" type="xs:string"/>
             <xs:element name="DisasterRecoveryType" minOccurs="0" type="xs:string"/>
             <xs:element name="EquipmentType" minOccurs="0" type="xs:string"/>
             <xs:element name="Frequency" minOccurs="0" type="xs:string"/>
             <xs:element name="IntegrationActualCompletionDate" minOccurs="0" type="xs:date"/>
             <xs:element name="IntegrationDirectionType" minOccurs="0" type="xs:string"/>
             <xs:element name="IntegrationPlannedCompletionDate" minOccurs="0" type="xs:date"/>
             <xs:element name="IntegrationStartDate" minOccurs="0" type="xs:date"/>
             <xs:element name="IsActive" minOccurs="0" type="xs:int"/>
             <xs:element name="Name" minOccurs="0" type="xs:string"/>
             <xs:element name="OffAirDate" minOccurs="0" type="xs:date"/>
             <xs:element name="OnAirPublicDate" minOccurs="0" type="xs:date"/>
             <xs:element name="OPSDistrict" minOccurs="0" type="xs:string"/>
             <xs:element name="OPSZone" minOccurs="0" type="xs:string"/>
             <xs:element name="PromisSiteId" minOccurs="0" type="xs:string"/>
             <xs:element name="RBSId" minOccurs="0" type="xs:int"/>
             <xs:element name="RFDistrict" minOccurs="0" type="xs:string"/>
             <xs:element name="SiteType" minOccurs="0" type="xs:string"/>
             <xs:element name="TechnologyDefinitionType" minOccurs="0" type="xs:string"/>
             <xs:element name="TechnologyType" minOccurs="0" type="xs:string"/>
             <xs:element name="TeleserviceType" minOccurs="0" type="xs:string"/>
             <xs:element name="UsId" minOccurs="0" type="xs:string"/>
             <xs:element name="Vendor" minOccurs="0" type="xs:string"/>
             <xs:element name="Location" type="tns:Location" minOccurs="0"/>
             <xs:element name="Market" type="tns:Market" minOccurs="0"/>
          </xs:sequence>
       </xs:complexType>
    <!-- Type name: com.cingular.cingularCommonXmlSchema.Sector-->
       <xs:element name="Sector" type="tns:Sector"/>
       <xs:complexType name="Sector">
          <xs:sequence>
             <xs:element name="AntennaAverageCellRadius" minOccurs="0" type="xs:double"/>
             <xs:element name="AntennaBeamWidth" minOccurs="0" type="xs:double"/>
             <xs:element name="AntennaBearing" minOccurs="0" type="xs:double"/>
             <xs:element name="AntennaEffectiveRadiatedPower" minOccurs="0" type="xs:double"/>
             <xs:element name="AntennaEffectiveRadiatedPowerUOM" minOccurs="0" type="xs:string"/>
             <xs:element name="AntennaForwardPower" minOccurs="0" type="xs:double"/>
             <xs:element name="AntennaRadiationCenter" minOccurs="0" type="xs:double"/>
             <xs:element name="AntennaTiltDegrees" minOccurs="0" type="xs:int"/>
             <xs:element name="AntennaTiltType" minOccurs="0" type="xs:string"/>
             <xs:element name="AntennaType" minOccurs="0" type="xs:string"/>
             <xs:element name="CellId" minOccurs="0" type="xs:string"/>
             <xs:element name="HardSector" minOccurs="0" type="xs:string"/>
             <xs:element name="IsActive" minOccurs="0" type="xs:int"/>
             <xs:element name="LocationAreaCode" minOccurs="0" type="xs:string"/>
             <xs:element name="OnAirDate" minOccurs="0" type="xs:date"/>
             <xs:element name="ParentId" minOccurs="0" type="xs:int"/>
             <xs:element name="ParentName" minOccurs="0" type="xs:string"/>
             <xs:element name="RBSId" minOccurs="0" type="xs:int"/>
             <xs:element name="RBSSId" minOccurs="0" type="xs:int"/>
             <xs:element name="SoftSector" minOccurs="0" type="xs:string"/>
             <xs:element name="UseId" minOccurs="0" type="xs:string"/>
             <xs:element name="Project" type="tns:Project" minOccurs="0"/>
             <xs:element name="RBS" type="tns:RBS" minOccurs="0"/>
          </xs:sequence>
       </xs:complexType>
    <!-- Type name: com.cingular.cingularCommonXmlSchema.Tank-->
       <xs:element name="Tank" type="tns:Tank"/>
       <xs:complexType name="Tank">
          <xs:sequence>
             <xs:element name="TotalStorageCapacity" minOccurs="0" type="xs:double"/>
          </xs:sequence>
       </xs:complexType>
    </xs:schema>Thanks
    Vivek

    Madhu,
    You may:
    1. Generate XML Document manually with DOM API
    2. Use some complex lib like implementation of <a href="http://java.sun.com/webservices/jaxb/">JAXB</a> with ad-hoc control over format.
    3. Use some simple library like <a href="http://xstream.codehaus.org/">XStream</a> with minimal format control.
    Valery Silaev
    EPAM Systems
    http://www.NetWeaverTeam.com

  • ProC: DESCRIBE INPUT not generating the correct no of bind variables

    Hi
    I'm having an issue with ProC using the ANSI dynamic SQL where after using DESCRIBE INPUT to full the descriptor with the bind variable information, the subsequent call to GET DESCRIPTOR... :bind_count = COUNT returns 0. The SQL statement is a select along the lines of: select col_01 from tab_01 where col_02 = :bind_var.
    Any idea on what the issue could be?
    Dale

    Forgot to add:
    If I attempt to OPEN the CURSOR, I get ORA-01008: not all variables bound. If I force the code to assume there is 1 bind variable (as the select in question has one), when I then assign the c variable to the DESCRIPTOR I get SQL-02122: Invalid OPEN or PREPARE for this database connection.
    The AT command has been used where it is required and the correct connection is specified for each occurance of the AT in the various embedded EXEC SQL statements.
    Dale

Maybe you are looking for