Can I create an XSD from XML data into a CLOB?

Environment:


Oracle 11.2.0.3 EE on Solaris.


Highly an XML newbie so please be nice!

I spent the past few days pouring through the documentation and various articles, including this one, but... I need help.

I am trying to extract XML data stored in a CLOB and produce a flat file for the user's consumption.

They sent me what they think is the XSD for XML data, but when I look at the data in the CLOB I don't see tags in the XSD.

I would like to produce a XSD based on real data to compare with what they sent.

Is this possible?

I am able to query XML data using the tags that I see in data using XMLTable and it works fine.

Any help is greatly appreciated.

-gary

Welcome to the side of the world, where you're going to love it and curse, like any other piece of XML technology.

So if I understand correctly, the scope of your operation is to extract information from an XML file and then write this information to the disk, correct?

A few questions

-Why did the XML stored in a CLOB instead of an XMLType column?  Without knowing the history of the system, it is a pertinent question.

-What size are the XML?  I ask this question, it is because when the XML is stored in the columns of XMLType (relational structure object or XML BINARY SECUREFILE format), then Oracle can parse the XML much more easily when it is stored as a CLOB.  If the XML is small enough, you can see no difference in performance between the two.

The Oracle DB itself has no built in the ability to generate a schema from an XML file.  To do this, you need to use a third-party tool that has this feature in.  For example, XML Spy can do.  Other tools as well, but that's what comes to mind first is what I use.  The only thing to remember is that the scheme he built is only an XML instance.  Other XML instances can be different and not valid against the schema you generated, but still valid against the original schema unknown.

You can save the schema in the database and then use the XML to create an XMLType instance related to the schema and then validate the XML in this way.  An example XML DB FAQ and here's another one Re: validation of XML schema

Hope that helps you continue.

Tags: Database

Similar Questions

  • navigateToURL from XML data

    (Edited for clarity 13:16's)

    OK thanks to Greg, I have this with a redirect built in barchart:

    This is my simple histogram:

    < mx:BarChart = x "561" y = "198" id = "CapitalExpenditures" dataProvider = "{I}" width = "762" showDataTips = "True" fontSize = "12" height = "371" >
    < mx:verticalAxis >
    "< mx:CategoryAxis categoryField="@type "/ >
    < / mx:verticalAxis >
    < mx:series >
    "< displayName = 'Spending' xField="@balance mx:BarSeries ' fill = race "{sc1}" = "{s1}" labelFunction = "formatNumber.
    Click = "navigateToURL (new URLRequest (rptWebsite))" >
    < / mx:BarSeries >
    < / mx:series >
    < / mx:BarChart >

    It works very well, but rather than hard code the URL, I would like to get from XML data that are already loaded into the system and assigned to a XMLList "di". My XML file is structured as follows:

    <>projects
    "< prName work = hours of 'One-project' = '705.50' rptUrl = ' http://www.google.com" / > "
    "< prName work = hours of project 'B' = '370.00' rptUrl = ' http://www.yahoo.com" / > "
    < / project >

    What I want to do, use the URL of the XML file, under the name of rptUrl as the URL path in my re - direct.

    I tried to put everything in navigateToURL (new URLRequest (@rptUrl) "> in but could not compile.")

    My confusion is the place where to insert the value in the URL variable and precisely what syntax to use? I have to use e4X for example?

    I created this function to my redirection:

    public void goUrlTFP(event:MouseEvent):void
    {
    ' rptWebsite =' http://www.google.com "
    navigateToURL (new URLRequest (rptWebsite)) return
    }

    It compiles, but I get nothing in the variable.

    I'm using the wrong syntax? I have to do something other than a mouseEvent of my function? Should I trigger the function somewhere else to the click event? I have to browse the file and fill a XMLList or something?

    I tried rptWebsite=item.@rptUrl and rptWebsite=ceDs.@rptUrl, but those who could not compile

    M.

    M, without trying to sound like I'm raggine on you (yet), I'm curious to know how you go about detective your way through the API to come up with possible solutions. What is your thought process? I wonder if it wouldn't you get more if you provide some tips on how to use the API correctly. Teach you to fish instead of giving the fish (for setting the proverb a little).

    I certainly did not know the answer to your problem just a few minutes ago, but it's literally what it took me to find what I think can be an answer to your problem.

    You have defined your features such as:
    Click on a bar chart and have it redirect to a URL that does not exist in the dataProvider of the histogram.

    How can we get these data to URL? The first thing to check would be click events. We look at the possible events that can be shipped when clicking the chart element (BarSeries) or component BarChart himself. When you look at the 'click' for the two event I wasn't expecting much in the measure where this event carrying additional information that I might be able to use, it's just a simple click event. And if I did event.currentTarget, there is no property that directly gives me the data I'm looking. However, in the API, I see an event type itemClick ChartItemEvent (under events) for BarChart which seems promising.

    Then I look in the API to ChartItemEvent and note that there is a property "hitData" type HitData which seem also promising. Now I look at HitData in the API and see that there is a property "item. It's more likely that the element that is used to render the particular BarSeries I clicked on. So I think that I can easily get the related data on an itemClick event.

    I tried and it was of course the data that I expect. I can remember something painfully obvious and much simpler to obtain these data, but I think this thought process shows that with a little effort, you can get a few runs in the API that you will probably have your solution. I doubt there is anyone on this forum who knows everything there is to know about the API. Use the docs, they are your friend.

    BTW, what is the other language that you are more familiar with what you're talking about from time to time?

    TS

  • Update of a column of table from xml data

    Hello

    I have an obligation to update a particular table from xml data column. to do this, I wrote the code below but I am not able to insert. could you please a peek into that.

    create table emp3
    as
    select *From emp
    where 1=1;
    
    alter table emp3
    add (fax_response varchar2(50));
    
    /*create sequence EmailRecords_XMLFILE_SEQ
      minvalue 1
      maxvalue 999999999999999999999999999
      start with 1
      increment by 1
      nocache;*/
    
    /* create global temporary table EmailRecords_XMLFILE
      (
      ID NUMBER not null,
      xmlfile CLOB
      )
      on commit preserve rows;*/
    
    /* create global temporary table UPD_Email_Records_With_Xml
      (
      id NUMBER not null,
    
      response VARCHAR2(500)
    
      )
      on commit preserve rows; */
    
    
    

    the XML data is

    <FAX>
    <EMAILOG>
    <ID>7839</ID>
    <RESPONSE>FAX SENT</RESPONSE>
    </EMAILOG>
    <EMAILOG>
    <ID>7566</ID>
    <RESPONSE>FAX NOT SENT</RESPONSE>
    </EMAILOG>
    </FAX>
    
    
    

    CREATE OR REPLACE PROCEDURE proc_upd_email_records (
       loc_xml          IN       CLOB,
       p_err_code_out   OUT      NUMBER,
       p_err_mesg_out   OUT      VARCHAR2
    )
    IS
       loc_id   NUMBER;
    BEGIN
       loc_id := emailrecords_xmlfile_seq.NEXTVAL; --created sequence
    
    
    
       INSERT INTO emailrecords_xmlfile --created Global Temp table
                   (ID, xmlfile
                   )
            VALUES (loc_id, loc_xml
                   );
    
       COMMIT;
          insert into UPD_Email_Records_With_Xml --created Global Temp table
            (ID, RESPONSE)
            select x1.id,
    
                      x1.RESPONSE
              from EmailRecords_XMLFILE,
                   xmltable('/FAX/EMAILOGID' passing
                            xmltype.createxml(EmailRecords_XMLFILE.xmlfile)
                            columns header_no for ordinality,
                            id number path 'ID',
                            RESPONSE VARCHAR2(250) path 'RESPONSE'
    
                               ) x1
             where EmailRecords_XMLFILE.id = loc_id;
       COMMIT;
    
       UPDATE emp3 er
          SET er.fax_response = (SELECT response
                               FROM upd_email_records_with_xml pr
                              WHERE pr.ID = er.empno)
        WHERE er.empno IN (SELECT ID
                             FROM upd_email_records_with_xml);
    EXCEPTION
       WHEN NO_DATA_FOUND
       THEN
          raise_application_error
             (-20000,
              'Sorry ! The Xml File which is passed is empty. Please try with Valid Xml File. Thank you!!! '
             );
       WHEN OTHERS
       THEN
          p_err_code_out := 4;
          p_err_mesg_out := 'error in insertion=> ' || SQLERRM;
    END proc_upd_email_records;
    {code}{code}
    
    
    

    Someone suggest me a slightly easier way to insert data...

    Thank you...

    You're complicating things

    A simple MERGE statement will do.

    create or replace procedure (proc_upd_email_records)

    loc_xml in clob

    )

    is

    Start

    merge into e emp3

    a_l'_aide_de)

    Select id

    response

    from xmltable)

    "/ FAX/EMAILOG.

    by the way xmlparse (document loc_xml)

    the columns id number way "ID".

    , path of varchar2 (250) response 'RESPONSE '.

    )

    ) v

    on (e.empno = v.id)

    When matched then update

    Set e.fax_response = v.response

    ;

    end;

    /

    But there is no value added by using these temporary tables if you are not at least an intermediate XMLType column (storage preferably binary XML).

    -What is the input XML code?

    -What is the version of db?

  • How can I create a mirror from a photo image

    How can I create a mirror from a photo image

    Hi Malcolm,.

    Choose the crop tool in Photoshop Fix. Then choose 'Fip H' or 'Flip V' in the options of the harvest.

    Mike

  • How can I create a widget from Adobe Acrobat DC Pro that I use in my Web site instead of using EchoSign/DC, as I am now?

    How can I create a widget from Adobe Acrobat DC Pro that I use in my Web site instead of using EchoSign/DC, as I am now?

    Hello

    As the creation of widgets is an echosign feature and not an Acrobat feature, unfortunately, you wouldn't be able to create widgets with the Acrobat DC pro subscription. This is due to the reason why you get echosign pro subscription when you subscribe to DC, Acrobat pro, which does not support the widget.

    If in the case where you are on Echosign pro subscription, you wouldn't be able to do so because it does not support the creation of widgets. You will have to opt for a global echosign or the company's plan to create widgets.

    Or you can opt for one of the Acrobat business plans to perform this task.

    If you wish, you can connect with the support of Adobe for more information in this regard.

    http://helpx.Adobe.com/x-productkb/global/Service1.html

    Please click on the blue button "Still need help" to connect with one of the frames.

    Concerning

    Sukrit diallo

  • to retrieve data from xml data type

    Hello...
    I have a doubt in the oracle database... Here's how to retrieve data from xml data type?

    Like this...

    SQL> ed
    Wrote file afiedt.buf
    
      1  with t as (select xmltype('
      2  
    3 4 toMonth5 5 ctTestPan1 6 costType2 7 toYear2012 8 fromMonth12 9 fromYear2011 10 11
    ') as xml from dual) 12 -- 13 -- end of sample XMLDATA, use below query on your own table etc. as required 14 -- 15 select x.* 16 from t 17 ,xmltable('/DETAILS/FIELDS_VALUES/FIELD' 18 passing t.xml 19 columns name varchar2(30) path './NAME' 20 ,val varchar2(10) path './VALUE' 21* ) x SQL> / NAME VAL ------------------------------ ---------- toMonth 5 ctTestPan 1 costType 2 toYear 2012 fromMonth 12 fromYear 2011 6 rows selected.
  • How can I create a query with the data control to the web service?

    I need to create a query with the order of web service data, WSDL, it is query operation, there is a message of parameter with possible query criteria and a return message contains the results. I googled but can't find anything on the query with the web service. I can't find a criterion "named" to the data control of web service as normal data control. Blog of Shay, I saw the topics on the update with the data of web service command. How can I create a query with the data control to the web service? Thank you.

    Hello

    This might help

    * 054.     Search form using control data WS ADF and complex of entry types *.

    http://www.Oracle.com/technetwork/developer-tools/ADF/learnmore/index-101235.html

  • Load xml data into the table

    Hi all

    I have an XML (emp.xml) with data below:

    -< root >
    -< row >
    < name > steve < / lastname >
    < 30 > < / Age >
    < / row >
    -< row >
    < name > Paul < / lastname >
    <>26 < / Age >
    < / row >
    < / root >

    I would like to create a stored procedure to store the xml data into the EMP table.

    EMP
    LastName age
    Steve 30
    Paul 26

    I tried to watch all threads related to this forum, but cannot find the right wire. Any help is greatly appreciated. Thank you

    With

    SQL>  select * from xmltable('root/row' passing xmltype('
    
    steve
    30
    
    
    Paul
    26
    
    ') columns lastname path 'lastname',
                       Age path 'Age')
    /
    LASTNAME   AGE
    ---------- ----------
    steve      30
    Paul       26   
    

    You can now just make a

    Insert into emp as select...

  • Creating sub XMLList Collection from XML data

    Hello

    I use three TileList components - A, B and C

    Get the data as a single XML from a remote XML data function through a component generator HTTPService

    for example: simple XML data:

    nodes <>

    < node id = "1" type = "a" > < / node >

    < node id = "2" type = "b" > < / node >

    < = '3' type = 'c' node id > < / node >

    < node id = "4" type = "b" > < / node >

    < = '5' type = 'c' node id > < / node >

    < node id = "6" type = "a" > < / node >

    < node id = "7" type = "a" > < / node >

    < / node >

    I would like to create (group based on the XML attribute ' type') 3 sub list XML collection / XMLs using the received XML (see above) to propose it as a data provider for the three TileList component matching

    as:

    1 XMLA as a data provider for A tileList

    nodes <>

    < node id = "1" type = "a" > < / node >

    < node id = "6" type = "a" > < / node >

    < node id = "7" type = "a" > < / node >

    < / node >

    2 XMLB as data provider for B-tileList

    nodes <>

    < node id = "2" type = "b" > < / node >

    < node id = "4" type = "b" > < / node >

    < / node >

    3 XMLC as data provider for C-tileList

    nodes <>

    < = '3' type = 'c' node id > < / node >

    < = '5' type = 'c' node id > < / node >

    < / node >

    How can I accomplish this?
    -Sen

    This can be done very concise, with the help of E4X, which allows you to work with XML from child's play.

    Here is my example which binds the data provider to all nodes of the type 'a' and that specifies the field of the label of the control set to the id attribute of the node:


    http://www.Adobe.com/2006/mxml">

     
         
         
         
         
         
         
         
     


  • Can I create partitions without losing my data?

    I use Windows 7 Home Basic 32 bit, I have only a primary partition, IE. « C ». I want to install Windows 8 and also want to use Windows 7 at the same time, for this I need and separate partition. can I do in 'C' partition without data loss? and if I can, how? Help, please!

    You can.  But back up all your data first!  This process is a dangerous process and the smallest slip could erase your entire hard drive.  You have been warned.

    Now, that being said,.

    (1) open disk management

    (2) right click on your C drive in the chart and "reduce" the volume

    (3) right-click the now empty space and create a new volume he

    (4) click the new volume, and then format. Give it a name that you will recognize as "Win8" or something

    (5) boot from your installation Windows 8 media and choose install this new partition on

  • generate the xsd file xml data

    I would like to make my java application automatically convert a given to a one .xml .xsd file.
    I know that with jdev, you can generate an xsd one xml file, and I want my application to do the same thing.
    I also know that I can use JAXB: first of all, I bind the xsd file, then I marshall the java class created for the xml. But I don't know how to do it.
    y at - it a simple way to use the 'things' behind the generation of xml xsd jdev.

    Please see
    http://www.developer.com/Java/Web/article.php/3722211/using-JAXB-in-JDeveloper-1013.htm

    JDeveloepr 11 g includes JAXB 2.0.

  • How can I create a column with additional dates in number 3.6.1

    I'm a noob for Mac so be gentle with me. I have a spreadsheet and need to have additional dates in the first column of 01.01.16 at the end of the year.  I managed to create a custom date format and changed cells to be this format, but no date appears in the cells.  What did I miss? Thank you

    Here's a way to do it:

    First, make sure that your table has enough lines for all the dates you want.

    Then enter your first date is in, say, A2.  A3 (the cell below) enter the following formula: = A2 + 1

    Select the cell containing the formula, place the cursor on the lower edge, then drag the yellow point to the bottom of the column.

    You can also select the cell containing the formula, command + c to copy, select all the cells in the column and command-v to paste.

    You can, of course, always use the custom date format you like.

    SG

  • How can I create multiple PDFs from a big original pdf?

    Good afternoon-

    Newby here - New on Acrobat.com.  How can I convert/save the big 1 pdf into several smaller files to pdf using acrobat.com?

    You can not. This requires the Acrobat application.

  • Load xml data into an Oracle table

    Hello

    I went through some threads in the forums itself, but for my requirement that nothing comes closer, I write my request. I have a XML like this
    <? XML version = "1.0"? >
    < ACCOUNT_HEADER_ACK >
    < HEADER >
    < STATUS_CODE > 100 < / STATUS_CODE >
    Check < STATUS_REMARKS > < / STATUS_REMARKS >
    < / Header >
    < DETAILS >
    < DETAIL >
    < SEGMENT_NUMBER > 2 < / SEGMENT_NUMBER >
    PR Polytechnic < REMARKS > < / COMMENTS >
    < / DETAILS >
    < DETAIL >
    < SEGMENT_NUMBER > 3 < / SEGMENT_NUMBER >
    < REMARKS > PR Polytechnic administration < / COMMENTS >
    < / DETAILS >
    < DETAIL >
    < SEGMENT_NUMBER > 4 < / SEGMENT_NUMBER >
    < REMARKS > rp Polytechnique finance < / COMMENTS >
    < / DETAILS >
    < DETAIL >
    < SEGMENT_NUMBER > 5 < / SEGMENT_NUMBER >
    < REMARKS > logistics Polytechnique rp < / COMMENTS >
    < / DETAILS >
    < / DETAILS >
    < HEADER >
    < STATUS_CODE > 500 < / STATUS_CODE >
    < STATUS_REMARKS > process exception < / STATUS_REMARKS >
    < / Header >
    < DETAILS >
    < DETAIL >
    < SEGMENT_NUMBER > 20 < / SEGMENT_NUMBER >
    Basic Polytechnique < REMARKS > < / COMMENTS >
    < / DETAILS >
    < DETAIL >
    < SEGMENT_NUMBER > 30 < / SEGMENT_NUMBER >
    < / DETAILS >
    < DETAIL >
    < SEGMENT_NUMBER > 40 < / SEGMENT_NUMBER >
    Finance basic Polytechnique < REMARKS > < / COMMENTS >
    < / DETAILS >
    < DETAIL >
    < SEGMENT_NUMBER > 50 < / SEGMENT_NUMBER >
    Logistics base Polytechnique < REMARKS > < / COMMENTS >
    < / DETAILS >
    < / DETAILS >
    < / ACCOUNT_HEADER_ACK >

    Here is the xml structure of the master structure and child I want to insert data in Oracle tables using the sql * loader initially tried to create a control file, but I don't know how to terminate in the control file, so I created two control files

    load data
    INFILE 'acct.xml' ' str ' < / DETAIL >»»
    TRUNCATE
    in the xxrp_acct_detail table
    TRAILING NULLCOLS
    (
    dummy fill finished by "< DETAIL >."
    SEGMENT_NUMBER surrounded by '< SEGMENT_NUMBER >' and ' < / SEGMENT_NUMBER >, "
    REMARKS framed by 'Of REMARKS <>' and ' < / COMMENTS >.
    )


    load data
    ACCT.XML INFILE' "str" < / header > ' "»
    TRUNCATE
    in the xxrp_acct_header table
    fields terminated by '< HEADER >.
    TRAILING NULLCOLS
    (
    dummy fill finished by "< HEADER >."
    STATUS_CODE framed by '< STATUS_CODE >' and ' < / STATUS_CODE >. "
    STATUS_REMARKS surrounded by '< STATUS_REMARKS >' and ' < / STATUS_REMARKS >.
    )

    I refer to the same xml file in two control files, where with regard to the first control file, I was able to load the files but the second which I suppose as table header not able to load the records of rest. I get the below error.

    Sheet 2: Rejected - error on the XXRP_ACCT_HEADER, column DUMMY table.
    Field in the data file exceeds the maximum length
    Sheet 3: Rejected - error on the XXRP_ACCT_HEADER, column DUMMY table.
    Field in the data file exceeds the maximum length

    In fact if its possible to seggrate a control file so it will be very useful for me. I'm also open for the external table as option. Please help me in this regard.

    Thanks in advance.

    Concerning
    Mr. Nagendra

    Here are two possible solutions:

    (1) reading the headers and separate details using two XMLTables:

    DECLARE
    
     acct_doc xmltype := xmltype( bfilename('TEST_DIR','acct.xml'), nls_charset_id('AL32UTF8') );
    
    BEGIN
    
     insert into xxrp_acct_details (status_code, status_remarks, segment_number, remarks)
     select x1.status_code,
            x1.status_remarks,
            x2.segment_number,
            x2.remarks
     from xmltable(
      '/ACCOUNT_HEADER_ACK/HEADER'
      passing acct_doc
      columns header_no      for ordinality,
              status_code    number        path 'STATUS_CODE',
              status_remarks varchar2(100) path 'STATUS_REMARKS'
     ) x1,
     xmltable(
      '$d/ACCOUNT_HEADER_ACK/DETAILS[$hn]/DETAIL'
      passing acct_doc as "d",
              x1.header_no as "hn"
      columns segment_number number        path 'SEGMENT_NUMBER',
              remarks        varchar2(100) path 'REMARKS'
     ) x2
     ;
    
    END;
    

    All first (alias X 1) retrieves all headers in separate lines. The HEADER_NO generated column is used to keep track of the position of the header into the document.
    Then, we join a second XMLTable (X 2), passing HEADER_NO, so that we can access the corresponding items in DETAIL.

    (2) reading with one XMLTable, but somewhat more complex XQuery:

    DECLARE
    
     acct_doc xmltype := xmltype( bfilename('TEST_DIR','acct.xml'), nls_charset_id('AL32UTF8') );
    
    BEGIN
    
     insert into xxrp_acct_details (status_code, status_remarks, segment_number, remarks)
     select x.*
     from xmltable(
      'for $i in /ACCOUNT_HEADER_ACK/HEADER
       return
        for $j in $i/following-sibling::DETAILS[1]/DETAIL
        return element r {$i, $j}'
      passing acct_doc
      columns status_code    number        path 'HEADER/STATUS_CODE',
              status_remarks varchar2(100) path 'HEADER/STATUS_REMARKS',
              segment_number number        path 'DETAIL/SEGMENT_NUMBER',
              remarks        varchar2(100) path 'DETAIL/REMARKS'
     ) x
     ;
    
    END;
    

    Here, we use an XQuery query to extract the information that we need.
    Basically it's the same logic as above, but with two nested loops which access each header, then each RETAIL location immediately after in the order of the documents.

    Here is the link to the documentation XMLTable and XQuery in Oracle:
    http://download.Oracle.com/docs/CD/B28359_01/AppDev.111/b28369/xdb_xquery.htm#CBAGCBGJ

  • Insert XML data into the MySQL database

    Hi all, I'm new with XML and I need help with the insertion of XML data in the mysql database using coldfusion. I looked on the Coldfusion Documentation and saw how to convert XML to a Coldfusion query... but there was no example of how to do an insert. If anyone can give me a good example or point me towards a good direction on how to do it, I would really appreciate it.

    Thank you very much in advance
    Alfie

    Nevermind, I finally managed to do work!

Maybe you are looking for

  • No sound on Satellito C50D-A-138 after updating Windows 10

    I upgraded from 8.1 to 10 and the upgrade I have no sound. There is a red cross next to the speaker icon in the system tray. I tried to reinstall the driver (Setup completed successfully) and tried the Windows universal driver, both without success.

  • (Redirected) X 51 R2 GPU Upgrade

    I'm looking to upgrade my gpu. My current set up: X 51 R2 (beginning 2013) 4th gen 3.9 GHz of processor i7-4770 8 GB OF DDR3 MEMORY NVIDIA GTX 660 1.5 GB GDDR5 330W power adapter I want to upgrade to a GTX 960 but need to know if: 1. What is the maxi

  • App turns on the storm

    I'm stuck and I write as a last resort. I created a simple calculator application that works very well on all devices. My only problem is that when running on the storm, it does not (Simulator or device) when the device is tilted. My application is p

  • DNS traffic blocked after PAT - PIX 515

    I have PIX 515 with 3 named NIC (internal, external, dmz) I have 2 servers (Exchange and Windows 2000 with SMTP) in the demilitarized zone. I currently have a static command pointing to doamin for exchange Server IP address in the DMZ. I wanted to PA

  • GER t simvalley SPX-8

    Windows 7 (32 bit) can not connect smartphone simvalley SPX_8 by bluetooth Any idea to solve this problem?