Generating XML From the Database

I'm having trouble formatting xml generated from the database. Here is the format I am trying to generate:
<ADB_DOCUMENT DataSource="CUSTOM_ATTR" FormatVersion="1.1">
     <CUSTOM Table="LOT" Name="K12345.01">
          <ATTR Name="LOT_GROUP_ID" Value="FU023" />
          <ATTR Name="INGOT_ID" Value="FU023-002001" />
          <ATTR Name="VENDOR_LOT" Value="F98765-1" />
     </CUSTOM>
     <CUSTOM Table="PRODUCT" Name="KT5499">
          <ATTR Name="PHOTOCODE" Value="P-89" />
          <ATTR Name="DIE_STATUS" Value="" />
          <ATTR Name="WAFER_SIZE" Value="200" />
     </CUSTOM>
     <CUSTOM Table="EQUIPMENT" Name="KLA21XX">
          <ATTR Name="VENDOR" Value="KLA-Tencor" />
          <ATTR Name="GRADE" Value="A" />
          <ATTR Name="SERVICE" Value="NICE" />
          <ATTR Name="QUALITY" Value="WORLD-CLASS" />
     </CUSTOM>
</ADB_DOCUMENT>
The data is selected from a view. The SQL looks like this:
SELECT ADB_DOCUMENT_DATASOURCE as "DataSource",
ADB_DOCUMENT_FORMATVERSION AS "FormatVersion",
CUSTOM_TABLE as "Table",
CUSTOM_NAME AS "Name",
ATTR_NAME AS "Name",
ATTR_VALUE AS "Value"
FROM EXPORT_TABLE;
Here is an insert statement for the data:
Insert into EXPORT_TABLE (ADB_DOCUMENT_DATASOURCE,ADB_DOCUMENT_FORMATVERSION,CUSTOM_TABLE,CUSTOM_NAME,ATTR_NAME,ATTR_VALUE) values ('CUSTOM_ATTR','1.1','LOT','U0C28.00','ApcDicdPriority','1');
Insert into EXPORT_TABLE (ADB_DOCUMENT_DATASOURCE,ADB_DOCUMENT_FORMATVERSION,CUSTOM_TABLE,CUSTOM_NAME,ATTR_NAME,ATTR_VALUE) values ('CUSTOM_ATTR','1.1','LOT','U0C28.00','ApcOvlPriority','1');
Insert into EXPORT_TABLE (ADB_DOCUMENT_DATASOURCE,ADB_DOCUMENT_FORMATVERSION,CUSTOM_TABLE,CUSTOM_NAME,ATTR_NAME,ATTR_VALUE) values ('CUSTOM_ATTR','1.1','LOT','U0C28.00','ApcOvlThread','353V1A1_XXXX');
Insert into EXPORT_TABLE (ADB_DOCUMENT_DATASOURCE,ADB_DOCUMENT_FORMATVERSION,CUSTOM_TABLE,CUSTOM_NAME,ATTR_NAME,ATTR_VALUE) values ('CUSTOM_ATTR','1.1','LOT','U0C28.00','ApcOvlTypUsed','45');
Insert into EXPORT_TABLE (ADB_DOCUMENT_DATASOURCE,ADB_DOCUMENT_FORMATVERSION,CUSTOM_TABLE,CUSTOM_NAME,ATTR_NAME,ATTR_VALUE) values ('CUSTOM_ATTR','1.1','LOT','U0C28.00','ERFID','EXECUTED');
Insert into EXPORT_TABLE (ADB_DOCUMENT_DATASOURCE,ADB_DOCUMENT_FORMATVERSION,CUSTOM_TABLE,CUSTOM_NAME,ATTR_NAME,ATTR_VALUE) values ('CUSTOM_ATTR','1.1','LOT','U0C28.00','GateCD_Target_PLN','MEDIUM');
Insert into EXPORT_TABLE (ADB_DOCUMENT_DATASOURCE,ADB_DOCUMENT_FORMATVERSION,CUSTOM_TABLE,CUSTOM_NAME,ATTR_NAME,ATTR_VALUE) values ('CUSTOM_ATTR','1.1','LOT','U0C28.00','GateCD_Value','48.29');
Insert into EXPORT_TABLE (ADB_DOCUMENT_DATASOURCE,ADB_DOCUMENT_FORMATVERSION,CUSTOM_TABLE,CUSTOM_NAME,ATTR_NAME,ATTR_VALUE) values ('CUSTOM_ATTR','1.1','LOT','U0C28.00','LastReticle','3365DK0A0A1');
Insert into EXPORT_TABLE (ADB_DOCUMENT_DATASOURCE,ADB_DOCUMENT_FORMATVERSION,CUSTOM_TABLE,CUSTOM_NAME,ATTR_NAME,ATTR_VALUE) values ('CUSTOM_ATTR','1.1','LOT','U0C28.00','LastStepper','STP1308');
Insert into EXPORT_TABLE (ADB_DOCUMENT_DATASOURCE,ADB_DOCUMENT_FORMATVERSION,CUSTOM_TABLE,CUSTOM_NAME,ATTR_NAME,ATTR_VALUE) values ('CUSTOM_ATTR','1.1','LOT','U0C28.00','OOC','DDT');
Insert into EXPORT_TABLE (ADB_DOCUMENT_DATASOURCE,ADB_DOCUMENT_FORMATVERSION,CUSTOM_TABLE,CUSTOM_NAME,ATTR_NAME,ATTR_VALUE) values ('CUSTOM_ATTR','1.1','LOT','U0C28.00','PPCD','MD201020001UN');
Insert into EXPORT_TABLE (ADB_DOCUMENT_DATASOURCE,ADB_DOCUMENT_FORMATVERSION,CUSTOM_TABLE,CUSTOM_NAME,ATTR_NAME,ATTR_VALUE) values ('CUSTOM_ATTR','1.1','LOT','U0C28.00','PPCDLevel','1');
Insert into EXPORT_TABLE (ADB_DOCUMENT_DATASOURCE,ADB_DOCUMENT_FORMATVERSION,CUSTOM_TABLE,CUSTOM_NAME,ATTR_NAME,ATTR_VALUE) values ('CUSTOM_ATTR','1.1','LOT','U0C28.00','SAPMaterialNumber','50000392');
Insert into EXPORT_TABLE (ADB_DOCUMENT_DATASOURCE,ADB_DOCUMENT_FORMATVERSION,CUSTOM_TABLE,CUSTOM_NAME,ATTR_NAME,ATTR_VALUE) values ('CUSTOM_ATTR','1.1','LOT','U0C28.00','ShipDelay','1');
Insert into EXPORT_TABLE (ADB_DOCUMENT_DATASOURCE,ADB_DOCUMENT_FORMATVERSION,CUSTOM_TABLE,CUSTOM_NAME,ATTR_NAME,ATTR_VALUE) values ('CUSTOM_ATTR','1.1','LOT','U0C28.00','TurnkeyType','J');
Insert into EXPORT_TABLE (ADB_DOCUMENT_DATASOURCE,ADB_DOCUMENT_FORMATVERSION,CUSTOM_TABLE,CUSTOM_NAME,ATTR_NAME,ATTR_VALUE) values ('CUSTOM_ATTR','1.1','LOT','U0C28.00','YMSStepID','M2-MSKADI');
Insert into EXPORT_TABLE (ADB_DOCUMENT_DATASOURCE,ADB_DOCUMENT_FORMATVERSION,CUSTOM_TABLE,CUSTOM_NAME,ATTR_NAME,ATTR_VALUE) values ('CUSTOM_ATTR','1.1','LOT','U100M.00','ApcDicdPriority','0');
Insert into EXPORT_TABLE (ADB_DOCUMENT_DATASOURCE,ADB_DOCUMENT_FORMATVERSION,CUSTOM_TABLE,CUSTOM_NAME,ATTR_NAME,ATTR_VALUE) values ('CUSTOM_ATTR','1.1','LOT','U100M.00','ApcOvlPriority','0');
Insert into EXPORT_TABLE (ADB_DOCUMENT_DATASOURCE,ADB_DOCUMENT_FORMATVERSION,CUSTOM_TABLE,CUSTOM_NAME,ATTR_NAME,ATTR_VALUE) values ('CUSTOM_ATTR','1.1','LOT','U100M.00','ApcOvlThread','354V4C1_XXXX');
Insert into EXPORT_TABLE (ADB_DOCUMENT_DATASOURCE,ADB_DOCUMENT_FORMATVERSION,CUSTOM_TABLE,CUSTOM_NAME,ATTR_NAME,ATTR_VALUE) values ('CUSTOM_ATTR','1.1','LOT','U100M.00','ApcOvlTypUsed','45');
Insert into EXPORT_TABLE (ADB_DOCUMENT_DATASOURCE,ADB_DOCUMENT_FORMATVERSION,CUSTOM_TABLE,CUSTOM_NAME,ATTR_NAME,ATTR_VALUE) values ('CUSTOM_ATTR','1.1','LOT','U100M.00','GateCD_Target_PLN','HOT');
Insert into EXPORT_TABLE (ADB_DOCUMENT_DATASOURCE,ADB_DOCUMENT_FORMATVERSION,CUSTOM_TABLE,CUSTOM_NAME,ATTR_NAME,ATTR_VALUE) values ('CUSTOM_ATTR','1.1','LOT','U100M.00','GateCD_Value','47.634');
Insert into EXPORT_TABLE (ADB_DOCUMENT_DATASOURCE,ADB_DOCUMENT_FORMATVERSION,CUSTOM_TABLE,CUSTOM_NAME,ATTR_NAME,ATTR_VALUE) values ('CUSTOM_ATTR','1.1','LOT','U100M.00','LastReticle','3250CU0TJC1');
Insert into EXPORT_TABLE (ADB_DOCUMENT_DATASOURCE,ADB_DOCUMENT_FORMATVERSION,CUSTOM_TABLE,CUSTOM_NAME,ATTR_NAME,ATTR_VALUE) values ('CUSTOM_ATTR','1.1','LOT','U100M.00','LastStepper','STP403');
Insert into EXPORT_TABLE (ADB_DOCUMENT_DATASOURCE,ADB_DOCUMENT_FORMATVERSION,CUSTOM_TABLE,CUSTOM_NAME,ATTR_NAME,ATTR_VALUE) values ('CUSTOM_ATTR','1.1','LOT','U100M.00','SAPMaterialNumber','50001396');
Insert into EXPORT_TABLE (ADB_DOCUMENT_DATASOURCE,ADB_DOCUMENT_FORMATVERSION,CUSTOM_TABLE,CUSTOM_NAME,ATTR_NAME,ATTR_VALUE) values ('CUSTOM_ATTR','1.1','LOT','U100M.00','ShipDelay','5');
Insert into EXPORT_TABLE (ADB_DOCUMENT_DATASOURCE,ADB_DOCUMENT_FORMATVERSION,CUSTOM_TABLE,CUSTOM_NAME,ATTR_NAME,ATTR_VALUE) values ('CUSTOM_ATTR','1.1','LOT','U100M.00','TurnkeyType','J');
Insert into EXPORT_TABLE (ADB_DOCUMENT_DATASOURCE,ADB_DOCUMENT_FORMATVERSION,CUSTOM_TABLE,CUSTOM_NAME,ATTR_NAME,ATTR_VALUE) values ('CUSTOM_ATTR','1.1','LOT','U100M.00','YMSStepID','TJ-MSKADI');
Insert into EXPORT_TABLE (ADB_DOCUMENT_DATASOURCE,ADB_DOCUMENT_FORMATVERSION,CUSTOM_TABLE,CUSTOM_NAME,ATTR_NAME,ATTR_VALUE) values ('CUSTOM_ATTR','1.1','LOT','U0C28.00','SUB_LOT_TYPE','PROD-PO');
Insert into EXPORT_TABLE (ADB_DOCUMENT_DATASOURCE,ADB_DOCUMENT_FORMATVERSION,CUSTOM_TABLE,CUSTOM_NAME,ATTR_NAME,ATTR_VALUE) values ('CUSTOM_ATTR','1.1','LOT','U100M.00','SUB_LOT_TYPE','PROD-PX');
Insert into EXPORT_TABLE (ADB_DOCUMENT_DATASOURCE,ADB_DOCUMENT_FORMATVERSION,CUSTOM_TABLE,CUSTOM_NAME,ATTR_NAME,ATTR_VALUE) values ('CUSTOM_ATTR','1.1','LOT','U0C28.00','STF_VERSION','3365DI.C0');
Insert into EXPORT_TABLE (ADB_DOCUMENT_DATASOURCE,ADB_DOCUMENT_FORMATVERSION,CUSTOM_TABLE,CUSTOM_NAME,ATTR_NAME,ATTR_VALUE) values ('CUSTOM_ATTR','1.1','LOT','U100M.00','STF_VERSION','3250CN.C0');
This is the sqlxml that I have created.
SELECT XMLElement(
"ADB_DOCUMENT" ,
XMLAttributes(ADB_DOCUMENT_DATASOURCE as "DataSource", ADB_DOCUMENT_FORMATVERSION AS "FormatVersion"),
XMLElement(
"CUSTOM",
XMLAttributes(CUSTOM_TABLE as "Table", CUSTOM_NAME AS "Name"),
XMLAgg(
XMLElement(
"ATTR",
XMLAttributes(ATTR_NAME AS "Name", ATTR_VALUE AS "Value")
) AS XML
FROM EXPORT_TABLE
GROUP BY ADB_DOCUMENT_DATASOURCE, ADB_DOCUMENT_FORMATVERSION, CUSTOM_TABLE, CUSTOM_NAME;
And this is the output generated from the sqlxml:
<ADB_DOCUMENT DataSource="CUSTOM_ATTR" FormatVersion="1.1"><CUSTOM Table="LOT" Name="U0C28.00"><ATTR Name="ApcDicdPriority" Value="1"></ATTR><ATTR Name="STF_VERSION" Value="3365DI.C0"></ATTR><ATTR Name="SUB_LOT_TYPE" Value="PROD-PO"></ATTR><ATTR Name="YMSStepID" Value="M2-MSKADI"></ATTR><ATTR Name="TurnkeyType" Value="J"></ATTR><ATTR Name="ShipDelay" Value="1"></ATTR><ATTR Name="SAPMaterialNumber" Value="50000392"></ATTR><ATTR Name="PPCDLevel" Value="1"></ATTR><ATTR Name="PPCD" Value="MD201020001UN"></ATTR><ATTR Name="OOC" Value="DDT"></ATTR><ATTR Name="LastStepper" Value="STP1308"></ATTR><ATTR Name="LastReticle" Value="3365DK0A0A1"></ATTR><ATTR Name="GateCD_Value" Value="48.29"></ATTR><ATTR Name="GateCD_Target_PLN" Value="MEDIUM"></ATTR><ATTR Name="ERFID" Value="EXECUTED"></ATTR><ATTR Name="ApcOvlTypUsed" Value="45"></ATTR><ATTR Name="ApcOvlThread" Value="353V1A1_XXXX"></ATTR><ATTR Name="ApcOvlPriority" Value="1"></ATTR></CUSTOM></ADB_DOCUMENT>
<ADB_DOCUMENT DataSource="CUSTOM_ATTR" FormatVersion="1.1"><CUSTOM Table="LOT" Name="U100M.00"><ATTR Name="ApcDicdPriority" Value="0"></ATTR><ATTR Name="STF_VERSION" Value="3250CN.C0"></ATTR><ATTR Name="SUB_LOT_TYPE" Value="PROD-PX"></ATTR><ATTR Name="YMSStepID" Value="TJ-MSKADI"></ATTR><ATTR Name="TurnkeyType" Value="J"></ATTR><ATTR Name="ShipDelay" Value="5"></ATTR><ATTR Name="SAPMaterialNumber" Value="50001396"></ATTR><ATTR Name="LastStepper" Value="STP403"></ATTR><ATTR Name="LastReticle" Value="3250CU0TJC1"></ATTR><ATTR Name="GateCD_Value" Value="47.634"></ATTR><ATTR Name="GateCD_Target_PLN" Value="HOT"></ATTR><ATTR Name="ApcOvlTypUsed" Value="45"></ATTR><ATTR Name="ApcOvlThread" Value="354V4C1_XXXX"></ATTR><ATTR Name="ApcOvlPriority" Value="0"></ATTR></CUSTOM></ADB_DOCUMENT>
The problems I am trying to resolve are:
1. THE <ADB_DOCUMENT> tag is generated for each row. I just want 1 <ADB_DOCUMENT> tag to wrap the entire document.
2. I need a linefeed character (\n in c) at the end of each tag as in the sample output in the beginning of the post. I tried concatenating a chr(10) to the end of the </ATTR> tags, but sqlplus truncates anything after the chr(10) in the output file. (I am piping this output to a file using a table function).
Any help would be greatly appreciated!

1. THE <ADB_DOCUMENT> tag is generated for each row. I just want 1 <ADB_DOCUMENT> tag to wrap the entire document.You have to deal with two levels of aggregation, so here's one way to do it :
SELECT XMLElement("ADB_DOCUMENT",
         XMLAttributes(adb_document_datasource as "DataSource", adb_document_formatversion as "FormatVersion"),
         XMLAgg(custom_element)
       ) as xmlresult
FROM (
  SELECT adb_document_datasource
       , adb_document_formatversion
       , XMLElement("CUSTOM",
           XMLAttributes(custom_table as "Table", custom_name AS "Name"),
           XMLAgg(
             XMLElement("ATTR",
               XMLAttributes(attr_name AS "Name", attr_value AS "Value")
         ) as custom_element
  FROM export_table
  GROUP BY adb_document_datasource
         , adb_document_formatversion
         , custom_table
         , custom_name
GROUP BY adb_document_datasource
       , adb_document_formatversion
2. I need a linefeed character (\n in c) at the end of each tag as in the sample output in the beginning of the post.Do you really need to introduce whitespaces in your document?
Depending on your database version, there are two methods to serialize your output and pretty-print it :
11g : XMLSerialize function, with the INDENT option
10g : Extract function
For example,
SELECT XMLSerialize(document
         XMLElement("ADB_DOCUMENT",
         as clob indent size = 2
FROM ...
SELECT XMLElement("ADB_DOCUMENT",
       ).extract('/*').getclobval()
FROM ...You can then use DBMS_XSLPROCESSOR.clob2file to write the file with a single call.
Edited by: odie_63 on 18 août 2011 22:14

Similar Messages

  • I wish to generate reports from the database an out put it but i need to enter a date from and to ina  html input box

    i wish to generate reports from the database an out put it
    but i need to enter a date from and to ina html input box
    in the input box a data of range will be input from a start
    to latest
    latest being the default as today's date.
    any help tips snipplets, concepts , turot=rails.
    thanks

    easycfm.com has tutorials for people who are brand new.
    If you don't know much about sql, I have heard good things
    about the book, Teach Yourself SQL in 10 Minutes by Ben
    Forta.

  • How to generate XML from EBusiness suite ARXSGPO

    Could someone tell me how I can generate XML from the EBusiness Suite Accounts Receivable report ARXSGPO.rdf I understand this report is called by a C program. I have tried changing the concurrent request to output format to XML the result does not resemble XML. Does anyone have any suggestions how I can generate XML from the ARXSGPO report?
    Thanks,
    Mark

    Hi Mark
    the next release of XMLP will have last page only support. The problem is that at the template layer you do not know how many lines are going to fit on the page, so you never know what is going to be the last page. The only way around it for now is to specify the number of lines to a page and then check when all the lines have been rendered and then render the remit portion.
    I have a sample invoice that does the same, drop me a mail, you can work out the email from my name and the fact I work for XMLP Im sure.
    Tim

  • Hello Anybody, I have a question. Can any of you please suggest me how to make an xml file from the database table with all the rows? Note:- I am having the XSD Schema file and the resulted XML file should be in that XSD format only.

    Hello Anybody, I have a question. Can any of you please suggest me how to make an xml file from the database table with all the records?
    Note:- I am having the XSD Schema file and the resulted XML file should be in that XSD format only.

    The Oracle documentation has a good overview of the options available
    Generating XML Data from the Database
    Without knowing your version, I just picked 11.2, so you made need to look for that chapter in the documentation for your version to find applicable information.
    You can also find some information in XML DB FAQ

  • Generating XML from database

    I'm a total newbie in XML DB and need advice on generating XML from database.
    The situation is the following: there is a legacy web application which uses an XML document as a configuration file. This document conforms to some well-defined schema. For instance:
    <config>
         <title value="TITLE" />
         <subtitle value="SUBTITLE" />
         <style url="default.css" />
         <widgets>
              <widget id="1" opened="true" />
              <widget id="2" opened="false" />
         </widgets>
    </config>
    It contains portions of static data which are common for all users as well as dynamic personal data.
    Dynamic data comes from two sources:
    1) security considerations (for instance, not all widgets are available for some users) - thus the "master" configuration content must be filtered, but not otherwise modified;
    2) user preferences (for instance, user can set widget2 to be opened by default) - thus values of some attributes must be different for each user. When the user saves her preferences, the entire document with new values is posted back to server.
    We want to try to store user preferences, apply security and generate personalized configuration documents using XML DB.
    So we need advice on storage models and generation procedures - which should be more efficient and easy to support or extend.
    Please note, that there is no requirement to actually store data as XML.
    Thanks in advance!
    P.S.: Sorry for the incomplete initial post.
    Edited by: WxD on 27.09.2010 11:45

    Hi,
    See this link for more details
    http://www.stanford.edu/dept/itss/docs/oracle/10g/appdev.101/b10790/xdb13gen.htm

  • Oracle XML Gateway How to download .xgm from the database

    I am trying to find the utitlity called DownloadMap.java to dowload the .xgm mapping from the database as stipulated in the Oracle XML Gateway Users Guide. I am not able to find this utility and could not get any leads.
    Our requirement is to extend the seeded outbound invoice mappings to add additional data elements before generating XML document.
    We will appreciate if any lead or explanation is provided by our community.
    Looking forward for a voice in our community in this regard.
    Thank you,
    Jothiram

    This post is to the wrong Forum, try the XML forum

  • How to generate XML from relational data : PL/SQL or Java

    I'm new to Oracle XML and would appreciate some advice. I've been asked to generate XML documents from data stored in relational tables. The XML documents must be validated against a DTD. We will probably want to store the XML in the database.
    I've seen a PL/SQL based approach as follows :
    1.Mimic the structure of the DTD using SQL object types 2.Assign the relational data to the object type using PL/SQL as required
    3.Use the SYS_XMLGEN package to render the required XML documents from the SQL objects
    However, creating the object types seems to be quite time consuming (step 1 above) for anything other than the simplest of XML documents.
    I've also seen that there is the Java based approach, namely :
    1. Use the XML generator to build Java classes based on a DTD.
    2. Use these classes to build the required XML
    On the face of it, the Java based approach seems simpler. However, I'm not that familiar with Java.
    Which is the best way to proceed ? Is the PL/SQL based approach worth pursuing or should I bite the bullet and brush up my Java ?
    Is it possible to use a combination of PL/SQL and Java to populate the dtd generated java classes (step 2 of the Java approach) to reduce my learning curve ?
    Thanks in advance

    To help answer your questions:
    1) Now, in 9iR2, you can use SQL/XML as another choice.
    2) You can also use XSU to generate the XML and use XSLT to transform it to a desired format instead of using object views if possible.
    3) XDK provide Class generator support to populate XML data to Java classes.

  • How I can transfer data from the database into a variable (or array)?

    I made my application according to the example (http://corlan.org/2009/06/12/working-in-flash-builder-4-with-flex-and-php/). Everything works fine. I changed one function to query the database - add the two parameters and get the value of the table in String format. A test operation shows that all is ok. If I want to display this value in the text area, I simply drag and drop service to this element in the design mode
    (<s:TextArea x="153" y="435" id="nameText" text="{getDataMeanResult.lastResult[0].name}"  width="296" height="89"  />).
    It also works fine, just a warning and encouraged to use ArrayCollection.getItemAt().
    Now I want to send the value to a variable or array, but in both cases I get an error: TypeError: Error #1010: A term is undefined and has no properties..
    How can I pass a value from the database into a variable? Thank you.
    public var nameTemp:String;
    getDataMeanResult.token = authors.getDataMean(arrayOfNumber[0], dir_id);
    nameTemp = getDataMeanResult.lastResult[0].name;
    public var nameArray:Array = new Array();
    for (var i:uint=o; i<3; i++){
    getDataMeanResult.token = authors.getDataMean(arrayOfNumber[i], dir_id);
    nameArray[i] = getDataMeanResult.lastResult[0].name;
    And how i can use syntax highlighting in this forum?

    Astraport2012 wrote:
    I have to go back to the discussion. The above example works fine when i want to get a single value of the database. But i need to pass an array and get an array, because i want to get at once all the values for all pictures tooltips. I rewrote the proposed Matt PHP-script and it works. However, i can not display the resulting array.
    yep, it won't work for Arrays, you'll have to do something slightly more intelligent for them.
    easiest way would be to get your PHP to generate XML, then read that into something like an ArrayList on your HTTPService result event (depends what you're doing with it).
    for example, you could have the PHP generate XML such as:
    <pictures>
         <location>test1.png</location>
         <location>test2.png</location>
         <location>test3.png</location>
         <location>test4.png</location>
         <location>test5.png</location>
         <location>test6.png</location>
    </pictures>
    then you'll read that in as the ResultEvent, and perform something like this on it
    private var tempAC:ArrayList = new ArrayList
    protected function getStuff_resultHandler(event:ResultEvent):void
        for each(var item:Object in event.result.pictures)
           var temp:String = (item.@location).toString();
           tempAC.addItem(temp);
    in my example on cookies
    http://www.mattlefevre.com/viewExample.php?tut=flash4PHP&proj=Using%20Cookies
    you'll see an example of how to format an XML structure containing multiple values:
    if($_COOKIE["firstName"])
            print "<stored>true</stored>";
            print "<userInfo>
                    <firstName>".$_COOKIE["firstName"]."</firstName>
                    <lastName>".$_COOKIE["lastName"]."</lastName>
                    <userAge>".$_COOKIE["userAge"]."</userAge>
                    <gender>".$_COOKIE["gender"]."</gender>
                   </userInfo>";
        else
            print "<stored>false</stored>";
    which i handle like so
    if(event.result.stored == true)
                        entryPanel.title = "Welcome back " + event.result.userInfo.firstName + " " + event.result.userInfo.lastName;
                        firstName.text = event.result.userInfo.firstName;
                        lastName.text = event.result.userInfo.lastName;
                        userAge.value = event.result.userInfo.userAge;
                        userGender.selectedIndex = event.result.userInfo.gender;
    depends on what type of Array you're after
    from the sounds of it (with the mention of picture tooltips) you're trying to create a gallery with an image, and a tooltip.
    so i'd probably adopt something like
    <picture>
         <location>example1.png</location>
         <tooltip>tooltip for picture #1</tooltip>
    </picture>
    <picture>
         <location>example2.png</location>
         <tooltip>tooltip for picture #2</tooltip>
    </picture>
    <picture>
         <location>example3.png</location>
         <tooltip>tooltip for picture #3</tooltip>
    </picture>
    etc...
    or
    <picture location="example1.png" tooltip="tooltip for picture #1"/>
    <picture location="example2.png" tooltip="tooltip for picture #2"/>
    <picture location="example3.png" tooltip="tooltip for picture #3"/>
    etc...

  • Failed to retrieve data from the database. [Database Vendor Code: 116]

    My report is using Java Bean class as datasource and the Java Bean class calls a report-specific Java program to return a result set.
    Report fails to generate and the error message is
    Failed to retrieve data from the database. Details:  [Database Vendor Code: 116 ]
    Can anyone tell me what error code 116 means?
    Thanks.

    The problem is solved internally. Our team implemented a result set data structure that incorrectly converts a Double into a String before passing it to Crystal Report for rendering. Data Vendor Code I met yesterday was the outcome of illegal class conversion.
    I have a side question;  our development team would like to use log4j to log method calls invoked during rendering. Our problem could be solved earlier if we knew getString() was invoked instead of getDouble() during rendering.  We thought of specifying the full path of log4j jar file in CRConfig.xml but we don't know how to configure CR to write logging information into a specific file location.
    Please help.
    Thanks

  • Generating XML from SQL queries and saving to an xml file?

    Hi there,
    I was wondering if somebody could help with regards to the following:
    Generating XML from SQL queries and saving to a xml file?
    We want to have a procedure(PL/SQL) that accepts an order number as an input parameter(the procedure
    is accessed by our software on the client machine).
    Using this order number we do a couple of SQL queries.
    My first question: What would be our best option to convert the result of the
    queries to xml?
    Second Question: Once the XML has been generated, how do we save that XML to a file?
    (The XML file is going to be saved on the file system of the server that
    the database is running on.)
    Now our procedure will also have a output parameter which returns the filename to us. eg. Order1001.xml
    Our software on the client machine will then ftp this XML file(based on the output parameter[filename]) to
    the client hard drive.
    Any information would be greatly appreciated.
    Thanking you,
    Francois

    If you are using 9iR2 you do not need to do any of this..
    You can create an XML as an XMLType using the new SQL/XML operators. You can insert this XML into the XML DB repository using DBMS_XDB.createResource. You can then access the document from the resource. You can also return the XMLType containing the XML directly from the PL/SQL Procedure.

  • Generating XML from SQL queries and saving to a xml file?

    Hi there,
    I was wondering if somebody could help with regards to the following:
    Generating XML from SQL queries and saving to a xml file?
    We want to have a stored procedure(PL/SQL) that accepts an order number as an input parameter(the procedure
    is accessed by our software on the client machine).
    Using this order number we do a couple of SQL queries.
    My first question: What would be our best option to convert the result of the
    queries to xml?
    Second Question: Once the XML has been generated, how do we save that XML to a file?
    (The XML file is going to be saved on the file system of the server that
    the database is running on.)
    Now our procedure will also have a output parameter which returns the filename to us. eg. Order1001.xml
    Our software on the client machine will then ftp this XML file(based on the output parameter[filename]) to
    the client hard drive.
    Any information would be greatly appreciated.
    Thanking you,
    Francois

    Hi
    Here is an example of some code that i am using on Oracle 817.
    The create_file procedure is the one that creates the file.
    The orher procedures are utility procedures that can be used with any XML file.
    PROCEDURE create_file_with_root(po_xmldoc OUT xmldom.DOMDocument,
    pi_root_tag IN VARCHAR2,
                                            po_root_element OUT xmldom.domelement,
                                            po_root_node OUT xmldom.domnode,
                                            pi_doctype_url IN VARCHAR2) IS
    xmldoc xmldom.DOMDocument;
    root xmldom.domnode;
    root_node xmldom.domnode;
    root_element xmldom.domelement;
    record_node xmldom.domnode;
    newelenode xmldom.DOMNode;
    BEGIN
    xmldoc := xmldom.newDOMDocument;
    xmldom.setVersion(xmldoc, '1.0');
    xmldom.setDoctype(xmldoc, pi_root_tag, pi_doctype_url,'');
    -- Create the root --
    root := xmldom.makeNode(xmldoc);
    -- Create the root element in the file --
    create_element_and_append(xmldoc, pi_root_tag, root, root_element, root_node);
    po_xmldoc := xmldoc;
    po_root_node := root_node;
    po_root_element := root_element;
    END create_file_with_root;
    PROCEDURE create_element_and_append(pi_xmldoc IN OUT xmldom.DOMDocument,
    pi_element_name IN VARCHAR2,
                                            pi_parent_node IN xmldom.domnode,
                                            po_new_element OUT xmldom.domelement,
                                            po_new_node OUT xmldom.domnode) IS
    element xmldom.domelement;
    child_node xmldom.domnode;
    newelenode xmldom.DOMNode;
    BEGIN
    element := xmldom.createElement(pi_xmldoc, pi_element_name);
    child_node := xmldom.makeNode(element);
    -- Append the new node to the parent --
    newelenode := xmldom.appendchild(pi_parent_node, child_node);
    po_new_node := child_node;
    po_new_element := element;
    END create_element_and_append;
    FUNCTION create_text_element(pio_xmldoc IN OUT xmldom.DOMDocument, pi_element_name IN VARCHAR2,
    pi_element_data IN VARCHAR2, pi_parent_node IN xmldom.domnode) RETURN xmldom.domnode IS
    parent_node xmldom.domnode;                                   
    child_node xmldom.domnode;
    child_element xmldom.domelement;
    newelenode xmldom.DOMNode;
    textele xmldom.DOMText;
    compnode xmldom.DOMNode;
    BEGIN
    create_element_and_append(pio_xmldoc, pi_element_name, pi_parent_node, child_element, child_node);
    parent_node := child_node;
    -- Create a text node --
    textele := xmldom.createTextNode(pio_xmldoc, pi_element_data);
    child_node := xmldom.makeNode(textele);
    -- Link the text node to the new node --
    compnode := xmldom.appendChild(parent_node, child_node);
    RETURN newelenode;
    END create_text_element;
    PROCEDURE create_file IS
    xmldoc xmldom.DOMDocument;
    root_node xmldom.domnode;
    xml_doctype xmldom.DOMDocumentType;
    root_element xmldom.domelement;
    record_element xmldom.domelement;
    record_node xmldom.domnode;
    parent_node xmldom.domnode;
    child_node xmldom.domnode;
    newelenode xmldom.DOMNode;
    textele xmldom.DOMText;
    compnode xmldom.DOMNode;
    BEGIN
    xmldoc := xmldom.newDOMDocument;
    xmldom.setVersion(xmldoc, '1.0');
    create_file_with_root(xmldoc, 'root', root_element, root_node, 'test.dtd');
    xmldom.setAttribute(root_element, 'interface_type', 'EXCHANGE_RATES');
    -- Create the record element in the file --
    create_element_and_append(xmldoc, 'record', root_node, record_element, record_node);
    parent_node := create_text_element(xmldoc, 'title', 'Mr', record_node);
    parent_node := create_text_element(xmldoc, 'name', 'Joe', record_node);
    parent_node := create_text_element(xmldoc,'surname', 'Blogs', record_node);
    -- Create the record element in the file --
    create_element_and_append(xmldoc, 'record', root_node, record_element, record_node);
    parent_node := create_text_element(xmldoc, 'title', 'Mrs', record_node);
    parent_node := create_text_element(xmldoc, 'name', 'A', record_node);
    parent_node := create_text_element(xmldoc, 'surname', 'B', record_node);
    -- write the newly created dom document into the buffer assuming it is less than 32K
    xmldom.writeTofile(xmldoc, 'c:\laiki\willow_data\test.xml');
    EXCEPTION
    WHEN xmldom.INDEX_SIZE_ERR THEN
    RAISE_APPLICATION_ERROR(-20120, 'Index Size error');
    WHEN xmldom.DOMSTRING_SIZE_ERR THEN
    RAISE_APPLICATION_ERROR(-20120, 'String Size error');
    WHEN xmldom.HIERARCHY_REQUEST_ERR THEN
    RAISE_APPLICATION_ERROR(-20120, 'Hierarchy request error');
    WHEN xmldom.WRONG_DOCUMENT_ERR THEN
    RAISE_APPLICATION_ERROR(-20120, 'Wrong doc error');
    WHEN xmldom.INVALID_CHARACTER_ERR THEN
    RAISE_APPLICATION_ERROR(-20120, 'Invalid Char error');
    WHEN xmldom.NO_DATA_ALLOWED_ERR THEN
    RAISE_APPLICATION_ERROR(-20120, 'Nod data allowed error');
    WHEN xmldom.NO_MODIFICATION_ALLOWED_ERR THEN
    RAISE_APPLICATION_ERROR(-20120, 'No mod allowed error');
    WHEN xmldom.NOT_FOUND_ERR THEN
    RAISE_APPLICATION_ERROR(-20120, 'Not found error');
    WHEN xmldom.NOT_SUPPORTED_ERR THEN
    RAISE_APPLICATION_ERROR(-20120, 'Not supported error');
    WHEN xmldom.INUSE_ATTRIBUTE_ERR THEN
    RAISE_APPLICATION_ERROR(-20120, 'In use attr error');
    WHEN OTHERS THEN
    dbms_output.put_line('exception occured' || SQLCODE || SUBSTR(SQLERRM, 1, 100));
    END create_file;

  • Generating XML from XSD

    Hi,
    I'm not sure it's possible to do what I want, but can anyone confirm / deny this:
    I have a series of XSDs that I can load into the database. I want to be able to generate XML that conforms to the XSD, by passing in a series of variables - the values that I want to substitute in the XML are not held in the database, but are all calculated in PL/SQL.
    A snippet from the XML is:
    <Name>
      <PersonDescriptives:PersonNameTitle/>
      <PersonDescriptives:PersonGivenName/>
      <PersonDescriptives:PersonFamilyName/>
    </Name>I want to be able to pass in variables to supply the values in the XML, and generate it from the XSD. Is this possible?
    My gut feeling (and initial quick analysis) says that it's not - the option I've come up with so far is simple string manipulation and then I could validate the XML against the XSD to ensure that it's valid, but then I have the issue of what to do if it isn't valid!
    Any thoughts gratefully received,
    Matt
    Edited by: Darryl Burke -- advertisement and links removed

    Thanks Mark.
    I've look at the examples etc already, but they all seem to only cater for selecting from a database table. Since all my values are in PL/SQL variables rather than being in tables, I guess I could select from DUAL the whole time, but the performance of having to do it that way rather than just concatenating text together doesn't seem to make it worthwhile.
    Think I'll just stick with using string manipulation to create the XML.
    Matt

  • Why it's so inefficient to generate XML from SQL queries?

    I am learning to use Oracle9i XML DB to generate XML document using SQL queries. According to the document, there are multiple ways to do it (SQLX, DBMS_XMLGEN, SYS_XMLGEN, XSU). I am using SQLX to do it, but find it's so inefficient. Could someone point out what could be the problem?
    I generate XML from TPC-H database, using the query as shown below. The indexes and primary key/foreign keys are created and specified. The system is Pentium IV 2GHz, Linux 2.4.18 with 512MB memory and 1GB swap. With database size 5MB, it spends about 300 seconds (TKPROF result) to generate the XML document. But for 10MB TPCH database, I cannot get the xml document after a long time. I find that all almost physical memory are used up by it. Therefore I stop it.
    It seems that nested-loop join is used to evaluate the query, therefore it's very inefficient. I don't know whether there is a efficient way to do it.
    Wish to get your help. Thank you very much!
    Chengkai Li
    ===================================================================================================================
    SELECT XMLELEMENT (
    "region",
    XMLATTRIBUTES ( r_regionkey AS "regionkey", r_name AS "name", r_comment AS "comment"),
    (SELECT XMLAGG(
    XMLELEMENT (
    "nation",
    XMLATTRIBUTES ( n_nationkey AS "nationkey", n_name AS "name", n_regionkey AS "regionkey", n_comment AS "comment"),
    XMLConcat ((SELECT XMLAGG(XMLELEMENT (
    "supplier",
    XMLATTRIBUTES ( s_suppkey AS "suppkey", s_name AS "name", s_address AS "address", s_nationkey AS "nationkey", s_phone AS "phone", s_acctbal AS "acctbal", s_comment AS "comment"),
    (SELECT XMLAGG(XMLELEMENT (
    "part",
    XMLATTRIBUTES ( p_partkey AS "partkey", p_name AS "name", p_mfgr AS "mfgr", p_brand AS "brand", p_type AS "type", p_size AS "size", p_container AS "container", p_retailprice AS "retailprice", p_comment AS "comment", ps_availqty AS "ps_availqty", ps_supplycost AS "ps_supplycost", ps_comment AS "ps_comment")))
    FROM PART p, PARTSUPP ps
    WHERE ps.ps_partkey = p.p_partkey
    AND ps.ps_suppkey = s.s_suppkey
         FROM SUPPLIER s
    WHERE s.s_nationkey = n.n_nationkey
    (SELECT XMLAGG(XMLELEMENT(
    "customer",
    XMLATTRIBUTES ( c_custkey AS "custkey", c_name AS "name", c_address AS "address", c_nationkey AS "nationkey", c_phone AS "phone", c_acctbal AS "acctbal", c_mktsegment AS "mktsegment", c_comment AS "comment"),
    (SELECT XMLAGG(XMLELEMENT (
    "orders",
    XMLATTRIBUTES ( o_orderkey AS "orderkey", o_custkey AS "custkey", o_orderstatus AS "orderstatus", o_totalprice AS "totalprice", o_orderdate AS "orderdate", o_orderpriority AS "orderpriority", o_clerk AS "clerk", o_shippriority AS "shippriority", o_comment AS "ps_comment"),
    (SELECT XMLAGG(XMLELEMENT (
    "lineitem",
    XMLATTRIBUTES ( l_orderkey AS "orderkey", l_partkey AS "partkey", l_suppkey AS "suppkey", l_linenumber AS "linenumber", l_quantity AS "quantity", l_extendedprice AS "extendedprice", l_discount AS "discount", l_tax AS "tax", l_returnflag AS "returnflag", l_linestatus AS "linestatus", l_shipdate AS "shipdate", l_commitdate AS "commitdate", l_receiptdate AS "receiptdate", l_shipinstruct AS "shipinstruct", l_shipmode AS "shipmode", l_comment AS "comment")
    FROM LINEITEM l
    WHERE l.l_orderkey = o.o_orderkey
    FROM ORDERS o
    WHERE o.o_custkey = c.c_custkey
         FROM CUSTOMER c
    WHERE c.c_nationkey = n.n_nationkey
    FROM NATION n
    WHERE n.n_regionkey = r.r_regionkey
    FROM REGION r;

    Tim,
    Oracle Reports was the orginal way to do this in an Oracle Apps environment. However, the XML Publisher team built a tool called data templates to do this as well. You can read several articles on how to use data templates on the XMLP blog. Here's the first arcticle in a series: http://blogs.oracle.com/xmlpublisher/2006/11/08#a127.
    Bryan

  • Consuming a web service from the database

    Hello,
    We have 10.2.0.2.0 database,oas 10.1.3.0.0, jdeveloper 10.1.3.
    We have to call our webservice deployed to the OAS from the database. The webservice is deployed and works fine (we can call it from a java application).
    The web service itself and the client proxy have been generated by the jdeveloper.
    The proxy has been loaded to the database and wrapped into a plsql package function using Jdeveloper "Load java and stored procedure deployment profile".
    When we run the function we receive the following error:
    calling http://z0001-app0821-s.hodc.ad.allstate.com:7779/amcddout_dvlp/DDRequesterWSSoapHttpPort java.lang.NoClassDefFoundError      at HTTPClient.HttpURLConnection.<clinit>(HttpURLConnection.java:166)      at oracle.j2ee.ws.saaj.client.p2p.HttpSOAPConnection.createConnection(HttpSOAPConnection.java:697)      at oracle.j2ee.ws.saaj.client.p2p.HttpSOAPConnection.post(HttpSOAPConnection.java:347)      at oracle.j2ee.ws.saaj.client.p2p.HttpSOAPConnection$PriviledgedPost.run(HttpSOAPConnection.java:796)      at java.security.AccessController.doPrivileged(Native Method)      at oracle.j2ee.ws.saaj.client.p2p.HttpSOAPConnection.call(HttpSOAPConnection.java:149)      at oracle.j2ee.ws.client.http.HttpClientTransport.invokeImpl(Unknown Source)      at oracle.j2ee.ws.client.http.HttpClientTransport.invoke(Unknown Source)      at oracle.j2ee.ws.client.StreamingSender._sendImpl(StreamingSender.java:169)      at oracle.j2ee.ws.client.StreamingSender._send(StreamingSender.java:110)      at com.amc.dd.ws.test.runtime.DDRequesterWSSoapHttp_Stub.sendMessage(DDRequesterWSSoapHttp_Stub.java:77)      at com.amc.dd.ws.test.DDRequesterWSSoapHttpPortClient.sendMessage(DDRequesterWSSoapHttpPortClient.java:42)      at com.amc.dd.WsTest.callWS(WsTest.java:12)
    Has anybody had the same problem?
    Thank you
    Kate

    Hi, I've dropped and reloaded all jars, and it started to work.
    Just in case someone else is struggling with the same problem, here is our configuration:
    10.2.0.2.0 database,oas 10.1.3.0.0, jdeveloper 10.1.3.
    Here is the command I've used to load the libraries:
    loadjava -u %CONN_STR% -r -v -f -genmissing -s -grant public %ORACLE_HOMEj%\soap\lib\soap.jar %ORACLE_HOMEj%\lib\dms.jar
    %ORACLE_HOMEj%\jlib\javax-ssl-1_1.jar %ORACLE_HOMEj%\j2ee\home\lib\servlet.jar %ORACLE_HOMEj%\j2ee\home\lib\mail.jar
    %ORACLE_HOMEj%\j2ee\home\lib\activation.jar %ORACLE_HOMEj%\j2ee\home\lib\http_client.jar
    %ORACLE_HOMEj%\j2ee\home\lib\ejb.jar %ORACLE_CALLOUT%\dbwsclientws.jar %ORACLE_CALLOUT%\dbwsclient
    And here are the priviledges that must have been granted to the user:
    dbms_java.grant_permission( 'myuser', 'SYS:java.lang.RuntimePermission', 'getClassLoader', '' )
    dbms_java.grant_permission( 'myuser', 'SYS:java.lang.RuntimePermission', 'accessClassInPackage.sun.util.calendar', '' )
    dbms_java.grant_permission( 'myuser', 'SYS:java.util.PropertyPermission', 'HTTPClient.socket.idleTimeout', 'write' )

  • Generating xml from oracle 10g with BLOB image

    Hello All,
    I have employee table with id(primary key), firstname,lastname
    and I have portrait table with id(secondary key from employee table),image (blob)
    portrait table store images of the employees which are in the employee table.
    I want to generate following xml output
    <rowset>
    <id> </id>
    <firstname> </firstname>
    <lastname> </lastname>
    <portrait>base64formatted string containing image of the employee for the particular id specified in the id tag</portrait>
    </rowset>
    and save this xml as id.xml into a particular folder in the c drive and generate such xmls for each and every row of the emplyee table...
    e.g. if i have 200 emplyees with id as 1 ,2 ,.....,200 and their respective portraits into portrait table; then I want to save these as separate xml files with the names 1.xml , 2.xml , .....200.xml inside a folder say : C:\temp...
    Any help is highly appreciated
    Edited by: user1030398 on Sep 28, 2010 12:01 PM
    Edited by: user1030398 on Sep 28, 2010 12:02 PM

    I was going to write up a longer answer, but then I realized this post contains pretty much all you need
    http://www.liberidu.com/blog/?p=365
    I like using XMLElement/XMLForest to build the XML as it gives you the most control.
    In the first example on Marco's website, you would just use dbms_xslprocessor.clob2file to write each file out to disk with a CURSOR FOR loop instead of doing a single OPEN/FETCH/CLOSE. The cursor would return two columns, employee.id and the generated XML. The filename would be based on the "id" column returned by the CURSOR.
    Assumption: The machine that Oracle resides on has the "C:\temp" directory that you want to write to. You cannot use this method to right files onto a client machine.
    Hope that gets you started.

Maybe you are looking for

  • Adobe Muse purchase

    Hi i'm interested in buying Adobe Muse for my Mac. I was using a previous trial version but now i want to buy it and the only option is with Adobe CC. First of all the cloud service is something i don't need and it's 20€/m for unlimited time so basic

  • Front Row and 1080P HDTV

    I have my MacBook Pro connected to 1080p TV via HDMI-DVI cable. In Front Row, I went to look at movie trailers. They SEEM to not be playing in HD? However, the same trailer viewed via apple.com/trailers site DO seem to be in HD? Am I imagining? Or ca

  • Keyboard/ten key number lock

    I just purchased a TrackPoint keyboard (55Y9053) and Ten Key (41A5090). When I plug the two into my computer the ten key number lock, locks the number pad on the TrackPoint keyboard. So when I go to type on my keyboard, letter keys I,o,p,j,k,l,n,m,,

  • File2IDoc Scenario-Unable to convert the sender service to ALE logical sys

    Hi, I've created a simple file to idoc scenario. my fileSender was defined as sub-element of "Business Component". when i tried to test i got the err: "Unable to convert the sender service SandBox_File2IDOC to an ALE logical system" in order to worka

  • Suggestions for writing application in Visual C++

    I am in the process of converting an old DOS data acquisition program into Windows 2000/XP for ComputerBoards, Inc. data acquisition boards. I have written a VxD device driver so that the board will work in Win95/98. I have also written a Visual C++