XML book

Hi,
Could anyone please suggest a good book for learning XML?
Thanks.

I'm just learning XML myself and have worked through several XML books. I think that Building Oracle XML Applications by Steve Muench is easily the best on XML, especially when used with Oracle. Another good book is Java and XML by Brett McLaughlin.

Similar Messages

  • Recommend a good XML book?

    I am looking for a good XML book.
    I found 'Building Oracle XML Applications' by Steve Muench at AMAZON, but its dated SEP 2000, and for Oracle 8i.
    I'm using 9i...will this matter?
    Suggestions please...
    Thanks
    Terry Stevens
    UK

    you can still get by with it and it is worth buying although it does need upgrading to 9i.
    I have managed to produce XML files from it though and applied stylesheets to them so I would recommend it.

  • Recommend Oracle XML Book?

    Can anyone recommend an good Oracle XML book. I've checked out "Oracle XML Applications" by O'Reily and have heard good things about it. But it's 3 1/2 years old and doesn't discuss Oracle 9i features and no mention of XML Schema (didn't exist at that point I guess).
    Thanks for any advice!!!

    Hi,
    Some of the books which provide good information about Oracle and XML (with a small description) are present at the following links:
    1.http://www.xml-book.com/xml-and-oracle-books.html
    'Building Oracle XML Applications' by Steve Muench is a good one
    Huge documentation is present free on OTN at the following link:
    1. http://otn.oracle.com/docs/products/oracle9i/doc_library/release2/nav/docindex.htm#index-XML
    Have a look at them. Various basic to advance samples are also present on OTN on XML at
    1. http://otn.oracle.com/sample_code/tech/xml/xmldb/content.html
    2. http://otn.oracle.com/sample_code/tech/xml/content.html
    Check them.
    Regards,
    Anupama

  • XML Book /Material

    Hi All,
    Can somebody suggest me a good,code easy to learn "Java and XML " book or online "Java and XML" material/tutorial. It should also contain code examples.
    Thanks,
    Neenu.

    http://www.cafeconleche.org/books/xmljava/
    http://www.theserverside.com/books/manning/J2EEXML/index.jsp

  • Example 5-11 in Steve Muench's Oracle-XML book

    Hi,
    Anyone who studied the book Building Oracle XML Applications by Steve Muench (O'Reilly), could clarify this query. When I tried to execute Example 5-11:Test,Extract and Retrieve an XPath Expression Value (page 132) I get the following error:
    PLS-00307: too many declarations of 'SELECTNODES' match this call (complete source code given at the end of this message).
    Could you please explain why this error is occurring.
    Best wishes,
    Balu
    Code
    SQL> SET SERVEROUTPUT ON
    SQL> DECLARE
    2 doc xmldom.DOMDocument;
    3 approvers xmldom.DOMNodeList;
    4 PROCEDURE p(msg VARCHAR2, nl BOOLEAN := TRUE) IS BEGIN
    5 dbms_output.put_line(msg);IF nl THEN dbms_output.put(CHR(10)); END IF;
    6 END;
    7 FUNCTION yn(b BOOLEAN ) RETURN VARCHAR2 IS
    8 BEGIN IF b THEN RETURN 'Yes'; ELSE RETURN 'No'; END IF; END;
    9 BEGIN
    10 doc := xml.parse(BFileName('XMLFILES','claim77804.xml'));
    11
    12 p('What is the value of the Policy number for this claim?');
    13 p( xpath.valueOf(doc,'/Claim/Policy') );
    14
    15 p('Does this claim have any settlement payments over $500 approved by JCOX?');
    16 p(yn(xpath.test(doc,'//Settlements/Payment[. > 500 and @Approver="JCOX"]')));
    17
    18 -- Demonstrate Saving and Re-getting the XML document
    19 xmldoc.save('claim77804',doc);
    20 doc := xmldoc.get('claim77804');
    21
    22 p('What is XML document fragment contained by the <DamageReport> element?');
    23 p(xpath.extract(doc,'/Claim/DamageReport'));
    24
    25 p('Who approved settlement payments for this claim?');
    26 approvers := xpath.selectNodes(doc,'/Claim/Settlements/Payment');
    27 FOR j IN 1..xmldom.getLength(approvers) LOOP
    28 p(xpath.valueOf(xmldom.item(approvers,j-1),'@Approver'),nl=>FALSE);
    29 END LOOP;
    30 xml.freeDocument(doc);
    31 END;
    32
    33 /
    DECLARE
    ERROR at line 1:
    ORA-06550: line 26, column 16:
    PLS-00307: too many declarations of 'SELECTNODES' match this call
    ORA-06550: line 26, column 3:
    PL/SQL: Statement ignored

    I tried the wayback machine, but unfortunately, it doesn't cache the SWF files either :( I do have a copy of some (ok one) of Steve's old videos (the one that shows how to do a dropdown list in an editable table, back before it was easy to do), but unfortunately, none of the search ones.
    John

  • Constracting an xml book data structure

    I have to construct a book data structure storing detalis about a book, which i parse from a file containing the book in XML format.
    I've done the parser, but i'm trying to figure out what would be the best Class I could use as a Data Structure to store the book.
    I have to store info about the title, the author, chapters, etc etc, as well as the book itself...
    Any suggestions would be very appreciated.
    Thanx.
    P.

    If I understand correctly,
    you have an xml file that describes a book.
    Would it be an option, if you just create an oject Book that has all your necessary fields in it and populate that object with your xml values?
    for ex,
    class Book
    String author;
    String title;
    String[] chapters;
    }

  • XML parsing -  org.xml.sax.driver not specified

    I am attempmtping to parse my first XML document and get the following excpetion when running my prog.
    org.xml.sax.SAXException: System property org.xml.sax.driver not specified.
    I am following the examples in the O'Reilly Java and XML book but suspect I am missing something obvious.
    This is the offending line of code:
    XMLReader xr = XMLReaderFactory.createXMLReader();
    Any help will be appreciated.

    You need to set a property for your class that invokes your SAX handler. This is the property you need to set
    org.xml.sax.driver=???
    Where ??? is the name of the package where your SAXparser lives.
    for example, my sax driver is in:
    org.xml.sax.driver=org.apache.xerces.parsers.SAXParser
    (see code below)
    Also, a sweet reference is Elliot Rusty Harold's "XML processing with Java", which answered all the practical questions I had -- really! And is free, online.
    http://www.ibiblio.org/xml/books/xmljava/chapters/index.html
    This is the code for main() where my xml handler is invoked
    try
    {  SpiderHandler spiderHandler = new SpiderHandler(testSpider);
       XMLReader reader = XMLReaderFactory.createXMLReader();
       reader.setContentHandler(spiderHandler);
       for (int i=4; i<args.length; i++)
       {   FileReader xmlScript = new FileReader(args);
    System.out.println("Input file number "+i+" named "+args[i]);
    // org.xml.sax.XMLReader.parse(InputSource) interface
    // see org.xml.sax.InputSource class      
    reader.parse(new InputSource(xmlScript));
    catch(Exception e)
    {   System.out.println("Error encountered in parsing from main(). \n");
    e.printStackTrace();
    Luck to you! XML is a joy.

  • Display XML in DWMX2004 page

    I've been able to create a valid XML doc. I wanted to display
    the data
    inside a DWMX2004 templated page. Tried the standard things
    on WC3 and other
    XML books and resources and did not have any luck. (Most of
    it is over my
    head, parsers, js and the like)
    So I check help for DW and follow their instructions to
    import XML. I now
    have the data in the file, but cannot get the CSS to show up
    properly in IE
    6/7. It will render in DW and FF 1.5. I did try *not* using
    the doctype
    declaration and it will display in FF but not IE. I've tried
    a number of
    permutations of moving things around in the DW file as the DW
    instructions
    are not specific enough. This is especially frustrating
    because the file
    works as a stand alone doc.
    DW says to first export your page with a template applied as
    an XML file.
    Then I added the XML data into the content editable region
    even though it
    does not state specifically to do this. Then I imported the
    DW XML file.
    This all may be a DW thing and not IE. I can't find
    references to this
    specifically though. I have found numerous posts about IE6
    XML and CSS bugs.
    It may be that I don't have the right code in the right place
    in the DW
    file.
    Here are the main files:
    http://www.pweaveanea.org/test/reps_xml_import.htm
    http://www.pweaveanea.org/test/pwea_general.css
    Here is the base XML file that works in both browsers:
    http://www.pweaveanea.org/test/xml/reps-w-dtd-css.xml
    Thank you for any insight you may be able to provide.

    Hi,
    You can use escape characters.
    & lt;InstanceId& gt;4930512& lt;/InstanceId& gt;<newbr>& lt;ServiceLevel& gt;SEA0:S3:H8& lt;/ServiceLevel& gt;
    I am not able to post the string which I have used, it is displaying the actual content. Remove the space in above string after & character and remove "new" and try creating raw text.
    It works as you expected. br is used for new lines and & lt are for less than symbol and similar for >
    Lets see, if some one comes with better approach if you dont like this.
    Thanks,
    Venkat Yamali.
    Edited by: 916819 on 18-Feb-2013 09:21
    Edited by: 916819 on 18-Feb-2013 09:24
    Edited by: 916819 on 18-Feb-2013 09:28

  • How can I get XML cross-references to translate to Structured FrameMaker?

    I've been using Structured FrameMaker from the beginning, and have designed many EDDs, and about 10 years ago I did some translation of SGML into Structured FrameMaker (7.2) which worked well.
    Now, (with FrameMaker 10), I've had to design an EDD to translate XML documents into Structured FrameMaker.
    In my EDD I've a CrossReference element called XRef; this has an attribute of ID, which in turn has a value of IDReference and has Special AttributeConrols of ReadOnly.
    My target elements in the EDD all have an ID attribute with a value of UniqueID.
    My XML document's target xref element has  an attribute of linkend, and in XML this works as I'd expect.
    When I pass the XML file through the EDD/Template, everything works except that I get an ID = no value, which, of course, results in no display of the cross-reference data in the document.
    Oddly, in structured FrameMaker, my element of link, with an attribute of linkend, works as it should, and displays the data.  It may not be important, but the value for linkend is IDReference not UniqueID, and this displays correctly (I changed this attribute's value to Unique ID in my EDD and it made no difference to the XRef value in my document).
    After making all these EDD changes, I've been careful to save the changes, import them to all files in my book and finally update the book.   Everything hangs together - except, of course, that the cross-reference doesn't work.
    I'd sincerely appreciate any help or advice other users might have because I'm quite frankly stumped.

    Russ,
    Sorry about the delay in replying; got sidetracked trying to fix some FrameMaker 10 problems; on occasion, it laughs and crashes if we copy an element in a document and paste it to somewhere illegal.  This doesn't happen all the time, but it might be something someone might do, so it was interesting to know.
    Anyway, back to cross-references.
    In our r/w rules we have:
    "linkend" is fm attribute "ID";
    Can we also have a similar line under the cross-reference element as:
    element "xref"
         is fm cross-reference element "XRef";
         attribute "linkend" is fm property cross-reference id;
         attribute "role" is fm property cross-reference format;
    At the moment the second line is:
    .....attribute ID is fm property cross-reference id;
    I tried adding the attribute "linkend" is fm property cross-reference id; (so that I had both linkend and ID) bit but this made no difference.
    In general use cross-references work, in that it picks up data in one place in the document, e.g. WorldWideWeb, and repeats it elsewhere.   So in our xml file we have a link element with an attribute linkend which, when it's processed (ignoring the handshake code used to link the two - which could be something vague like 12345vvdog), repeats whatever is the target.
    Conversely, for a cross-reference, in xml they use an xref element which also has a linkend attribute (similar mysterious secret handshake behind the scenes) which is deemed to point to a list of references.   This looks like it might be the stumbling block in that it links to an area in the xml document which is used as an internally generated list of references.  Apparently this is only built when the xml book equivelent is finalised, so is not, like the link and linkend coupling described above.
    I've passed this back to the xml people, and they are investigating a different way of preparing their cross-reference to a list of references (I'm now thoroughly confused with all these references - good thing the weekend's just around the corner).
    I appreciate all you help and advice, I'll admit that this is a lot more difficult to understand than straight-forward EDD element creation along with their respective attributes.   Life used to be so much more simple back then!
    In sum, what I thought I was doing was allowing an ID attribute with a value of IDReference in my elements, this was deemed to allow for FrameMaker cross-referencing.   In Structured FrameMaker, on its own, this works just fine; it all fell flat on its face when trying to import xml.   I tried to see whether the xref element's ID attribute could also be a UniqueID, but as just about everyone has said, this is a silly idea.   I was just trying stuff to see whether it might make a difference - you'll not be surprised to see that it didn't!
    For the moment, I have attributes called ID with a value of IDReference, and I understand you're all suggesting to leave it at that.
    If I understand correctly, I could eventually use an IDRef attribute if I wanted a UniqueID value to be used, though I'm not sure what a UniqueID is used or useful for, so will file that for future use.
    Again, thanks for the advice and help.
    Chris

  • Only one top level element is allowed in an XML document. Line 2, Position 2

    I get this error when I try to run an xsql query with a where clause:
    Only one top level element is allowed in an XML document. Line 2, Position 2
    <font size='-1' face='monospace'>XSQL-005: XSQL page is not well-formed.</font><BR>
    -^
    Here is the xsql query I tried to use.
    <?xml version="1.0"?>
    <xsql:query connection="xmlbook" xmlns:xsql="urn:oracle-xsql">
    select * from companytable where companynumber < 1000;
    </xsql:query>
    null

    You need to escape certain characters in order to make XML documents well formed. The problem in this case is the less than sign between companynumber and 1000. You should replace it with <
    I recommend reading a good XML book - "Building Oracle XML Applications" by Steve Muench, for instance.
    Brian

  • XML transformation using XSLT in JSP page

    Hi,
    Please help, I'm getting this error when I try to render my xml file using an xsl style sheet in my JSP page. Am I missing a JAR? Thanks
    Error 500: org/apache/xalan/xslt/XSLTInputSource
    Here's xsl file
    <?xml version="1.0" encoding="ISO-8859-1"?>
    <xsl:stylesheet version="1.0"
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:output method='html' version='1.0' encoding='UTF-8' indent='yes'/>
    <xsl:template match="/">
      <html>
      <body>
      <h2>My CD Collection</h2>
        <table border="1">
          <tr>
            <th align="left">Title</th>
            <th align="left">Artist</th>
          </tr>
          <xsl:for-each select="catalog/cd">
          <tr>
            <td><xsl:value-of select="title"/></td>
            <td><xsl:value-of select="artist"/></td>
          </tr>
          </xsl:for-each>
        </table>
      </body>
      </html>
    </xsl:template>
    </xsl:stylesheet>
    And here's my JSP page
    <%@taglib uri="http://jakarta.apache.org/taglibs/xsl-1.0" prefix="xsl"%>
    <html>
    <head><title>Phone Book</title></head>
    <body>
    <xsl:apply xml="/xml/book.xml" xsl="/xml/book.xsl" />
    </body>
    </html>
    And here's my xml file
    <?xml version="1.0" encoding="ISO-8859-1"?>
    <!-- Edited with XML Spy v4.2 -->
    <catalog>
         <cd>
              <title>Empire Burlesque</title>
              <artist>Bob Dylan</artist>
              <country>USA</country>
              <company>Columbia</company>
              <price>10.90</price>
              <year>1985</year>
         </cd>
         <cd>
              <title>Hide your heart</title>
              <artist>Bonnie Tyler</artist>
              <country>UK</country>
              <company>CBS Records</company>
              <price>9.90</price>
              <year>1988</year>
         </cd>
    </catalog>

    i would think the browser should be able do the transformation itself, rather than having to do this transformation on the server.
    If you want to do this on the server, you can always try adding xalan.jar, xml-apis.jar and xercesImpl.jar to your server's lib directory, downloaded from
    apache.org

  • How to fix iframe issue that displays XML values instead of formatted XML in IE11

    The following sub.jsp file shows the formatted XML properly as expected when is opened directly:
    <% response.setContentType("text/xml"); %>
    <book>
    <chapter1>chapter 1</chapter1>
    <chapter2>chapter 2</chapter2>
    </book>
    IE11 shows the result as below which are colored and can be collapsed or un-collapsed:
    <book><chapter1>chapter 1</chapter1><chapter2>chapter 2</chapter2></book>
    But if the sub.jsp is opened in an iframe from the below main.html, it only shows the values of the XML in the iframe:
    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="ISO-8859-1">
    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
    <title>Insert title here</title>
    </head>
    <body>
    <iframe src="sub.jsp"></iframe>
    </body>
    </html>
    The iframe shows only the XML values, i.e., chapter 1 chapter 2 in IE11. This issue does not happen in IE8.
    I appreciate to your if you know how to address this issue.
    Regards, Amir

    The following sub.jsp file shows the formatted XML properly as expected when is opened directly:
    <% response.setContentType("text/xml"); %>
    <book>
    <chapter1>chapter 1</chapter1>
    <chapter2>chapter 2</chapter2>
    </book>
    IE11 shows the result as below which are colored and can be collapsed or un-collapsed:
    <book><chapter1>chapter 1</chapter1><chapter2>chapter 2</chapter2></book>
    But if the sub.jsp is opened in an iframe from the below main.html, it only shows the values of the XML in the iframe:
    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="ISO-8859-1">
    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
    <title>Insert title here</title>
    </head>
    <body>
    <iframe src="sub.jsp"></iframe>
    </body>
    </html>
    The iframe shows only the XML values, i.e., chapter 1 chapter 2 in IE11. This issue does not happen in IE8.
    I appreciate to your if you know how to address this issue.
    This issue is also posted at below link:
    https://social.msdn.microsoft.com/Forums/en-US/5b0692b4-d312-4797-9089-42c1029ac059/how-to-fix-iframe-issue-that-displays-xml-values-instead-of-formatted-xml-in-ie11?forum=iewebdevelopment
    Regards, Amir

  • Xml clob to file

    We are using the following java to write a PL/SQL generated xml clobs to the file system. The help in this forum has been priceless.
    At this point the xml filesare being produced but have character issues. I am guessing it is basic JAVA and yes I am new to JAVA.
    1. Small clobs have trailing box characters (carraige returns)
    2. Larger files have tags broken
    Any input is appreciated.
    Thanks
    create or replace and compile java source named sjs.write_CLOB as
    import java.io.*;
    import java.sql.*;
    import java.math.*;
    import oracle.sql.*;
    import oracle.jdbc.driver.*;
    public class write_CLOB extends Object
    public static void pass_str_array(oracle.sql.CLOB p_in,java.lang.String f_in)
    throws java.sql.SQLException, IOException
    File target = new File(f_in);
    FileWriter fw = new FileWriter(target);
    BufferedWriter out = new BufferedWriter(fw);
    Reader is = p_in.getCharacterStream();
    char buffer[] = new char[8192];
    int length;
    while( (length=is.read(buffer,0,8192)) != -1) {
    out.write(buffer);
    // out.newLine();
    is.close();
    fw.close();
    /

    We are still hung up on this. I tried implementing the code from STEVE'S XML book but still haven't resovled it.
    The clob is being created via XSU see below. The new char[8192] appeasr to force the output file to 8K
    with trailing characters on small clobs but adds a carraige return each 8K on larger ones.
    As usual any input is appreciated from all. Doese anyone know of a good JAVA forum like this one?
    Thanks
    PROCEDURE BuildXml(v_return OUT INTEGER, v_message OUT VARCHAR2,string_in VARCHAR2,xml_CLOB OUT NOCOPY CLOB) IS
    queryCtx DBMS_XMLquery.ctxType;
    Buffer RAW(1024);
    Amount BINARY_INTEGER := 1024;
    Position INTEGER := 1;
    sql_string VARCHAR2(2000) := string_in;
    BEGIN
    v_return := 1;
    v_message := 'BuildXml completed succesfully.';
    queryCtx := DBMS_XMLQuery.newContext(sql_string);
    xml_CLOB := DBMS_XMLQuery.getXML(queryCtx);
    DBMS_XMLQuery.closeContext(queryCtx);
    EXCEPTION WHEN OTHERS THEN
    v_return := 0;
    v_message := 'BuildXml failed - '||SQLERRM;
    END BuildXml;
    PROCEDURE WriteCLOB(v_return OUT INTEGER, v_message OUT VARCHAR2,result IN OUT NOCOPY CLOB,TargetDirectory IN VARCHAR2,FileName IN VARCHAR2) IS
    BEGIN
    v_return := 1;
    v_message := 'WriteCLOB completed succesfully.';
    write_CLOB(result,REPLACE(TargetDirectory||'\'||FileName,'\','/'));
    EXCEPTION WHEN OTHERS THEN
    v_return := 0;
    v_message := 'WriteCLOB failed - '||SQLERRM;
    END WriteCLOB;
    create or replace and compile java source named sjs.write_CLOB as
    import java.io.*;
    import java.sql.*;
    import java.math.*;
    import oracle.sql.*;
    import oracle.jdbc.driver.*;
    public class write_CLOB extends Object
    public static void pass_str_array(oracle.sql.CLOB p_in,java.lang.String f_in)
    throws java.sql.SQLException, IOException
    File target = new File(f_in);
    FileWriter fw = new FileWriter(target);
    BufferedWriter out = new BufferedWriter(fw);
    Reader is = p_in.getCharacterStream();
    char buffer[] = new char[8192];
    int length;
    while( (length=is.read(buffer)) != -1) {
    out.write(buffer);
    is.close();
    fw.close();
    /

  • XML/XPath question--how to select a range of elements with XPath?

    Hi there,
    I have an XML DOM in memory. I need to do hold it and issue only parts of it to my client app in "pages". Each page would be a self-contained XML doc, but would be a subset of the original doc. So for instance the first page is top-level elements 1-5. 2nd page would be 6-10 etc. Is this solution best solved with XPath? If not, what's the best way? If so, I have the following question:
    Is there a way to use XPath to select a range of nodes based on position within the document? I know I can do an XPath query that will return a single Node based on position. So for example if I wanted the first node in some XML Book Catalog I could do XPathAPI.selectSingleNode(doc, "/Catalog/Book[position()=1]"); I could wrap the previous call in a loop, replacing the numeric literal each time, but that seems horribly inefficient.
    Any ideas? Thanks much in advance!
    Toby Buckley

    Your question is about marking a range of cells. 99% of the code posted has nothing to do with this. If you want to create a simple table for test purposes then just do:
    JTable table = new JTable(10, 5);
    JScrollPane scrollPane = new JScrollPane( table );
    getContentPane().add( scrollPane );
    In three line of code you have a simple demo program.
    When I leave the mouse button again, these bunch/range of cells shall stay "marked". table.setCellSelectionEnabled( true );
    and I'd like to obtain, say, a vector of a vector containing just those data marked beforeUse the getSelectedRows() and getSelectedColumns() methods for this information. I would suggest you create a Point object to reflect the row/column position and then add the point to an ArrayList.

  • Problem for XSL copying  XML file with Error in expression '*|/'.

    Hi,
    I am trying to convert xml file to another xml through command-line interface but failed.
    java oracle.xml.parser.v2.oraxsl data.xml data.xsl data_new.xml
    My sample xml and xsl files are:
    1. XML file
    <employee_data>
    <employee_row>
    <employee_number>7950</employee_number>
    <employee_name>ABC</employee_name>
    <employee_title>PRESIDENT</employee_title>
    <manager>1111</manager>
    <date_of_hire>20-JAN-93</date_of_hire>
    <salary>65000</salary>
    <commission>1000</commission>
    <department_number>10</department_number>
    </employee_row>
    </employee_data>
    2. XSL file
    <?xml version="1.0" ?>
    <xsl:stylesheet xsl:version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:output method="xml"/>
    <xsl:template match="*">
    <xsl:copy>
    <xsl:apply-templates>
    <xsl:sort select=".//employee_name"/>
    </xsl:apply-templates>
    </xsl:copy>
    </xsl:template>
    </xsl:stylesheet>
    The error message:
    Error occurred while processing data.xsl: Error in expression: '*|/'.
    I used a sample XSL files copying from a XML book to do the convert but got the same error.
    Does anyone know how to fix this problem? I'll appreciate it very much for your help.
    Thanks.
    Yiguang Zhong

    Hi swanelvis ,
    I have the same issue. Were you able to resolve this ?
    Thanks

Maybe you are looking for