Custom XML documents in ADF: managing them with MDS?

Deleted. Please ignore.
Edited by: ChristineWolak on Jan 5, 2011 8:02 AM

ChristineWolak wrote:
1. We want to have a DTD that will describe the metadata requirements. This should be possible, I think, though I don't know if it will validate any changes to the source file against the DTD.For version 11.1.1.3.0, the DTD referenced by the BC metadata is jbo_03_01.dtd. This file is packaged in a number of jars, among them adfm.jar in the following package \oracle\jbo\dtd. The adfm.jar can be found under %MIDDLEWARE_HOME%\oracle_common\modules\oracle.adf.model_11.1.1
4. If all of the above is possible, then it should be possible to retrieve the XML document from the MDS repository, right? Can you tell me what the API is for that?Currently there is limited documentation - none that is ;), on how to achive this but possible if you dig around. Check this out: http://adfcodebits.blogspot.com/2010/12/bit-28-using-finddefobject-to-load-bc.html

Similar Messages

  • Receiving Custom XML Document over AS2 (HTTPS) - Inbound Processing

    Hi All,
    Need help in Receiving Custom XML Document over AS2 (HTTPS) - Inbound Processing
    External Trading Partner will be able to post the XML Documents to https://<b2bconsolehost>:<b2bconsoleport>/b2b/httpReceiver.
    Here is the process flow:
    1. External Trading Partner will be posting the XML Documents to https://<b2bconsolehost>:<b2bconsoleport>/b2b/httpReceiver
    2. B2B, consumes the Custom XML validates as per the XSD and process it.
    3. How to send the ACK back to External Trading Partner if it validates successfully and sent it to 'IP_IN_QUEUE'
    4. How to send the ACK back to External Trading Partner if the validation fails after receiving the XML document.
    5. Does the External Trading Partner require any certificates to post the XML Documents to https://<b2bconsolehost>:<b2bconsoleport>/b2b/httpReceiver (no need of encryption/decryption)?
    6. How to enable the B2B server to accept the HTTPS messages from the Trading Partner (no need of encryption/decryption).
    Please let me know. Thanks In Advance.
    Regards,
    Amirineni

    Hi Nandu, Ramesh,
    We have done the set-ups for transmitting a Custom XML Document over HTTP1.1 in B2B.
    Our Business Case is as follows:
    1. Read the Flat File using BPEL File Adapter
    2. Transform the Message in BPEL and send it to B2B
    2. Based on the set-ups in B2B, we need to post the XML message to the folliwng URL:-
    http://databridge.buy.datastream.net:5555/invoke/dsImport/receiveXML
    In the B2B Set-Ups, I have done the following:
    Business Protocol name: Custom Document over Internet
    Exchange Protocol: AS
    Document Protocol: Custom
    Transport Protocol: HTTP-1.1
    Host name : http://databridge.buy.datastream.net
    Port: 5555
    I have also deployed the agreement as well as the configuration. The issue that I am currently facing is when I select the configuration in WSIL browser in JDeveloper, I am getting the following error:
    "Unable to get schema information for target".
    Hence I am not able to map the message in BPEL and send it to B2B.
    Could you please let me know the possible causes and if I am missing anything in the set-ups in B2B.
    As always, your help and guidance is highly appreciated.
    Thanks,
    Dibya

  • Custom XML Document over AS2

    Hi All,
    We are planning to send Custom XML Document over HTTP(AS2) to the Remote Trading Partner. The XML Document needs to be posted to a particular URL in the Remote Trading Partner Site.Here is the process flow:
    1. The input application format file having the messages will be transformed to an XML message in BPEL.
    2. Then as per the set-ups done in B2B, this particular XML message needs to be posted to a URL.
    I went through the B2B User's Guide but could not find any documentation on how to set up Custom XML Document over HTTP(AS2).
    Could you please share the documents/technical notes or link which I can refer to do the set-ups in B2B.
    Please let me know. Thanks In Advance.
    Regards,
    DIbya

    Hi Nandu, Ramesh,
    We have done the set-ups for transmitting a Custom XML Document over HTTP1.1 in B2B.
    Our Business Case is as follows:
    1. Read the Flat File using BPEL File Adapter
    2. Transform the Message in BPEL and send it to B2B
    2. Based on the set-ups in B2B, we need to post the XML message to the folliwng URL:-
    http://databridge.buy.datastream.net:5555/invoke/dsImport/receiveXML
    In the B2B Set-Ups, I have done the following:
    Business Protocol name: Custom Document over Internet
    Exchange Protocol: AS
    Document Protocol: Custom
    Transport Protocol: HTTP-1.1
    Host name : http://databridge.buy.datastream.net
    Port: 5555
    I have also deployed the agreement as well as the configuration. The issue that I am currently facing is when I select the configuration in WSIL browser in JDeveloper, I am getting the following error:
    "Unable to get schema information for target".
    Hence I am not able to map the message in BPEL and send it to B2B.
    Could you please let me know the possible causes and if I am missing anything in the set-ups in B2B.
    As always, your help and guidance is highly appreciated.
    Thanks,
    Dibya

  • Include messageID in the custom XML document

    Hello B2B Gurus
    Requirement is to include the B2B messageID in XML Payload? For CUstom documents how can this be acheived? is it possible to extract the message ID from the B2B_WIRE_MESSAGE table before the message is sent across the wire to the destination end point.
    Our Requirement is to package the cutom documnet as a SOAP message and also include MessageID in the SOAP headers. SOAP packaging can be acheived through middleware but I am not sure how to extract the messageID? I thought about callout .... but seems like callout interface doesn't provide any additioanl api's to extract the messageID. Please help.

    Hi Anuj
    Thanks for your response.
    Yes it is for O/B Custom Documents. I have used the BPEL Advanced function "generate-guid()" for the messageID generation and I could see the B2B_WIRE_MESSAGE.messageID being populated with the generted messageiD.
    No issues here. Is there an issue with ithis approach?
    Also, I have noticed that the messageID generated internally by B2B is very different from userGenerated messageID.
    For example: B2B Generated Message ID looks like 8A7F95E8131049BE5D9000001693F06F
    where as user genrated looks like 2d363037353031393135323537363133
    do I need to use any special functions to keep the messageID consistent with B2B generated messageID?
    Thanks

  • When attaching documents using GOS send them with workflow

    Hello experts,
    I have a scenario. We have to attach documents to SAP application using GOS. These documents can be edited also.
    Now second part is that when we attach the document or edit the document, the document should be send with the work item "when we attach the document".
    The first part of the scenario is completed and working fine. The second part of the scenario is causing problem. I have checked the various options but none of them are proving helpful.
    There is an option in GOS toolbar to send the documents through workflow but that also asks for the related workflow.
    I was trying to create an event for GOS object which can trigger the workflow automatically when the attachment are created and edited but can not go further with it as not so strong in workflow.
    I request you to kindly help me either in creating this event which will trigger the workflow (whole process) or any other method to do the same.
    Thank you all in advance.

    Hello Andrés,
    Thank you for replying. The main problem is starting the workflow. For that I need to create an event and that is my biggest trouble. I have seen the object IFSAP already. There are no events in it and as such I have created my custom object as super type.
    So I need to create the event from scratch.
    Hope my requirement is clear.
    Thank you.
    Edited by: Apoorv Lohani on Feb 3, 2012 7:54 AM

  • Custom XML Document Tutorial

    Where can i find the ebMSOrder.xml and ebMSOrder.xsd for the tutorial?
    Thanks

    Ramesh,
    Thank you for help. Do you have the export files for setting up the
    custom document over ebMS? I got the following error "AIP-50083
    Document protocol identification error".
    Thanks
    Chaucer

  • ADF Calendar Issue with MDS

    JDeveloper 11.1.1.4.0
    With the ADF Calendar, I able to programmatically control most of its features such as setting ActiveDay, View, etc.
    But, when I turn MDS on and I interact directly in the calendar (such as changing the views, or clicking on the day which switches the view), any programmatic control I do to it just stops refreshing the calendar.
    I inspected it and data is there, data shows up, activeDay is changed... But the calendar itself just doesn't change its view to the new activeDay.
    Eg. I'm viewing March and I changed the active day to somewhere in August, I will still end up viewing March. No refresh nor flicker.
    This issue is only happening when MDS is turned on.
    I wonder if anyone has got around this issue?
    -Marvin

    Hi Marvin
    I have a issue with Calendar component in ADF , I have similar requirement as you , I want to change the display month of Calendar on selecting the Month for Ex I select May I shud get May's Calendar and if March is selected I want to display March Calendar , I wanted to know how did you implement this ?
    I am trying to set the activeDay of RichCalendar on selection of Month and year , For example I select May 2011, Then in value Change Listener I pass the 01 May 2011 as Date to a method and trying to set the activeDay attribute of RichCalendar so that the Calendar will display the calendar for Month of May with 1st May as active Day. Now I have two questions is such a thing possible using
    below method, setActiveDayCompInstance()
    Second I am getting null pointer exception for the line , why so ??
    reqContext.getChangeManager().addComponentChange(context, calendar, aa);
    My Method for setting active Day
    public void setActiveDayCompInstance(Date activeDay)
    System.out.println(activeDay);
    RichCalendar calendar = getCalendarComponent();
    calendar.setActiveDay(activeDay);
    // Implicitly record a change for 'activeDay' attribute
    AttributeComponentChange aa =
    new AttributeComponentChange(RichCalendar.ACTIVE_DAY_KEY.getName(), activeDay);
    RequestContext reqContext = RequestContext.getCurrentInstance();
    FacesContext context = FacesContext.getCurrentInstance();
    System.out.println("reqContext"+aa +reqContext.getChangeManager());
    reqContext.getChangeManager().addComponentChange(context, calendar, aa); // Null Pointer exception
    Stack Trace for Null pointer
    at org.apache.myfaces.trinidad.change.BaseChangeManager.addComponentChange(BaseChangeManager.java:58)
    at org.apache.myfaces.trinidad.change.SessionChangeManager.addComponentChange(SessionChangeManager.java:64)
    at MyNest.Timesheet.calendar.TimesheetCalendarBean.setActiveDayCompInstance(TimesheetCalendarBean.java:1482)
    at MyNest.Timesheet.calendar.TimesheetCalendarBean.yearChangeListener(TimesheetCalendarBean.java:1196)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)

  • Not able to generate AS2 MDN when receiving custom XML via AS2

    Hi friends,
    I have setup the trading partner and the corresponding TP certificate import for receiving the custom XML via AS2 channel.
    I am receiving the custom xml properly to oracle b2b and able to receive the same to bpel as well. however in the oracle b2b console under reports tab i am seeing only one record for inbound document receive and i am not seeing the other record for the AS2 MDN going back to vendor. I have setup the AS2 channel under the external trading partner --> Channel using the vendor AS2 URL and selected all the security parameters while creating the Outbound AS2 channel.
    1. Not able to generate AS2 MDN when receiving custom XML via AS2.
    2. eventhough i am able to decrypt the inbound custom XML and ablr to recieve it in bpel also for processing, in the reports tab the inbound message state is changing to MSG_ERROR and it has the folloing error message:
    Error Code
    B2B-50037
    Error Description
    Machine Info: (***********)  Description: B2B inbound message processing error
    Error Level
    ERROR_LEVEL_COLLABORATION
    for AS2 MDN generation for custom XML receiving using As2 protocol, do we need to setup anything other than the outbound As2 Channel using the external vendor AS2 URL?
    Can you please help me how can i generate the AS2 MDN for the inbound custom XML document i have received and also why the inbound message is failing even though i am receiving the custom XML properly to bpel?
    Thanks,
    Amirineni.

    Hi Prasanna,
    Vendor has enabled the ACK mode as SYNC.
    Below are the headers for the inbound message to B2B. and we are able to receive the input message to bpel also.
    Protocol Transport Binding
    ChannelName=******** AS2-To=****AS2 TE=trailers, deflate, gzip, compress Date=Thu, 02 Oct 2014 14:26:31 GMT AS2-Version=1.2 Accept-Encoding=deflate, gzip, x-gzip, compress, x-compress AS2-From=****AS2 Disposition-Notification-Options=signed-receipt-protocol=optional, pkcs7-signature; signed-receipt-micalg=optional, sha1 Disposition-Notification-To=https://******/as2 Message-ID=<CLEO-20141002_142630452-31X54N@****_*****AS2.pcwbedi1-O> Content-type=application/pkcs7-mime; smime-type=enveloped-data; name=smime.p7m Content-length=747006 MSG_RECEIVED_TIME=Thu Oct 02 10:26:39 EDT 2014 Subject=EDI ECID-Context=1.005175bK7U^AXNJCAnf9Cx0002pW000yjX;kXjE1ZDLIPGIj2QCYV8QoKSSILRO_PQT_IS Proxy-Client-IP=****** Recipient-Address=https://******/b2b/httpReceiver User-Agent=RPT-HTTPClient/0.3-3I (Windows 2003) X-Forwarded-For=****** Content-Disposition=attachment; filename="smime.p7m" Host=****** EDIINT-Features=CEM, multiple-attachments, AS2-Reliability Connection=Keep-Alive X-WebLogic-KeepAliveSecs=30 X-WebLogic-Force-JVMID=-1497702782 From=****** Mime-Version=1.0
    Message Digest
    Message Digest
    Digest Algorithm
    sha1
    Transport Protocol
    HTTP
    Transport Protocol Version
    1.0
    Url
    http://******
    security
    Transport Headers
    ChannelName=****** AS2-To=******AS2 TE=trailers, deflate, gzip, compress Date=Thu, 02 Oct 2014 14:26:31 GMT AS2-Version=1.2 Accept-Encoding=deflate, gzip, x-gzip, compress, x-compress AS2-From=****AS2 Disposition-Notification-Options=signed-receipt-protocol=optional, pkcs7-signature; signed-receipt-micalg=optional, sha1 Disposition-Notification-To=https://******/as2 Message-ID=<CLEO-20141002_142630452-31X54N@****AS2_*****AS2.pcwbedi1-O> Content-type=application/pkcs7-mime; smime-type=enveloped-data; name=smime.p7m Content-length=747006 MSG_RECEIVED_TIME=Thu Oct 02 10:26:39 EDT 2014 Subject=EDI ECID-Context=1.005175bK7U^AXNJCAnf9Cx0002pW000yjX;kXjE1ZDLIPGIj2QCYV8QoKSSILRO_PQT_IS Proxy-Client-IP=***** Recipient-Address=*******/b2b/httpReceiver User-Agent=RPT-HTTPClient/0.3-3I (Windows 2003) X-Forwarded-For=******* Content-Disposition=attachment; filename="smime.p7m" Host=***** EDIINT-Features=CEM, multiple-attachments, AS2-Reliability Connection=Keep-Alive X-WebLogic-KeepAliveSecs=30 X-WebLogic-Force-JVMID=-1497702782 From=***** Mime-Version=1.0
    Thanks,
    Amirineni

  • Creating an xml document from filenames of selected files

    Hey guys, I am totally new to automator and applescript so please be kind!
    I have an xml/flash image portfolio website which has image galleries. Each gallery has an xml document which specifies a thumbnail and full size photo to be displayed in the gallery. If I want to make a new gallery I have to make a new xml document and enter all the filenames of the images I want to display in the gallery. ( I guess you can see where this is going).
    This is fine if I have 10 images in the gallery but if I want to make a gallery with 350 images in then it could get pretty tedious.
    What I would love to be able to do is select a group of images and then have a script or automator action that can copy the files names and create a new gallery xml document containing the relevant code with all the files names. Ideally then saving the gallery with a sequential filename.
    Tying this into the new contextual services menu in snow leopard would really make the task incredibly easy.
    Is this possible? I'm not scared of learning how to do this therefore some pointers in the right direction would be great.
    Thanks,
    Chris

    Thanks Camalot,
    I was just thinking of selecting images from the finder but if this could be integrated into Aperture's export dialog that would be even better.
    this is the xml:
    <?xml version="1.0" encoding="utf-8"?>
    <gallery thumbwidth="220" thumbheight="138" columns="3" gap="4">
    <item>
    <ID>1</ID>
    <title><![CDATA[Title 1]]></title>
    <desc><![CDATA[This is description 1. <font color="#0099CC">This is a colourful text. </font> This is a <a href="http://www.flashden.net/user/iceonflames">link</a>. <i>This is italic text.</i> <b>This is bold text.</b> <b><i>This is bold italic text.</i></b> This text is styled by a CSS document.<br/><br/>]]></desc>
    <thumb>images/thumbs/7.jpg</thumb>
    <image>images/big/7.jpg</image>
    </item>
    <item>
    <ID>2</ID>
    <thumb>images/thumbs/8.jpg</thumb>
    <image>images/big/8.jpg</image>
    </item>
    <item>
    <ID>3</ID>
    <title><![CDATA[Title 3]]></title>
    <desc><![CDATA[This is description 3. <font color="#0099CC">This is a colourful text. </font> This is a <a href="http://www.flashden.net/user/iceonflames">link</a>. <i>This is italic text.</i> <b>This is bold text.</b> <b><i>This is bold italic text.</i></b> This text is styled by a CSS document.<br/><br/>]]></desc>
    <thumb>images/thumbs/9.jpg</thumb>
    <image>images/big/9.jpg</image>
    </item>
    </gallery>

  • XML document creation

    Does anyone know of a Javascript or PHP script that will
    allow a client to create new and update existing xml documents that
    can be used with the Spry Dataset, through an admin area?

    I don't know of such a system. We do have a script that can
    convert queries to XML:
    http://labs.adobe.com/technologies/spry/samples/utils/query2xml.html
    And I know there are PHP scripts for inserting and updating
    records in a database, which might be easier.
    Hope this helps,
    Donald Booth
    Adobe Spry Team

  • Custom XML Over  Internet

    Where can i download the details reg the Custom XML Over Internet Document protocols information ?

    Hello Saravana,
    We have already send you the artifacts for implementing Custom XML Document over AS2.
    1. Tutorial document (Custom Document):as2tutorial.zipp
    2. Configuration export files attached: as2_export.zipp
    3. Sample payload: Acme_ORDERS.xml.
    While modeling the Document Definition parameters make sure the following(xpath)
    IdentificationExpression(Xpath)= /*/*[local-name()='shipto']/*[local-name()='country']
    for the attached payload(Acme_ORDERS.xml).
    Please let us know if you require any clarifications
    Regards
    Nandagopal.S

  • Read xml-structure from a xml-document stored in a xmltype-column?

    Hello,
    I have several xml-documents stored in a table with a xmltype-column.
    Is it possible to read the structure of one xml-document? I need to know what data are exists in the xml-documents.
    I had read some hours here, but I dont find a suitable solution for that.
    To make a example, what I need:
    I have stored the following xml-document in the table:
    <?xml version = '1.0'?>
    <ROWSET>
    <ROW num="6">
    <EMPLOYEE_ID>105</EMPLOYEE_ID>
    <FIRST_NAME>David</FIRST_NAME>
    <LAST_NAME>Austin</LAST_NAME>
    <EMAIL>DAUSTIN</EMAIL>
    <PHONE_NUMBER>590.423.4569</PHONE_NUMBER>
    <HIRE_DATE>6/25/1997 0:0:0</HIRE_DATE>
    <JOB_ID>IT_PROG</JOB_ID>
    <SALARY>4800</SALARY>
    <MANAGER_ID>103</MANAGER_ID>
    <DEPARTMENT_ID>60</DEPARTMENT_ID>
    </ROW>
    </ROWSET>
    I need to return the following:
    ROWSET
    ...ROW
    ......EMPLOYEE NUMBER
    ......FIRST_NAME VARCHAR2
    ......DEPARTMENT_ID NUMBER
    Regards,
    Mark

    Hi,
    I was on a wrong way. The datatype is not stored in xml, this was a mistake from me.
    I needed something to printout some values from a xml-file. This xml-file was generated bei MS Excel. The data are in /Workbook/Worksheet/Table/Cell and I didnt know how to access it.
    I write for that the following:
    DECLARE
    v_xml XMLType;
    v_doc dbms_xmldom.DOMDocument;
    v_node dbms_xmldom.DOMNode;
    type t_values is table of varchar2(2000) index by binary_integer;
    v_values t_values;
    type t_table is table of t_values index by binary_integer;
    v_table t_table;
    procedure node_output (v_node in out dbms_xmldom.DOMNode)
    is
    v_nodelist1 DBMS_XMLDOM.DOMNodeList;
    v_nodelist2 DBMS_XMLDOM.DOMNodeList;
    v_anzahlnodes number;
    v_anzahlrows number;
    v_node_c dbms_xmldom.DOMNode;
    v_xmlmitarbeiterid number;
    begin
    v_nodelist1 := dbms_xmldom.GETCHILDNODES(v_node);
    v_anzahlrows := DBMS_XMLDOM.GETLENGTH(v_nodelist1);
    if v_anzahlrows = 0 or DBMS_XMLDOM.GETNODENAME(v_node) = 'Table'
    then
    if v_anzahlrows > 0
    then
    for i1 in 0..v_anzahlrows - 1
    loop
    v_node := dbms_xmldom.Item(v_nodelist1,i1);
    v_nodelist2 := dbms_xmldom.GETCHILDNODES(v_node);
    v_anzahlnodes := DBMS_XMLDOM.GETLENGTH(v_nodelist2);
    for i2 in 0..v_anzahlnodes - 1
    loop
    v_node := dbms_xmldom.Item(v_nodelist2,i2);
    v_node_c := dbms_xmldom.GETFIRSTCHILD(v_node);
    v_node_c := dbms_xmldom.GETFIRSTCHILD(v_node_c);
    v_values(i2) := DBMS_XMLDOM.GETNODEVALUE(v_node_c);
    end loop;
    v_table(i1) := v_values;
    end loop;
    for i1 in 1..v_anzahlrows - 1
    loop
    select SEQ_XMLMITARBEITER.nextval into v_xmlmitarbeiterid from dual;
    for i2 in 1..v_table(i1).count - 1
    loop
    dbms_output.put_line(v_table(i1)(i2));
    end loop;
    end loop;
    end if;
    else
    v_node := dbms_xmldom.GETFIRSTCHILD(v_node);
    for i in 0..v_anzahlrows - 1
    loop
    v_node := dbms_xmldom.Item(v_nodelist1,i);
    node_output(v_node);
    end loop;
    end if;
    end;
    BEGIN
    select inhalt into v_xml FROM xmlimport WHERE name = 'F23973/mitarbeiter.xml';
    v_doc := dbms_xmldom.newDOMDocument(v_xml);
    v_node:= dbms_xmldom.makeNode(dbms_xmldom.getDocumentElement(v_doc));
    node_output(v_node);
    END;
    This gives me all data from a xml-Excel-file. Is there a better way to do that? I have Oracle 10.2.
    Regards,
    Mark

  • Transform Java Beans into XML documents?

    Hi,
    I have standard Java Beans (which are not generated out of XML documents), can I transform them into
    XML documents even if they are not generated out of XML documents originally?
    If not, is there any toll which can do that?
    regards,

    Looks like the java.beans.XMLEncoder class is where you should start.

  • How to access backing bean of a xml component , in a managed bean of ADF

    Hi,
    We wrote a xml component in JSF and this component is used in ADF project by including the component as jar .
    In a master detail page , we need to update the value of the xml component, when the master row is changed. How to do this.
    We are trying to do this by accessing the backing bean of the xml component in ADF project's managed bean. So when ever the row changes, we can access the managed bean in ADF and then can set the value of the xml component by accessing it's backing bean
    But i can't access the backing bean instance of the xml component in the ADF managed bean. Could you let me know how to do this. Thanks .

    Thanks for the response Shay. The xml component is added as a custom component , with a separate faces-config.xml file . This component is added to ADF project as a jar with a custom tag.
    In the ADF project , i'm having different managed beans and i can access them from a different managed bean.
    The issue is, i can't access the added custom component's backing bean which is available from a different jar , defined in a separate faces-config.xml file . This backing bean is defined with request scope.

  • Problem replacing Null nodes with real values in XML documents...

    Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bit Production
    Our friends in Java land are insisting on passing data between Java and PL/SQL using fairly small XML documents (don't ask). I then need to extract the input parameter values and pass them, on to the stored procedures that actually do the work. These return a result which needs to be returned to the java layer in the output XML document.
    Here is a cut down version of the input XML...
    <ParameterList xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <Parameter>
    <Id>1</Id>
    <Result xsi:nil="true"/>
    </Parameter>
    <Parameter>
    <Id>2</Id>
    <Result xsi:nil="true"/>
    </Parameter>
    </ParameterList>
    and this is an example of what I am expected to return...
    <ParameterList xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <Parameter>
    <Id>1</Id>
    *<Result>SUCCESS</Result>*
    </Parameter>
    <Parameter>
    <Id>2</Id>
    *<Result>WARNING</Result>*
    </Parameter>
    </ParameterList>
    i.e. I am expected to replace the value of the Result node with a string indicating the succes or otherwise of the underlying PL/SQL process.
    I am extracting the input values using the DBMS_XMLDOM functions and naively assumed that DBMS_XMLDOM.SETNODEVALUE could be used to update the value in the Result node - It didn't work so I resorted to reading the documentation which revealed that it will not work for a null node.
    Am I going to have to use XSLT to generate the output XML from the Input and incorprate the result? Or is there a simpler way?
    I have used XSLT in Oracle before and still have the nervous tick...

    Thanks A Non,
    With your suggestion and a bit of help from the w3schools.com xml dom tutorial I eventually managed to work out how to do this.
    Here is the code (with all my debug stuff in so it looks worse than it is...)
    create or replace
    PROCEDURE ExtractXMLValues (p_inXml IN CLOB ) IS
    l_string VARCHAR2(4000);
    l_value VARCHAR2(4000);
    l_DOM_doc dbms_xmldom.DOMDocument;
    l_DOM_node dbms_xmldom.DOMNode;
    l_new_DOM_node dbms_xmldom.DOMNode;
    l_new_element dbms_xmldom.DOMElement;
    l_new_DOM_nodevalue dbms_xmldom.DOMNode;
    l_value_Node dbms_xmldom.DOMNode;
    l_parameter_Node dbms_xmldom.DOMNode;
    --l_DOM_nodelist    dbms_xmldom.DOMNodeList;
    l_Result_DOM_node dbms_xmldom.DOMNode;
    BEGIN
    l_DOM_doc := dbms_xmldom.newDomDocument(p_inXml);
    l_DOM_node := dbms_xmldom.makeNode(l_DOM_doc);
    dbms_xmldom.writeToBuffer(l_DOM_node, l_string);
    dbms_output.put_line('1 ' || l_string);
    l_parameter_node := dbms_xslprocessor.selectSingleNode(l_DOM_node,'//Parameter');
    -- get the current values in the XML document for Id and Result
    l_Result_DOM_node := dbms_xslprocessor.selectSingleNode(l_DOM_node,'//Id');
    l_value_Node := dbms_xmldom.getFirstChild(l_Result_DOM_node);
    l_value := dbms_xmldom.getnodevalue(l_value_Node);
    dbms_xmldom.writeToBuffer(l_Result_DOM_node, l_string);
    dbms_output.put_line('2 ' || l_string || ' : ' || l_value);
    l_Result_DOM_node := dbms_xslprocessor.selectSingleNode(l_DOM_node,'//Result');
    l_value_Node := dbms_xmldom.getFirstChild(l_Result_DOM_node);
    l_value := dbms_xmldom.getnodevalue(l_value_Node);
    dbms_xmldom.writeToBuffer(l_Result_DOM_node, l_string);
    dbms_output.put_line('3 ' || l_string || ' : ' || l_value);
    -- create new Result node
    l_new_DOM_node      := dbms_xmldom.makenode(dbms_xmldom.createElement(l_DOM_doc, 'Result'));
    dbms_xmldom.writeToBuffer(l_new_DOM_node, l_string);
    dbms_output.put_line('4 New node : ' || l_string);
    -- create a value for it
    l_new_DOM_nodevalue := dbms_xmldom.makenode(dbms_xmldom.createtextnode(l_DOM_doc, 'SUCCESS'));
    dbms_xmldom.writeToBuffer(l_new_DOM_nodevalue, l_string);
    dbms_output.put_line('5 New node value : ' || l_string);
    -- add the value to the new Result node
    l_new_DOM_nodevalue := dbms_xmldom.appendchild(l_new_DOM_node,  l_new_DOM_nodevalue);
    dbms_xmldom.writeToBuffer(l_new_DOM_node, l_string);
    dbms_output.put_line('6 New node : ' || l_string);
    -- replace the old node with the new one
    l_Result_DOM_node := dbms_xmldom.replaceChild(l_parameter_node, l_new_DOM_node, l_Result_DOM_node);
    dbms_xmldom.writeToBuffer(l_parameter_node, l_string);
    dbms_output.put_line('6 parameter node : ' || l_string);
    dbms_xmldom.writeToBuffer(l_DOM_node, l_string);
    dbms_output.put_line('7 Updated document ' || l_string);
    dbms_xmldom.freeDocument(l_DOM_doc);
    END ExtractXMLValues;
    and the output...
    1 <ParameterList xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <Parameter>
    <Id>1</Id>
    <Result xsi:nil="true"/>
    </Parameter>
    </ParameterList>
    2 <Id>1</Id> : 1
    3 <Result xsi:nil="true"/> :
    4 New node : <Result/>
    5 New node value : SUCCESS
    6 New node : <Result>SUCCESS</Result>
    6 parameter node : <Parameter>
    <Id>1</Id>
    <Result>SUCCESS</Result>
    </Parameter>
    7 Updated document <ParameterList xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <Parameter>
    <Id>1</Id>
    *<Result>SUCCESS</Result>*
    </Parameter>
    </ParameterList>
    One question, why do the dbms_xmldom functions return the Old value? I was expecting the returned value to be the updated node.
    Edited by: Lone voice on May 14, 2009 11:24 AM

Maybe you are looking for