XML data access

I've been looking at Spry now since it was announced trying
to figure out if I can use it for a project I'm starting. I love
the HTML markup nature and how it allows you to simplify they
creation of a page. It reminds me of Tapestry or Clay in how you
can imbed some custom HTML tags and don't have to recreate the
design of a page in JavaScript code.
I'm having a bit of trouble with the XML data flattening that
occurs and the selection model. It makes for some really nice
master-detail pages, but is too restrictive for other uses.
Here's what I'm wanting to do. I have this XML:
<group id="g1">
<app id="a1">
<os>Mac</os> <os>Windows</os>
</app>
<app id="a2">
<os>Linux</os> <os>AS400</os>
<app>
</group>
I'd like to end up with this result:
<dl>
<dt>a1<dt>
<dd><li>Mac</li>
<li>Windows</li></dd>
<dt>a2<dt>
<dd><li>Linux</li>
<li>AS400<li></dd>
</dl>
I want to display multiple levels of the XML at the same
time. Normally, I'd just loop through the list of APP's, and then
loop through the list of OS's to create this. But because of the
way Spry flattens XML data and doesn't make available children, I
can't get the behavior I want. When I load in this XML, I could
subsequently run through the list of applications, create new data
sets for each application getting the OS items, and add the dataset
as an item to each row in the APP's dataset or stick it in some
other associative array. But I haven't been able to figure out how
to access that information in a loop inside a loop. For all I know,
there isn't even a way to have a loop inside a loop.
What I really need / want is to be able to access any value
in my XML document at any time. I envision the markup to achieve
what I want as something like this:
var dsApps = new Spry.Data.XMLDataSet(url, '/app'); // <--
specifying URL would give me an array of the XML nodes for that
path
<span spryregion="dsApps">
<dl>
<!-- have added 'spryvalue' which applies a label to the
iteration value -->
<span spryrepeatchildren="dsApps" spryvalue="app">
<!-- Access to data could be one of three ways
'dataset:label:path', 'label:path', or 'path' with parts that are
left out being automatically calculated from current environment
-->
<dt>{dsApps:app:@id} {app:@id} {@id} - all should be
same</dt>
<!-- Here we want to iterate over the OS items below the
current app node. We identify this with the form 'path' value.
Repeats would presume you are specifying a dataset, not a path
-->
<dd spryrepeatchildren='app:os">
<!-- I can specify a value from a my parent loop, and the
{os} defaults to the current loop -->
<li>{app:@id} - {os}</li>
</dd>
</dl>
</span>
I don't have all the answers, but if I could access any data
in the XML document, that would just seem to allow more complicated
XML structures without resorting to numerous tricks or just being
completely unable to do what I want.
-d

I can't send the file as it indeed does hold confidential
data, however the expressions I was using were:
var dsActivities = new Spry.Data.XMLDataSet("activities.xml",
"activities/activity");
var dsActivityDetails = new
Spry.Data.XMLDataSet("activities.xml", "activities/activity[title =
'{dsActivities::title}']");
var dsAudience = new Spry.Data.XMLDataSet("activities.xml",
"activities/activity[title =
'{dsActivities::title}']/audiences/audience");
And a snippet of the XML:
<?xml version="1.0"?>
<activities lastUpdated="3/20/2006">
<activity>
<activityID>1</activityID>
<title>Foo</title>
<dateUpdated>1/11/2006</dateUpdated>
<themes>
<theme>foo</theme>
<theme>bar</theme>
</themes>
<keywords>
<keyword>foo</keywordsItem>
<keyword>bar</keyword>
</keywords>
<category>Foo</category>
<type>Bar</type>
<audiences>
<audience>Foo</audience>
<audience>Bar</audience>
<audience>Baz</audience>
</audiences>
<cost>$1</cost>
<links>
<link title="Foo" location="foo.pdf"></link>
<link title="Bar" location="bar.pdf"></link>
</links>
<examples>
<example sector="foo" title="Foo"
location="foo.html"></example>
<example sector="bar" title="Bar"
location="bar.html"></example>
</examples>
<description><![CDATA[The quick brown fox
jumped.]]></description>
</activity>
<activity>
</activity>
</activities>

Similar Messages

  • Import xml data in Access when multiple rows use the same fieldname

    HI.
    First of all sorry for my english :-) I have a LiveCycle Designer ES form with multiple rows that I send via e-mail as XML data.
    example:
    Row 1
    Firstname: John  Lastname: Dow
    Row 2
    Firstname: Steve  Lastname: Austin
    The exported XML is OK but when I want to import it into my Access database, only one row is imported. I pretty sure that the problem comes from the fact that may exported XML use the same fieldname (what is important if I want to import data in the correct Access field) but I don't know what to do to be able to import all the rows of the same Form.
    Any idea?
    Thanks a lot
    Frederic

    Hi Viktor,
    In case of order recognition rules you should increase the relevancy in the newer version of the cartridge so appropriate ORR will be triggered. In other xqueries, you can try using new namespace as a model variable for each and every version of the cartridge
    Regards,
    JP

  • Spry xml data set, accessing specific rows

    Hello. I've been trying to build a website using Spry XML
    Data Sets, and while I've accomplished my goals for now, I don't
    think the solution I came up with is the best.
    The website consists of several areas that show projects.
    Each project has several fields that are to be filled with content
    retrieved from the xml files, but the projects are not all exactly
    alike and some have specific fields that others don't require.
    All the info is available in several languages, so for now
    I've created an xml file for each one. An xml file could be like
    Code Part1. (Why I can't add several code snippets along the post
    baffles me. I mean, I can't, right?)
    This dataset, for simplicity purposes, is not dependent on
    the language (Code Part2).
    And then there are the content areas (Code Part3).
    So as you see, each project has its own structure. This makes
    using spry:repeat a not very effective method for filling in all
    the content. Ideally I should be able to access each row in the
    dataset through some sort of value, like id, or one of its
    children's values. The ds_RowID depends on the row order, so unless
    there's another way to use it, it doesn't solve my problem.
    Here's what I've come up with (Code Part4).
    This works (in FF3 OSX, at least), although there are some
    other problems that might make it necessary to create a spry:region
    (or at least use spry:repeat) for each field. Anyway, it sounds
    silly and wasteful to go through every row of the dataset everytime
    for each of the fields that need to be filled.
    My hope is that I'm ignorant of some much better method of
    achieving my goals, something more direct and elegant.
    Can anyone help me out with this? Thank you very much in
    advance.

    Hi there
    You are indeed absolutely correct a spry region should have been shown, my appologise for that, the code is wrapped in a standard spry region.
    That being said i have used a work around in the SQL SELECT statement of the xmlExportObj, Recordset to find the information required without having to do any IF, ELSE on the page.
    Many thanks for your reply and for pointing out my mistake in how I had presented my question.
    My next question is to follow seperately
    Regards
    Ray

  • Accessing XML data from a different class

    Hi all,
    I have an xml class that loads xml data, I need to access the data from another class. I have imported the xml classinto the new class and created a new instance of it. However when I try to access the xml data it is coming back as null. I understand this is almost certainly because when it is called the xml data hasn't completed it's load. How can I get round this?
    xml class:
    package {
        import flash.xml.*;
        import flash.events.*;
        import flash.net.*
        import flash.display.*
        public class xml extends MovieClip
            public var xmlRequest:URLRequest;
            public var xmlLoader:URLLoader;
            public var xmlImages:XML;
            public function xml()
                xmlRequest = new URLRequest("images.xml");
                xmlLoader = new URLLoader(xmlRequest)
                xmlLoader.addEventListener(Event.COMPLETE, xmlLoaded);
                xmlLoader.load(xmlRequest);
            private function xmlLoaded(event:Event):void
                trace(xmlLoader.data);
                xmlImages = new XML(xmlLoader.data);
    Thanks in advance

    One of the ways:
    package {
         import flash.xml.*;
        import flash.events.*;
        import flash.net.*
        import flash.display.*
        public class XMLLoader extends EventDispatcher
              public var xmlRequest:URLRequest;
              public var xmlLoader:URLLoader;
              public var xmlImages:XML;
              public function XMLLoader()
              public function loadXML(url:String):void {
                   xmlLoader = new URLLoader()
                   xmlLoader.addEventListener(Event.COMPLETE, xmlLoaded);
                   xmlLoader.load(new URLRequest(url));
              private function xmlLoaded(event:Event):void
                   trace(xmlLoader.data);
                   xmlImages = new XML(xmlLoader.data);
                   dispatchEvent(event);
    Usage:
    var xmlLoader:XMLLoader = new XMLLoader();
    xmlLoader.addEventListener(Event.COMPLETE, onXMLLoad);
    xmlLoader.loadXML("images.xml"):
    function onXMLLoad(e:Event):void{
         trace(xmlLoader.xmlImages);

  • Regrouping the XML data source in BI Publisher

    Hello,
    We have a requirement in BI Publisher to develop a template accessing the data from different sources (data sets) and need to regroup the whole data by a field which exists in all the data sets.
    Below is the sample example of the source file
    <DATA><Total_Depletion>
    <TOTAL_DEPLETION_ROW>
    <BRAND_GROUP>BEEFEATER</BRAND_GROUP>
    <BRAND>BEEFEATER</BRAND>
    <OPP_RISK>-50.000001</OPP_RISK>
    <STATE>AL</STATE>
    </TOTAL_DEPLETION_ROW>
    <TOTAL_DEPLETION_ROW>
    <BRAND_GROUP>BEEFEATER</BRAND_GROUP>
    <BRAND>BEEFEATER</BRAND>
    <OPP_RISK>53.1</OPP_RISK>
    <STATE>AR</STATE>
    </TOTAL_DEPLETION_ROW>
    </Total_Depletion>
    <Accounts_sold><ACCOUNTS_SOLD_ROW>
    <BRAND_GROUP>BEEFEATER</BRAND_GROUP>
    <BRAND>BEEFEATER REGULAR</BRAND>
    <STATE>MC</STATE>
    <ACTUAL_ONPREMISE>2</ACTUAL_ONPREMISE>
    </ACCOUNTS_SOLD_ROW>
    <ACCOUNTS_SOLD_ROW>
    <BRAND_GROUP>BEEFEATER</BRAND_GROUP>
    <BRAND>BEEFEATER WET</BRAND>
    <STATE>CA</STATE>
    <ACTUAL_ONPREMISE>916</ACTUAL_ONPREMISE>
    </ACCOUNTS_SOLD_ROW>
    </Accounts_sold></DATA>
    Now our requirement is to regroup the whole data by Brand and then state, and need to display in two different tables.
    Can any one help us in fixing this issue out.
    Thanks a lot,

    Hi Stefanos,
    Check beow blog for reference...
    /people/community.user/blog/2007/08/13/sap-netweaver-70-bi-how-to-send-xml-data-to-bi--enhancement
    Regards,
    KK.

  • I have a production mobile Flex app that uses RemoteObject calls for all data access, and it's working well, except for a new remote call I just added that only fails when running with a release build.  The same call works fine when running on the device

    I have a production mobile Flex app that uses RemoteObject calls for all data access, and it's working well, except for a new remote call I just added that only fails when running with a release build. The same call works fine when running on the device (iPhone) using debug build. When running with a release build, the result handler is never called (nor is the fault handler called). Viewing the BlazeDS logs in debug mode, the call is received and send back with data. I've narrowed it down to what seems to be a data size issue.
    I have targeted one specific data call that returns in the String value a string length of 44kb, which fails in the release build (result or fault handler never called), but the result handler is called as expected in debug build. When I do not populate the String value (in server side Java code) on the object (just set it empty string), the result handler is then called, and the object is returned (release build).
    The custom object being returned in the call is a very a simple object, with getters/setters for simple types boolean, int, String, and one org.23c.dom.Document type. This same object type is used on other other RemoteObject calls (different data) and works fine (release and debug builds). I originally was returning as a Document, but, just to make sure this wasn't the problem, changed the value to be returned to a String, just to rule out XML/Dom issues in serialization.
    I don't understand 1) why the release build vs. debug build behavior is different for a RemoteObject call, 2) why the calls work in debug build when sending over a somewhat large (but, not unreasonable) amount of data in a String object, but not in release build.
    I have't tried to find out exactly where the failure point in size is, but, not sure that's even relevant, since 44kb isn't an unreasonable size to expect.
    By turning on the Debug mode in BlazeDS, I can see the object and it's attributes being serialized and everything looks good there. The calls are received and processed appropriately in BlazeDS for both debug and release build testing.
    Anyone have an idea on other things to try to debug/resolve this?
    Platform testing is BlazeDS 4, Flashbuilder 4.7, Websphere 8 server, iPhone (iOS 7.1.2). Tried using multiple Flex SDK's 4.12 to the latest 4.13, with no change in behavior.
    Thanks!

    After a week's worth of debugging, I found the issue.
    The Java type returned from the call was defined as ArrayList.  Changing it to List resolved the problem.
    I'm not sure why ArrayList isn't a valid return type, I've been looking at the Adobe docs, and still can't see why this isn't valid.  And, why it works in Debug mode and not in Release build is even stranger.  Maybe someone can shed some light on the logic here to me.

  • Use of PL/SQL to populate table columns from XML data file

    I'm trying to find the easiest way to transfer data from a flat file that is in XML format into a traditional Oracle table. Not retaining the XML but actually map an XML element to a column so standard SQL, Forms, Reports, etc can access like it was created using a Form.
    Example: Table A has column names Tom, Dick and Harry and the XML file has elements Tom, Dick and Harry and I just want a function that maps and inserts/loads the data into Table As individual columns.
    The process needs to be easily initiated by an end user. The user gets the XML data file via an email attachment and needs to do something like a Concurrent Request to pull in the file and load it. Using PL/SQL would be great.
    I appreciate any help that can be provided.

    Hi,
    HELP!!!!!
    We are having the same problem and we are using oracle 10ir2.
    We create an object type (sql type globally not in a package):
    CREATE OR REPLACE TYPE G_EX AS OBJECT
    ( EX_ID NUMBER ,
    EX_CON VARCHAR2 ( 100 ) ,
    EX_L VARCHAR2 ( 30 ) ,
    EX_T VARCHAR2 ( 4000 ) );
    CREATE OR REPLACE TYPE G_EX LIST AS TABLE OF  GEX AS ;
    then we insert data through a bulk collect within the package with the table declared of this array of object types:
    v_table G_EX _LIST:= NULL;
    SELECT G_EX (ex_id
    ,ex_con
    ,ex_l
    ,ex_t )
    BULK COLLECT INTO v_table
    FROM exs_lookup;
    I am using the syntax (below) but it gives PL/SQL: ORA-00902: invalid datatype
    sometimes not always:
    SELECT G_EX ( ex_id
    ,ex_con
    ,ex_l
    ,ex_t )
    BULK INTO v_data_record
    FROM TABLE (v_table)
    WHERE ex_id = p_key;
    where p_key - is a number type
    and v_data_record is a G_EX object type.
    I was wondering if anyone else encountered a similar problem, and knows what we may have done wrong. Since we dont understand why this piece of code is throwing this ora-00902 errors occasionally not always.
    Also, if we restart the database up once this errors occurs it appears to stop throwing this ora_00902 error for a lenght of time. Then it comes up with the ora-00902 error again (why?)
    thanks

  • Logon failed when connecting to XML data source over HTTP

    I am trying to create a report using the standard report creation wizard:
    1) new, standard report
    2) create new connection
    3) xml and web services
    4) xml data source
    When using the sample from the SAP site, it works fine:
    http://resources.businessobjects.com/support/downloads/samples/cr/customer_db/customer.xml
    I have an HTTP source that generates XML. I have a schema that describes this XML. If I save the XML to a local file it works fine as a data source with the schema. However, when I try to access the same data via HTTP, I get the following error:
    Logon failed.
    Details: Cannot open file
    Server returned HTTP response code: 401 for URL: http://localhost:8004/report.xqy?Validate%20XML=0&Use%20WS-Security%20Config%20File=&WS-Security%20File%20Location
    However, if I enter that URL in a browser it works fine. And even if I disable security on the HTTP source, it produces the same error.
    Does the URL for the HTTP data source have to conform to some specific pattern? For example, must the URL end in .xml?
    Kelly

    Sorry Brian,
    This is a public forum, if no one can help you do have the option to purchase a support case:
    http://store.businessobjects.com/store/bobjamer/DisplayProductByTypePage&parentCategoryID=&categoryID=11522300?resid=-Z5tUwoHAiwAAA8@NLgAAAAS&rests=1254701640551
    Thank you
    Don

  • SSIS XML Data Source - worked in BIDS, can't read XML in SSDT

    I have an SSIS 2008 package built in BIDS (2008) that uses a series of XML locations (similar to
    http://corpslocks.usace.army.mil/lpwb/xml.tonnage?in_river=AG&in_lock=42&in_mon_yr=092013) to get tonnage information and load it into a SQL Server 2008 R2 database. This has been running daily without error for over 60 days. I am now migrating
    this to SSIS 2012 using SQL Server Data Tools and I am having difficulty reading the XML into the database.
    The package does the following (it is pretty simple):
    1. read the URLs (there are 200) from a database view into a variable object
    2. a for each loop container that loops through the variable object, gets the data from each URL (the XML URL is stored as a variable) and loads it into the database
    The BIDS package still works great. I first used the converter to migrate to 2012. I then recreated a package with exactly the same settings as BIDS. No dice either way. I also tried using a local xsd file, then using one inline. SSDT will recognize all
    of the columns correctly when I use inline, but neither method is capable of reading the data into a table.
    I know the package is going to the addresses, all of the URLs show up in the error logs. The error messages are as follows: "[Load data from tonnage url [47]] Error: The file "http://corpslocks.usace.army.mil/lpwb/xml.tonnage?in_river=AG&in_lock=42&in_mon_yr=092013"
    was not found. Please verify the file path and try again."
    Has anyone run into this and solved it? I think I have tried every possible setting available, with no luck. Any ideas or suggestions are appreciated. Thanks!

    I have an update on this issue. I believe it is a connectivity issue or possibly a setting in SSDT. 
    I can access the remote XML file location through my browser. I have downloaded the XML from the remote location and my package runs using the local XML file perfectly. I have BIDS 2008 installed on the same machine and it works without a problem (using
    the remote XML location). This last piece makes me think there is a network setting or something in SSDT.
    Does anyone have any additional troubleshooting advice or other suggestions? My error output is included below. 
    Thanks!
    Information: 0x40043006 at Data Flow Task, SSIS.Pipeline: Prepare for Execute phase is beginning.
    Error: 0xC020F440 at Data Flow Task, XML Source [31]: The file "http://corpslocks.usace.army.mil/lpwb/xml.lockqueue?in_river=GI&in_lock=01" was not found. Please verify the file path and try again.
    Error: 0xC02090D0 at Data Flow Task, XML Source [31]: The XML Source was unable to read the XML data.
    Error: 0xC0047019 at Data Flow Task, SSIS.Pipeline: XML Source failed the prepare phase and returned error code 0xC02090D0.
    Information: 0x4004300B at Data Flow Task, SSIS.Pipeline: "ADO NET Destination" wrote 0 rows.
    Information: 0x40043009 at Data Flow Task, SSIS.Pipeline: Cleanup phase is beginning.
    Task failed: Data Flow Task

  • Newbie XML data source questions

    Post Author: tel
    CA Forum: Data Connectivity and SQL
    I'm trying to use the XML data source via http and i'm running into a couple of issues.
    First, we have separate environments for development, QA, and production.  Each environment will have a seperate URL to retrieve the XML for the report.  I would like to use the same report design to access each environment.  Is there a way to update the URL in the data source (or replace the data source with one that has the correct URL) without having to re-add the fields to the report design?
    The second issue is similar.  I can't seem to get Crystal to recognize changes in the XML format (new fields for example) without having to delete and recreate the data source (which automatically removes all the associated fields from the report).  Is there a way around this, or again, a way of re-creating the data source without it removing the existing fields in the report?
    Thanks,

    Post Author: rosariosanto
    CA Forum: Data Connectivity and SQL
    I have the same problem. Where can I find help about setting the data source when connecting to a web service. Since the hostname is hardcoded in the report, it is necessary to update it in the code.

  • Trying to pass xml data to a web service

    I'm working on an Apex application that is required to pass data to a web service for loading into another (non Oracle) system. The web service expects two stings as input, the first string is simply an ID, the second string is an xml document. I generate an xml 'string' using PL/SQL in an on-submit process prior to invoking the web service. If I pass regular text for the second parameter, the web service returns an error message which is stored in the response collection and displayed on the page as expected. When I pass the the xml data, I get a no data found error and the response collection is empty. I have tried this in our development environment on Apex 3.1.2 (database version 10.2). I also tried this on our Apex 4.0.2 sandbox (with the same Oracle 10.2 database). I have found that once I have nested xml, I get the no data found message, if I pass partial xml data, I get the error response from the web service. Perhaps I am not generating the xml correctly to pass to the web service (this only just occurred to me as I write this)? Or is there an issue passing xml data from Apex to the web service? Any help will be greatly appreciated! here is the code I use to generate the xml string:
    declare
      cursor build_data  is
        select u_catt_request_buid,u_catt_request_name,u_catt_cassette_buid,u_catt_cassette_name
          ,u_project_name,u_sub_project,replace(u_nominator,'ERROR ','') u_nominator
          ,replace(replace(u_going_to_vqc,'Yes','true'),'No','false') u_going_to_vqc
          ,u_promoter,u_cds,u_terminator
          ,u_primary_trait,u_source_mat_prvd,u_pro_resistance_1,u_vector_type
          ,nvl(u_my_priority,'Medium') u_my_priority
          ,replace(replace(u_immediate_trafo,'Yes','true'),'No','false') u_immediate_trafo
          ,replace(replace(u_new_bps_cmpnt,'Yes','true'),'No','false') u_new_bps_cmpnt
          ,u_compnt_name,u_new_cmpt_desc,initcap(u_target_crop) u_target_crop,u_corn_line
          ,u_plant_selection,u_num_of_ind_events,u_num_plants_per_event,u_molecular_quality_events
          ,replace(replace(u_field,'Yes','true'),'No','false') u_field
          ,u_t1_seed_request,u_potential_phenotype,u_submission_date
          ,u_sequence_length,u_trait,u_frst_parent,u_frst_parent_vshare_id,u_cds_vshare_id
          ,constructid,cassetteid,description
        from temp_constructs_lims
        order by constructid,description;
      v_xml_info         varchar2(350);
      v_xml_header       varchar2(1000);
      v_xml_data         clob;
      v_xml_footer       varchar2(50);
      v_create_date      varchar2(10);
      v_scientist_name   v_users.full_name%type;
      v_scientist_email  v_users.email_address%type;
      v_primas_code      construct.fkprimas%type;
      v_nominator_name   v_nominators.full_name%type;
      v_file_length      number;
    begin
      -- initialize variables
      v_create_date := to_char(sysdate,'YYYY-MM-DD');
      v_xml_data := null;
      -- get name and email address
      begin
        select full_name,email_address
        into v_scientist_name,v_scientist_email
        from v_users
        where ldap_account = :F140_USER_ID; 
      exception when no_data_found then
        v_scientist_name := '';
        v_scientist_email := '';
        v_scientist_name := 'Test, Christine';
        v_scientist_email := '[email protected]';
      end;
      -- set up xml file 
      if :OWNER like '%DEV%' then
        v_xml_info := '
          <?xml version="1.0" encoding="utf-8"?>
          <exchange xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                    xmlns="deService"
                    xsi:schemaLocation="deService http://mycompany.com/webservices/apexdataexchange/schemas/RTPCATT.xsd">
      else
        v_xml_info := '
          <?xml version="1.0" encoding="utf-8"?>
          <exchange xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                    xmlns="deService"
                    xsi:schemaLocation="deService http://mycompanyprod.com/webservices/apexdataexchange/schemas/RTPCATT.xsd">
      end if;
      -- populate xml header records
      v_xml_header := '<header xmlns="">
        <stdXmlVer>2.0</stdXmlVer>
        <sendingUnit>'||:P36_UNIT_NUMBER||'</sendingUnit>
        <sendingPerson>'||v_scientist_name||'</sendingPerson>
        <notification>'||v_scientist_email||'</notification>
        <creationDate>'||v_create_date||'</creationDate>
      </header>
      <entities xmlns="">
      for rec in build_data loop
        begin
          -- get primas code for current construct
          select fkprimas
          into v_primas_code
          from construct
          where constructid = rec.constructid;
        exception when no_data_found then
          v_primas_code := null;
        end;
        begin
          -- get nominator name for current construct
          select full_name
          into v_nominator_name
          from v_nominators
          where nominator_id = rec.u_nominator;
        exception
          when no_data_found then
            v_nominator_name := null;
          when invalid_number then
            v_nominator_name := catt_pkg.full_name_from_user_id(p_user_id => rec.u_nominator);
            v_nominator_name := 'Test, Christine';
        end;
        v_xml_data := v_xml_data||'
          <Construct>
          <requestBUID>'||rec.u_catt_request_buid||'</requestBUID>
          <requestName>'||rec.u_catt_request_name||'</requestName>
          <cassetteBUID>'||rec.u_catt_cassette_buid||'</cassetteBUID>
          <cassetteName>'||rec.u_catt_cassette_name||'</cassetteName>
          <scientist>'||v_scientist_name||'</scientist>
          <projectNumber>'||v_primas_code||'</projectNumber>
          <subProject>'||rec.u_sub_project||'</subProject>
          <comments>'||rec.description||'</comments>
          <nominator>'||v_nominator_name||'</nominator>
          <goingToVqc>'||rec.u_going_to_vqc||'</goingToVqc>
          <primaryTrait>'||rec.u_primary_trait||'</primaryTrait>
          <sourceMatPrvd>'||rec.u_source_mat_prvd||'</sourceMatPrvd>
          <prokaryoticResistance>'||rec.u_pro_resistance_1||'</prokaryoticResistance>
          <vectorType>'||rec.u_vector_type||'</vectorType>
          <priority>'||rec.u_my_priority||'</priority>
          <immediateTrafo>'||rec.u_immediate_trafo||'</immediateTrafo>
          <newComponent>'||rec.u_new_bps_cmpnt||'</newComponent>
          <componentName>'||rec.u_compnt_name||'</componentName>
          <newComponentDescription>'||rec.u_new_cmpt_desc||'</newComponentDescription>
          <targetCrop>'||rec.u_target_crop||'</targetCrop>
          <Line>'||rec.u_corn_line||'</Line>
          <plantSelection>'||rec.u_plant_selection||'</plantSelection>
          <numOfIndEvents>'||rec.u_num_of_ind_events||'</numOfIndEvents>
          <numOfPlantsPerEvent>'||rec.u_num_plants_per_event||'</numOfPlantsPerEvent>
          <molecularQualityEvents>'||rec.u_molecular_quality_events||'</molecularQualityEvents>
          <toField>'||rec.u_field||'</toField>
          <potentialPhenotype>'||rec.u_potential_phenotype||'</potentialPhenotype>
          </Construct>
      end loop;
      -- complete xml data   
      v_xml_footer := '
          </entities>
        </exchange>
      -- complete submission data
      :P36_XML_SUBMISSION := null;   
      :P36_XML_SUBMISSION := v_xml_info||v_xml_header||v_xml_data||v_xml_footer;
      :P36_XML_SUBMISSION := trim(:P36_XML_SUBMISSION);
    end;Here is an example of :P36_XML_SUBMISSION:
    <?xml version="1.0" encoding="utf-8"?> <exchange xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="deService" xsi:schemaLocation="deService http://mycompany.com/webservices/apexdataexchange/schemas/RTPCATT.xsd"> <header xmlns=""> <stdXmlVer>2.0</stdXmlVer> <sendingUnit>10</sendingUnit> <sendingPerson>Test, Christine</sendingPerson> <notification>[email protected]</notification> <creationDate>2011-12-20</creationDate> </header> <entities xmlns=""> <Construct> <requestBUID>150000123</requestBUID> <requestName>AA0000123</requestName> <cassetteBUID>160000123</cassetteBUID> <cassetteName>AB000123</cassetteName> <scientist>Test, Christine</scientist> <projectNumber>T000123</projectNumber> <subProject>Discovery Plus</subProject> <comments>AA0000123 From CATT on 20-DEC-11 </comments> <nominator>Test, Christine</nominator> <goingToVqc>true</goingToVqc> <primaryTrait>promoter::intron::transit:gene::terminator</primaryTrait> <sourceMatPrvd>seed - stuff</sourceMatPrvd> <prokaryoticResistance></prokaryoticResistance> <vectorType>Plant Vector</vectorType> <priority>Medium</priority> <immediateTrafo>true</immediateTrafo> <newComponent></newComponent> <componentName>gene</componentName> <newComponentDescription>unknown function; sequence has some similarity to others</newComponentDescription> <targetCrop>Crop</targetCrop> <Line>Inbred</Line> <plantSelection>smidge ver2</plantSelection> <numOfIndEvents>6</numOfIndEvents> <numOfPlantsPerEvent>1</numOfPlantsPerEvent> <molecularQualityEvents>NA</molecularQualityEvents> <toField>true</toField> <potentialPhenotype></potentialPhenotype> </Construct> </entities> </exchange>My application page is accessed by an action from another page. The user reviews the data in a sql report region. When the use clicks on the Upload (SUBMIT) button, the xml string is generated first and then the web service is invoked. I have tried passing a simple string as the second parameter ("dummydata") and partial data in the xml string ("<sendingPerson>Test, Christine</sendingPerson>") the web service returns this error in both cases:
    Error[Validate Data]: (XML) = Data at the root level is invalid. Line 1, position 1.. Cannot validate the XML! Data Exchange not accepted!Once I pass the entire xml string above, I get an Oracle-01403: no data found error. I have opened the web service in IE and pasted my xml input string and received a valid, verified result, so I am sure that the generated xml is correct. I have spoken with the web service developer; there are no log entries created by the web service when I submit the full xml string, so I suspect the failure is in the Apex application.
    Thanks,
    Christine
    I should add that once I have nested tags in the xml, I get the Oracle no data found error ("<header xmlns=""> <stdXmlVer>2.0</stdXmlVer> <sendingUnit>10</sendingUnit> </header>"). I f I do not have nested tags in the xml ("<notification>[email protected]</notification> <creationDate>2011-12-20</creationDate>"), I get the web service response (error).
    Edited by: ChristineD on Dec 20, 2011 9:54 AM

    Ok, I think I'm getting closer to thinking this all the way through. When I have used clobs in the past, I've always used the DBMS_CLOB package. I use this to create a temp clob and then make the above calls. I had to go find an example in my own code to remember all of this. So, here is another suggestion... feel free to disregard all the previous code snippets..
    declare
      cursor build_data  is
        select u_catt_request_buid,u_catt_request_name,u_catt_cassette_buid,u_catt_cassette_name
          ,u_project_name,u_sub_project,replace(u_nominator,'ERROR ','') u_nominator
          ,replace(replace(u_going_to_vqc,'Yes','true'),'No','false') u_going_to_vqc
          ,u_promoter,u_cds,u_terminator
          ,u_primary_trait,u_source_mat_prvd,u_pro_resistance_1,u_vector_type
          ,nvl(u_my_priority,'Medium') u_my_priority
          ,replace(replace(u_immediate_trafo,'Yes','true'),'No','false') u_immediate_trafo
          ,replace(replace(u_new_bps_cmpnt,'Yes','true'),'No','false') u_new_bps_cmpnt
          ,u_compnt_name,u_new_cmpt_desc,initcap(u_target_crop) u_target_crop,u_corn_line
          ,u_plant_selection,u_num_of_ind_events,u_num_plants_per_event,u_molecular_quality_events
          ,replace(replace(u_field,'Yes','true'),'No','false') u_field
          ,u_t1_seed_request,u_potential_phenotype,u_submission_date
          ,u_sequence_length,u_trait,u_frst_parent,u_frst_parent_vshare_id,u_cds_vshare_id
          ,constructid,cassetteid,description
        from temp_constructs_lims
        order by constructid,description;
      v_xml_info         varchar2(350);
      v_xml_header       varchar2(1000);
      v_xml_data         clob;
      v_xml_footer       varchar2(50);
      v_create_date      varchar2(10);
      v_scientist_name   v_users.full_name%type;
      v_scientist_email  v_users.email_address%type;
      v_primas_code      construct.fkprimas%type;
      v_nominator_name   v_nominators.full_name%type;
      v_file_length      number;
      v_xml_body    varchar2(32767); --added by AustinJ
      v_page_item    varchar2(32767);  --added by AustinJ
    begin
      -- initialize variables
      v_create_date := to_char(sysdate,'YYYY-MM-DD');
      --v_xml_data := null;   --commented out by AustinJ
      dbms_lob.createtemporary( v_xml_data, FALSE, dbms_lob.session );  --added by AustinJ
      dbms_lob.open( v_xml_data, dbms_lob.lob_readwrite );  --added by AustinJ
      -- get name and email address
      begin
        select full_name,email_address
        into v_scientist_name,v_scientist_email
        from v_users
        where ldap_account = :F140_USER_ID; 
      exception when no_data_found then
        v_scientist_name := '';
        v_scientist_email := '';
        v_scientist_name := 'Test, Christine';
        v_scientist_email := '[email protected]';
      end;
      -- set up xml file 
      if :OWNER like '%DEV%' then
        v_xml_info := '
          <?xml version="1.0" encoding="utf-8"?>
          <exchange xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                    xmlns="deService"
                    xsi:schemaLocation="deService http://mycompany.com/webservices/apexdataexchange/schemas/RTPCATT.xsd">
      else
        v_xml_info := '
          <?xml version="1.0" encoding="utf-8"?>
          <exchange xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                    xmlns="deService"
                    xsi:schemaLocation="deService http://mycompanyprod.com/webservices/apexdataexchange/schemas/RTPCATT.xsd">
      end if;
      -- populate xml header records
      v_xml_header := '<header xmlns="">
        <stdXmlVer>2.0</stdXmlVer>
        <sendingUnit>'||:P36_UNIT_NUMBER||'</sendingUnit>
        <sendingPerson>'||v_scientist_name||'</sendingPerson>
        <notification>'||v_scientist_email||'</notification>
        <creationDate>'||v_create_date||'</creationDate>
      </header>
      <entities xmlns="">
      for rec in build_data loop
        begin
          -- get primas code for current construct
          select fkprimas
          into v_primas_code
          from construct
          where constructid = rec.constructid;
        exception when no_data_found then
          v_primas_code := null;
        end;
        begin
          -- get nominator name for current construct
          select full_name
          into v_nominator_name
          from v_nominators
          where nominator_id = rec.u_nominator;
        exception
          when no_data_found then
            v_nominator_name := null;
          when invalid_number then
            v_nominator_name := catt_pkg.full_name_from_user_id(p_user_id => rec.u_nominator);
            v_nominator_name := 'Test, Christine';
        end;
        v_xml_body := '
          <Construct>
          <requestBUID>'||rec.u_catt_request_buid||'</requestBUID>
          <requestName>'||rec.u_catt_request_name||'</requestName>
          <cassetteBUID>'||rec.u_catt_cassette_buid||'</cassetteBUID>
          <cassetteName>'||rec.u_catt_cassette_name||'</cassetteName>
          <scientist>'||v_scientist_name||'</scientist>
          <projectNumber>'||v_primas_code||'</projectNumber>
          <subProject>'||rec.u_sub_project||'</subProject>
          <comments>'||rec.description||'</comments>
          <nominator>'||v_nominator_name||'</nominator>
          <goingToVqc>'||rec.u_going_to_vqc||'</goingToVqc>
          <primaryTrait>'||rec.u_primary_trait||'</primaryTrait>
          <sourceMatPrvd>'||rec.u_source_mat_prvd||'</sourceMatPrvd>
          <prokaryoticResistance>'||rec.u_pro_resistance_1||'</prokaryoticResistance>
          <vectorType>'||rec.u_vector_type||'</vectorType>
          <priority>'||rec.u_my_priority||'</priority>
          <immediateTrafo>'||rec.u_immediate_trafo||'</immediateTrafo>
          <newComponent>'||rec.u_new_bps_cmpnt||'</newComponent>
          <componentName>'||rec.u_compnt_name||'</componentName>
          <newComponentDescription>'||rec.u_new_cmpt_desc||'</newComponentDescription>
          <targetCrop>'||rec.u_target_crop||'</targetCrop>
          <Line>'||rec.u_corn_line||'</Line>
          <plantSelection>'||rec.u_plant_selection||'</plantSelection>
          <numOfIndEvents>'||rec.u_num_of_ind_events||'</numOfIndEvents>
          <numOfPlantsPerEvent>'||rec.u_num_plants_per_event||'</numOfPlantsPerEvent>
          <molecularQualityEvents>'||rec.u_molecular_quality_events||'</molecularQualityEvents>
          <toField>'||rec.u_field||'</toField>
          <potentialPhenotype>'||rec.u_potential_phenotype||'</potentialPhenotype>
          </Construct>
        ';    --modified by AustinJ
        dbms_lob.writeappend( v_xml_data, length(v_xml_body), v_xml_body);   --added by AustinJ
      end loop;
      -- complete xml data   
      v_xml_footer := '
          </entities>
        </exchange>
      -- complete submission data
      v_page_item := null;   
      v_page_item := v_xml_info||v_xml_header||wwv_flow.do_substitutions(wwv_flow_utilities.clob_to_varchar2(v_xml_data))||v_xml_footer;   --added by AustinJ
      :P36_XML_SUBMISSION := trim(v_page_item);   --added by AustinJ
        dbms_lob.close( v_xml_data);  --added by AustinJ
        if v_xml_data is not null then   
            dbms_lob.freetemporary(v_xml_data);   --added by AustinJ
        end if;  --added by AustinJ
    end;This code will use the Database to construct your clob and then convert it back to a varchar2 for output to your webservice. This makes more sense to me now and hopefully you can follow what the process is doing.
    You don't technically need the two varchar2(36767) variables. I used two for naming convention clarity sake. You could use just one multipurpose variable instead.
    If you have any questions, just ask. I'll help if I can.
    Austin
    Edited by: AustinJ on Dec 20, 2011 12:17 PM
    Fixed spelling mistakes.

  • Option to load XML data into BI 70

    Hi All,
    I have read some postings on forums and also have read the "HOW TO load XML data in BW" guide. I am confused when I read the SAP online help documentation for loading XML data .
    Question : Out of the 3 options listed below which option is best suited for loading XML data into BW . XML file is going to be provided by 3rd party company ?
    Thanks and appreciate any input .
    Smith .
    Here is what I found for BI 70 EHP1 help :
    http://help.sap.com/saphelp_nw04s/helpdata/en/b2/e50138fede083de10000009b38f8cf/frameset.htm
    Data is generally transferred into SAP BW by means of a data request, which is sent from SAP BW to the source system (pull from the scheduler). You can also send the data to SAP BW from outside the system. This is a data push into SAP BW.
    A data push is possible for various scenarios:
    ●     Transferring Data Using the SOAP Service SAP Web AS
    ●     Transferring Data Using Web Services
    ●     Transferring Data Using SAP XI
    In all three scenarios, data transfer takes place using transfer mechanisms that are sufficient for Simple Object Access Protocol (SOAP); the data transfer is also XML-based.
    The SOAP-based transfer of data is only possible for flat structures. You cannot transfer hierarchy data.

    Hi,
    I feel you can go with 2nd option. But still wait for some more inputs from Experts........
    Regards,
    Suman

  • How can I embed XML data in a PDF?

    I want to embed XML data in a PDF so the file can be scanned for the data behind the document. Is there a standard way to do this?
    For example, if the PDF is a bank statement, the embedded XML would be the individual's account number and bank balances. It would not include any of the standard text in the statement such as the bank name, etc.
    I've read up on the XMP spec but that seems to be more metadata about the document (title, subject, etc.). And there is tagged content but that is an alternate view of the entire document.
    ??? - thanks - dave

    Although the XMP block is stored in XML, you can't just embed any XML file. The block has to follow the standard, which means that each data packet needs to be defined in a schema - as the name suggests, XMP is eXtendable so you can define new schema for local use, but you can't mess about with the standard ones and randomly add new tags. The schema itself isn't embedded in the file, it's referenced by a unique ID and URI. of course having a data packet in a custom schema doesn't mean any software will see it - Acrobat's Advanced Search can be told to scan the XMP block but  search engines only tend to bother with the basic tags such as 'title' and 'description'.
    To see what's currently in a PDF, open Document Properties > Description > Additional Metadata > Advanced.
    You can save the current XMP block as a text file (.xmp extension), and replace/append other XMP files. If you click the "i" icon on the top right of the Advanced dialog you can access system profiles - these can be created in other applications such as Bridge, but there's no profile manager in Acrobat itself.
    For technical information on working with XMP and creating new schema, see http://www.adobe.com/devnet/xmp.html
    Note that the XMP SDK for CS6 does not work in the Acrobat Family.

  • Returning XML Data from a database

    Ok, just got the new DW CS3 and really want to begin using
    the built in Spry capabilitites. All of the examples I've seen for
    populating the datasets with XML data are based on referencing a
    static XML file. I want to query my database and return XML data to
    a Spry Table. How do I accomplish this? I know how to perform the
    query and retrun the data in an XML format (ColdFusion) but I can't
    tell the spry dataset to use this. HELP!!

    Well, that's the trick... I can't point to a testing server
    (i.e. Application interface) because we aren't permitted to have
    the RDS login where I work. (They haven't bothered to configure the
    CF server for restricting access) I have to manually create all
    connections and queries. I'm currenlty using the exact format in
    the example page you provided to return the data in an XML format
    but when I point to that file as my datasource I get nothing
    displayed on the page. The file that performs the query and returns
    the data is in a separate file from the one I'm trying to use the
    Spry table in. When I use this same query file for an Ajax call to,
    say, populate a listbox or pulldown menu it works fine, but I can't
    get it to work with the Spry dataset.

  • Date time field will not bind over into XML data file

    am using the Current Date field in a form that is supposed to give me the current date & time. In the Object, Value, I am using a "calculated - Read Only" , with Run-time property of Date and Time. WHen I view this as a PDF, the current datae & time display on the form as well as when I view the body pages, the {current date/time} is displayed in the actual field of the form. My only problem is I want to bind this so I can export the data to an XML data file, to import to an Access Database. WHen I use these settings, I do not have a "binding" tab to use. WHen I change vaule to "calculation script), it then pops up the binding tab and let's me export the field to the XML data file, but the data in that field is not comming over (the date & time). The field comes into the database inport, but is blank. What am I doing wrong..?? Thanks in advance for any suggestions...

    Well, I'm assuming that when you change it to a calculation script you see the date in the PDF and therefore have the script to set the value written properly. So, if you change the binding from None to Normal or an explicit binding the date will be exported in the data. If all of that is correct, then the most likely problem is the data format you are exporting is not a format that your database will accept.
    Chris
    Adobe Enterprise Developer Support

Maybe you are looking for