Building Oracle XML Applications by Steve Muench Unconfirmed error reports are from readers. They have not yet been approved or disproved by the author or editor and represent solely the opinion of the reader. If you have any technical questions or error reports, you can send them to booktech@oreilly.com. (Please specify the printing date of your copy.) This page was updated April 07, 2003. Here's a key to the markup: [page-number]: serious technical mistake {page-number}: minor technical mistake : important language/formatting problem (page-number): language change or minor formatting problem ?page-number?: reader question or request for clarification UNCONFIRMED errors and comments from readers: {13} The contents of Figure 1-4 are not identical to those in the preceding XML fragment on the prior page. In the Text Document, WEBM should read WEBB, and GE should read GE. The exch nodes are also missing from the Information Set in the Figure. This makes it hard to understand Example 1-2, which uses this fragment for input, but contains . (31) Item 4: should be "hyphens" instead of "hypens" in line that contains "" {75} In the first paragraph, 6th line: "another XSLT stylesheet to transform the document ..." should read: "another XSLT stylesheet SunJavaFAQ-to-FAQTABLE.xsl (in italics) to transform the document ..." {75} ROWSET/ROW example xslt in the middle of the page: Add these lines as the first two lines of the example: [110] Step 3 From top; For Oracle 9i, OTN now requires you to run "xdkload" from the bin directory where you uncompress the tar.gz file. I've not been completely successful in installing this however. Do you have any updates pertaining to this? [123] Example 5-6; This and several other examples will not work with the most recent version of the Parser from Oracle. I had installed this new version and I was getting errors as the API has changed. I dropped all the packages and followed the instructions on how to install the parser for 8.1.7 and everything runs great. In order to use XML Parser for PL/SQL, you need to run loadjava $ORACLE_HOME/lib/xmlplsql.jar and run sqlplus xmlbook/xmlbook $ORACLE_HOME/xdk/plsql/parser/bin/load.sql [135] between END LOOP; and END; in PROCEDURE store( doc xmldom DOMDocument); on page 135 Missing COMMIT; between END LOOP; and END; in PROCEDURE store( doc xmldom DOMDocument) As a result, if you query from another SQL session 'select * from ins_claim' doesn't return row for second claim 77804. Yet even without explicite 'COMMIT' anywhere or 'EXIT' the first row 77805 still get commited!? {158-246} http://ws5.olab.com is no longer valid. Use http://ws5.olab.oracle.com/ {159} In the first line, while calling xml_http.get(....), third argument, proxyServer, should not be called. If we call proxyServer, the code does not work. Once I removed proxyServer, the code started working. [159] line (2); Comment on the following from another reader: [160] PL/SQL example starting with DECLARE; It appears that the PL/SQL code is incomplete. IMHO the correct version woulde be: --- DECLARE queueTableName VARCHAR2(36) := 'xml_msg_queuetable'; queueName VARCHAR2(36) := 'xml_msg_queue'; BEGIN BEGIN dbms_aqadm.stop_queue(queueName); dbms_aqadm.drop_queue(queueName); dbms_aqadm.drop_queue_table(queueTableName ); EXCEPTION WHEN OTHERS THEN NULL; END; dbms_aqadm.create_queue_table(queue_table => queueTableName, queue_payload_type => 'RAW', storage_clause=> 'pctfree 20 tablespace users, pctused 80'); dbms_aqadm.create_queue(queueName,queueTableName); dbms_aqadm.start_queue(queueName); END; / ----- i.e. I've added the lines dbms_aqadm.stop_queue(queueName); dbms_aqadm.drop_queue(queueName); in order to stop and remove the queue itself when the queue table is to be droppend. Also, IMO it is better not to create the queue in the system tablespace,, so I' ve added storage_clause=> 'pctfree 20 tablespace users, pctused 80'); in the call to create_queue. This is an excellent book. What I would like to see in the next edition is coverage of the Oracle support for the Java Message Service (JMS) and the way in contrast to the native AQ interface. [208] 3rd section of the dbms_java package example; xml.us.oracle.com no longer exists. This makes all the excercises in chapter 6 useless. [239] Example 6-24 second line ; c.getResourceAsStream("Connections.xml") should read c.getResourceAsStream("/Connections.xml") otherwise the code fails because the class can't find the connections.xml file {563} In the middle of the page, the URL: http://xmlapps/enpdept.ssql?id=7893 should be: http://xmlapps/empdept.xsql?id=7893 {744} - in funcunction transformToDOM(source xmldom.DOMDocument, ... .... BEGIN ... RETURN xmldom.makeDocument(xmldom.appendChild(root, result)); xslprocessor.freeProcessor(engine); EXCEPTION call to xslprocessor.freeProcessor(engine) will not be done, just because RETURN statement is going before procedure's call. [examples] I've found a couple of bugs in the Chapter 12 setup file, create_ch12_tables.sql. It defines a type 'point' with four members which conflicts with a similar type created in the file create_ch8_tables.sql, which only has two members. There is also a problem with the sequence for author_table. It's created as AUTHSEQ at the start of create_ch12_tables.sql , but create-authorseq.sql uses authorseq, as follows: drop sequence authorseq; create sequence authorseq start with 2000; I fixed the former by defining a new type Point4, and the latter by changing AUTHSEQ to authorseq and got a clean run. But I don't know if it's going to stay up. I also added a bunch of DROPs, but don't really know if they helped as I'm very new to PL-SQL.