Successfully reported this slideshow.

Working With XML in IDS Applications

1,992 views

Published on

IBM Informix® Dynamic Server (IDS) 11 has new features to enable IDS applications to work with, store and search XML. This session discusses various scenarios and illustrates how to use and exploit these features.

Published in: Technology
  • Thanks for the good guidence about XML..
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • Be the first to like this

Working With XML in IDS Applications

  1. 1. Working With XML in IDS Applications Keshava Murthy, Architect, IBM, [email_address] Session ID: TIX-2114A, TAD-2114A
  2. 2. XML in Application Environment <ul><li>XML is ubiquitous and solves many problems </li></ul><ul><ul><li>Application Integration </li></ul></ul><ul><ul><li>Data Centric Applications </li></ul></ul><ul><ul><li>Document Centric Applications </li></ul></ul><ul><ul><li>Heterogeneity </li></ul></ul><ul><li>XML and RDBMS </li></ul><ul><ul><li>Persistence </li></ul></ul><ul><ul><li>XML in and XML out </li></ul></ul><ul><ul><li>Application requirements </li></ul></ul><ul><li>XML support in IDS </li></ul><ul><ul><li>What’s planned? </li></ul></ul><? xml version=“1.0” ?> <purchaseOrder id=“12345” > <customer id=“A6789”> <name>John Smith Co</name> <address> <street>1234 W. Main</street> <city>Toledo</city> <state>OH</state> <zip>95141</zip> </address> </customer> …
  3. 3. Websphere App server XML Planning Optimization Engine Informix Dynamic Server (IDS) JDBC ODBC Carrier Integration Business Logic JDBC based Database Layer Lane Tracking Supplier integration Fetch Data TP: Bid winners TPE: Shipment MQ based Event handling Storage Websphere MQ Procurement Optimization Engine Typical Transportation Application SOA
  4. 4. <ul><li>Application design follows SOA </li></ul><ul><li>Separation of business optimization services from Integration Services </li></ul><ul><li>XML documents exchanged follows tXML (transport XML) </li></ul><ul><li>tXML documents are shred to relational tables </li></ul><ul><ul><ul><li>efficient storage </li></ul></ul></ul><ul><ul><ul><li>query performance </li></ul></ul></ul><ul><li>Application queries RDBMS to create and publish tXML documents/reports </li></ul><ul><li>tXML rarely changes - schema evolution isn’t a requirement, but performance is. </li></ul>Source: IBM SWG Architecture
  5. 5. HTTP/SOAP WebSphere Application Server IDS Web Service Provider J2EE Applications Direct Applications XML Publishing & Extraction with XPATH support XSLT Transformation XML Schema Repository And Shredding Functions XML aware FullText Index (with XPath Support) Websphere MQ Websphere MQ Integration ESQL/C, ODBC, .NET applications JDBC/JCC EGL Apps WORF/DADX Apache Tomcat Informix Dynamic Server IDS XML Plans
  6. 6. What’s in 11? Functions invoking the XSLT4C and XML4C libraries within IDS IDS Client IDS Client Extract functions extract() extracevalue() existsnode() idsXMLParse() Publishing functions genxml() genxmlelem() genxmlqueryhdr() … XSLT4C Processor XML4C Parser ICU Informix Dynamic Server XSLT4C and XML4C Transform functions XSLTransform() XSLTransformAsCLOB() XSLTransformAsBLOB() New in 11.5
  7. 7. What’s in 11? <ul><li>XML Publishing Functions </li></ul><ul><ul><li>Genxml() and GenxmlClob() </li></ul></ul><ul><ul><li>Genxmlqueryhdr() and GenxmlqueryhdrClob() </li></ul></ul><ul><ul><li>Genxmlelem() and genxmlelemclob() </li></ul></ul><ul><li>XPath functions for pattern matching and extraction within XML document </li></ul><ul><ul><li>Extract() and Extractclob() </li></ul></ul><ul><ul><li>ExtractValue() </li></ul></ul><ul><ul><li>ExistsNode() </li></ul></ul>
  8. 8. Genxml – simple example <ul><li>select genxml (mycustrpt, 'mycustomers') </li></ul><ul><li>FROM (select c.customer_num, c.customer_name.last, o.order_num from customer c, orders o </li></ul><ul><li>WHERE c.customer_num = o.customer_num </li></ul><ul><li>and order_date = '05/20/1998') as mycustrpt; </li></ul><ul><li>genxml <mycustomers customer_num=&quot;104&quot; expression=&quot;Kilmore&quot; order_num=&quot;1001&quot;/> </li></ul><ul><li>1 row(s) retrieved. </li></ul><ul><li>select genxml (mycustrpt, 'mycustomers') </li></ul><ul><li>FROM (select c.customer_num, c.customer_name.last, o.order_num from customer c, orders o </li></ul><ul><li>WHERE c.customer_num = o.customer_num </li></ul><ul><li>and order_date = '05/20/1998') as mycustrpt; </li></ul><ul><li>genxml <mycustomers customer_num=&quot;104&quot; expression=&quot;Kilmore&quot; order_num=&quot;1001&quot;/> </li></ul><ul><li>1 row(s) retrieved. </li></ul><ul><li>select genxml(mycustrpt, 'mycustomers') </li></ul><ul><li>FROM (select first 5 c.customer_num, c.customer_name.last, o.order_num from customer c, orders o </li></ul><ul><li>WHERE c.customer_num = o.customer_num </li></ul><ul><li>and order_date < '01/01/1999') as mycustrpt; </li></ul><ul><li>genxml <mycustomers customer_num=&quot;104&quot; last=&quot;Kilmore&quot; order_num=&quot;1001&quot;/> </li></ul><ul><li><mycustomers customer_num=&quot;101&quot; last=&quot;Mangal&quot; order_num=&quot;1002&quot;/> </li></ul><ul><li><mycustomers customer_num=&quot;104&quot; last=&quot;Kilmore&quot; order_num=&quot;1003&quot;/> </li></ul><ul><li><mycustomers customer_num=&quot;106&quot; last=&quot;Puente&quot; order_num=&quot;1004&quot;/> </li></ul><ul><li><mycustomers customer_num=&quot;116&quot; last=&quot;Westerberg&quot; order_num=&quot;1005&quot;/> </li></ul><ul><li>1 row(s) retrieved. </li></ul>
  9. 9. Genxml – simple example <ul><li>select genxmlelem (mycustrpt, 'mycustomers') </li></ul><ul><li>FROM (select c.customer_num, c.customer_name.last, o.order_num from customer c, orders o </li></ul><ul><li>WHERE c.customer_num = o.customer_num </li></ul><ul><li>and order_date = '05/20/1998') as mycustrpt; </li></ul><ul><li>genxmlelem <mycustomers> </li></ul><ul><li> <row> </li></ul><ul><li> <customer_num>104</customer_num> </li></ul><ul><li><expression>Kilmore</expression> </li></ul><ul><li><order_num>1001</order_num> </li></ul><ul><li></row> </li></ul><ul><li></mycustomers> </li></ul><ul><li>1 row(s) retrieved. </li></ul><ul><li>select genxmlelem (mycustrpt, 'mycustomers') </li></ul><ul><li>FROM (select c.customer_num, c.customer_name.last, o.order_num from customer c, orders o </li></ul><ul><li>WHERE c.customer_num = o.customer_num </li></ul><ul><li>and order_date = '05/20/1998') as mycustrpt; </li></ul><ul><li>… same result as above </li></ul>
  10. 10. Extract() and ExtractValue() <ul><li>SELECT extract(col2, '/personnel/person[3]/name/given') FROM tab; </li></ul><ul><li>SELECT extractvalue(col2, '/personnel/person[3]/name/given') FROM tab; </li></ul><ul><li>execute function extract(“<person><name><fname>john</fname><lname>Kelly</lname></person>”, </li></ul><ul><li>“ /person/name/lname”); </li></ul><ul><li>select col1 from tab where existsnode(col2, '/personnel/person/*/email') = 1; </li></ul>
  11. 11. ExtractClob() and ExtractValueClob() <ul><li>SELECT extractclob(col2, '/personnel/person[3]/name/given') FROM tab_clob_neg; </li></ul><ul><li>SELECT extractvalueclob(col2, '/personnel/person[3]/name/given') FROM tab_clob_neg; </li></ul>
  12. 12. ExistsNode() <ul><li>select docid from books </li></ul><ul><li>where existsnode (booklist, '/bookstore/book[author=&quot;Kurt Cagle&quot;]/title') = 1; </li></ul>
  13. 13. Transform Functions based on XSLT: New in 11.5 <ul><li>eXtensible Stylesheet Language Tranformations </li></ul><ul><li>XSL and XSLT is part of W3C standard </li></ul><ul><li>XSLT is used to transform XML documents </li></ul><ul><ul><li>XML to XML (transform to confirm different schema/standard) </li></ul></ul><ul><ul><li>XML to HTML </li></ul></ul><ul><ul><li>XML to PDF </li></ul></ul><ul><li>XML is device independent representation of data </li></ul><ul><li>XSLT helps you to transform to customize display </li></ul><ul><li>XSLT helps you to transform from one XML schema into another. </li></ul><ul><li>XSLT enables loose integration thru transformation </li></ul><ul><li>XSLT enables same data to be publishable to multiple targets with unique requirements. </li></ul>
  14. 14. What’s new in 11.5? Functions invoking the XSLT4C and XML4C libraries within IDS IDS Client IDS Client Extract functions extract() extracevalue() existsnode() idsXMLParse() Publishing functions genxml() genxmlelem() genxmlqueryhdr() … XSLT4C Processor XML4C Parser ICU Informix Dynamic Server XSLT4C and XML4C Transform functions XSLTransform() XSLTransformAsCLOB() XSLTransformAsBLOB() New in 11.5
  15. 15. XSLT: what is it? XSLT Processor Xerces and Xalan XML Document HTML Document Any other document Input XML document XSL Style Sheet Document
  16. 16. Using XSLT Transformation <ul><li>> select * from t where id = 1; </li></ul><ul><li>id 1 </li></ul><ul><li>info <?xml version='1.0' encoding='ISO-8859-1' ?> <doc> Hello world! </doc> </li></ul><ul><li>style <?xml version='1.0'?> <xsl:stylesheet xmlns:xsl='http://www.w3.org/1999/ </li></ul><ul><li>XSL/Transform' version='1.0'> <xsl:output encoding='US-ASCII'/> <xsl:te </li></ul><ul><li>mplate match='doc'> <out><xsl:value-of select='.'/></out> </xsl:template </li></ul><ul><li>> </xsl:stylesheet> </li></ul><ul><li>1 row(s) retrieved. </li></ul><ul><li>-- info and style simply lvarchar columns. </li></ul><ul><li>-- xsltransform() returns lvarchar. Max 32K </li></ul><ul><li>> select xsltransform(info, style) from t where id = 1; </li></ul><ul><li>(expression) <?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?> <out> Hello world! </out> </li></ul><ul><li>1 row(s) retrieved. </li></ul>
  17. 17. Using XSLT Transformation <ul><li>-- Transforming XML documents stored in tables </li></ul><ul><li>select XSLTransform(s.style_doc, x.xml_doc) </li></ul><ul><li>FROM style_sheets s, xml_docs x </li></ul><ul><li>WHERE s.style_title = 'ecommerce_ROOT.xsl' </li></ul><ul><li>AND x.xml_transaction_id = 12345; </li></ul><ul><li>-- Transforming dynamically generated XML documents </li></ul><ul><li>select XSLTransform(s.style_doc, </li></ul><ul><li>genxml(“transaction”, row(o.trnid, o.custid, o.addr))) </li></ul><ul><li>FROM style_sheets s, orders o </li></ul><ul><li>WHERE s.style_title = 'ecommerce_ROOT.xsl' </li></ul><ul><li>AND o.trnid = 12345; </li></ul>
  18. 18. XSLT Transform Functions <ul><li>Three XSLT functions, but they’re overloaded </li></ul><ul><ul><li>XSLTransform() </li></ul></ul><ul><ul><li>XSLTransformAsCLOB() </li></ul></ul><ul><ul><li>XSLTransformAsBLOB() </li></ul></ul><ul><li>They’re overloaded </li></ul><ul><li>The functions differ in parameters and return types </li></ul>
  19. 19. XSLT Transform Functions BLOB BLOB lvarchar XSLTransformAsBLOB BLOB varchar BLOB XSLTransformAsBLOB BLOB Lvarchar lvarchar XSLTransformAsBLOB CLOB CLOB lvarchar XSLTransformAsCLOB CLOB lvarchar CLOB XSLTransformAsCLOB CLOB lvarchar lvarchar XSLTransformAsCLOB lvarchar BLOB lvarchar XSLTransform lvarchar lvarchar BLOB XSLTransform lvarchar CLOB CLOB XSLTransform lvarchar CLOB lvarchar XSLTransform lvarchar lvarchar CLOB XSLTransform lvarchar lvarchar lvarchar XSLTransform Returning type Parameter2 (input Stylesheet Parameter1 (input XML doc) Function name
  20. 20. Text Search Index for XML
  21. 21. BTS Secondary Access Method <ul><li>To create an BTS index, specify the bts secondary access method with the USING clause on the CREATE INDEX </li></ul><ul><li>A BTS index is required to perform text searches using the bts_contains() predicate </li></ul><ul><li>Required to specify the opclass that is specific to the data type of the column being indexed </li></ul><ul><li>Requires an extent space specified with the IN Clause (no default) </li></ul><ul><li>Example: </li></ul><ul><ul><ul><li>CREATE INDEX books_idx </li></ul></ul></ul><ul><ul><ul><ul><li>ON books(description bts_lvarchar_ops ) </li></ul></ul></ul></ul><ul><ul><ul><ul><li>USING bts </li></ul></ul></ul></ul><ul><ul><ul><ul><li>IN bts_extspace ; </li></ul></ul></ul></ul>Acknowledgement: Slides on BTS functionality were created by Mark Ashworth, Developer of BTS datablade .
  22. 22. Selecting Rows <ul><li>Selecting rows using the BTS is done with the bts_contains() UDF </li></ul><ul><li>bts_contains( column , query-parse-string ) </li></ul><ul><li>The bts_contains() is a Boolean UDF. The first parameter, column , is the column being search and the second parameter, query-parse-string , is the Lucene query string </li></ul><ul><li>A BTS index must be created on the column being searched with bts_contains() UDF </li></ul>
  23. 23. <ul><li>XML document: lusitania.xml </li></ul><ul><ul><ul><li><?xml version=&quot;1.0&quot;?> </li></ul></ul></ul><ul><ul><ul><li><ship> </li></ul></ul></ul><ul><ul><ul><li><Name type=&quot;oceanliner&quot;>RMS Lusitania</Name> </li></ul></ul></ul><ul><ul><ul><li><owners> Cunard Line</owners> </li></ul></ul></ul><ul><ul><ul><li><builders> John Brown &amp; Company, Limited</builders> </li></ul></ul></ul><ul><ul><ul><li><maiden_voyage> 7 September, 1907</maiden_voyage> </li></ul></ul></ul><ul><ul><ul><li><sank> </li></ul></ul></ul><ul><ul><ul><li><date> 7 May, 1915 </date> </li></ul></ul></ul><ul><ul><ul><li><how> by German submarine U-20. </how> </li></ul></ul></ul><ul><ul><ul><li></sank> </li></ul></ul></ul><ul><ul><ul><li></ship> </li></ul></ul></ul><ul><li>XML document: andrea_doria.xml </li></ul><ul><ul><ul><li><?xml version=&quot;1.0&quot;?> </li></ul></ul></ul><ul><ul><ul><li><ship> </li></ul></ul></ul><ul><ul><ul><li><Name type=&quot;oceanliner&quot;>SS Andrea Doria</Name> </li></ul></ul></ul><ul><ul><ul><li><owners> Italia Line</owners> </li></ul></ul></ul><ul><ul><ul><li><builders> Ansaldo, Sestri Ponente yards, Italy</builders> </li></ul></ul></ul><ul><ul><ul><li><maiden_voyage> 14 January, 1953</maiden_voyage> </li></ul></ul></ul><ul><ul><ul><li><sank> </li></ul></ul></ul><ul><ul><ul><li><date> 26 July, 1956 </date> </li></ul></ul></ul><ul><ul><ul><li><how> after colliding with SS Stockholm </how> </li></ul></ul></ul><ul><ul><ul><li></sank> </li></ul></ul></ul><ul><ul><ul><li></ship> </li></ul></ul></ul>XML Sample Documents
  24. 24. xmlpaths <ul><li>Xmlpaths can be absolute or relative </li></ul><ul><ul><li>Absolute paths start with a / and relative paths do not </li></ul></ul><ul><ul><li>very basic X Path support with location paths </li></ul></ul><ul><ul><li>like a directory path in a filesystem </li></ul></ul>
  25. 25. Relative xmlpaths in the example xml documents <ul><li>Relative Paths </li></ul><ul><ul><ul><li>ship/Name </li></ul></ul></ul><ul><ul><ul><li>ship/owners </li></ul></ul></ul><ul><ul><ul><li>ship/builders </li></ul></ul></ul><ul><ul><ul><li>ship/maiden_voyage </li></ul></ul></ul><ul><ul><ul><li>sank/date </li></ul></ul></ul><ul><ul><ul><li>sank/how </li></ul></ul></ul><ul><ul><ul><li>ship/sank/date </li></ul></ul></ul><ul><ul><ul><li>ship/sank/how </li></ul></ul></ul><ul><ul><li>And all the tags previously listed ( Name, owners, builders, maiden_voyage, date, how ) </li></ul></ul><?xml version=&quot;1.0&quot;?> <ship> <Name type=&quot;oceanliner&quot;>RMS Titanic</Name> <owners> White Star Line, Liverpool, England</owners> <builders> Harland &amp; Wolff, Belfast, Ireland</builders> <maiden_voyage> 10 April, 1912</maiden_voyage> <sank> <date> 15 April, 1912 </date> <how> after hitting an iceberg on April 14, 1912 </how> </sank> </ship> ship Name owner builders maiden_voyage sank date how
  26. 26. Absolute xmlpaths in the example xml documents <ul><li>Absolute Paths </li></ul><ul><ul><ul><li>/ship/Name </li></ul></ul></ul><ul><ul><ul><li>/ship/owners </li></ul></ul></ul><ul><ul><ul><li>/ship/builders </li></ul></ul></ul><ul><ul><ul><li>/ship/maiden_voyage </li></ul></ul></ul><ul><ul><ul><li>/ship/sank/date </li></ul></ul></ul><ul><ul><ul><li>/ship/sank/how </li></ul></ul></ul><?xml version=&quot;1.0&quot;?> <ship> <Name type=&quot;oceanliner&quot;>RMS Titanic</Name> <owners> White Star Line, Liverpool, England</owners> <builders> Harland &amp; Wolff, Belfast, Ireland</builders> <maiden_voyage> 10 April, 1912</maiden_voyage> <sank> <date> 15 April, 1912 </date> <how> after hitting an iceberg on April 14, 1912 </how> </sank> </ship> ship Name owner builders maiden_voyage sank date how
  27. 27. Query Parser String (revisited) - Fields <ul><li>You can search any field by typing the field name followed by a colon &quot;:&quot; and then the term you are looking for. </li></ul><ul><li>For example: </li></ul><ul><ul><li>bts_contains(document, 'Name:rms and owner:&quot;White Star Line&quot;') </li></ul></ul><ul><ul><li>Here we search the field &quot;Name&quot; for the word &quot;rms&quot; and the field &quot;owner&quot; for the phrase &quot;White Star Line&quot; </li></ul></ul>
  28. 28. An example using xmlpath_processing and xmltags <ul><li>Index the xmlpaths: ship/Name and ship/sank/how </li></ul><ul><ul><li>create index ships_bts on ships(document bts_clob_ops) using bts(xmltags=&quot;(ship/Name,ship/sank/how)&quot;,xmlpath_processing=&quot;yes&quot;) in bts_extspace; </li></ul></ul><ul><li>For the titanic.xml document, the following fields would be created: </li></ul><ul><ul><li>ship/Name:RMS Titanic </li></ul></ul><ul><ul><li>ship/sank/how:after hitting an iceberg on April 14, 1912 </li></ul></ul><ul><li>Query example to find ships that sank because of icebergs </li></ul><ul><ul><li>select name from ships where bts_contains(document, 'ship/sank/how:iceberg*'); </li></ul></ul><ul><ul><li>name </li></ul></ul><ul><ul><li>Titanic </li></ul></ul><ul><ul><li>1 row(s) retrieved. </li></ul></ul>
  29. 29. An example using xmlpath_processing and all_xmltags <ul><li>Index the all absolute xmlpaths: </li></ul><ul><ul><li>create index ships_bts on ships(document bts_clob_ops) using bts(all_xmltags=&quot;yes&quot;,xmlpath_processing=&quot;yes&quot;) in bts_extspace; </li></ul></ul><ul><li>For the titanic.xml document, the following fields would be created: </li></ul><ul><ul><li>/ship/Name:RMS Titanic </li></ul></ul><ul><ul><li>/ship/owners:White Star Line, Liverpool, England </li></ul></ul><ul><ul><li>/ship/builders:Harland & Wolff, Belfast, Ireland </li></ul></ul><ul><ul><li>/ship/maiden_voyage:10 April, 1912 </li></ul></ul><ul><ul><li>/ship/sank/date:15 April, 1912 </li></ul></ul><ul><ul><li>/ship/sank/how:after hitting an iceberg on April 14, 1912 </li></ul></ul><ul><li>Query example to find ships that sank because of icebergs: </li></ul><ul><ul><li>select name from ships where bts_contains(document, '/ship/sank/how:iceberg*'); </li></ul></ul><ul><ul><li>name </li></ul></ul><ul><ul><li>Titanic </li></ul></ul><ul><ul><li>1 row(s) retrieved. </li></ul></ul>
  30. 30. include_namespaces parameter (cont.) <ul><li>Given the xml fragment: </li></ul><ul><ul><ul><li><book> </li></ul></ul></ul><ul><ul><ul><li>< book: title>Graph Theory</book:title> </li></ul></ul></ul><ul><ul><ul><li><author>Stewart</author> </li></ul></ul></ul><ul><ul><ul><li><date>January 14, 2006</date> </li></ul></ul></ul><ul><ul><ul><li></book> </li></ul></ul></ul><ul><li>For the given xml fragment, the following three fields would be created: </li></ul><ul><ul><ul><li>/book/ book: title:graph theory </li></ul></ul></ul><ul><ul><ul><li>/book/author:stewart </li></ul></ul></ul><ul><ul><ul><li>/book/date:january 14, 2006 </li></ul></ul></ul><ul><li>Query: </li></ul><ul><ul><ul><li>bts_contains(xml_data, ' /book/ book: title:theory ' ) </li></ul></ul></ul><ul><ul><li>Note, because the colon is used to delineate a field, the colon used to signify the namespace must be escaped with a backslash (‘’) </li></ul></ul>
  31. 31. bts_index_fields() function <ul><li>Given a path to an index path (like bts_index_compact), it returns a list of fields that currently exist in the index </li></ul><ul><li>For example: </li></ul><ul><ul><li>create index ships_bts on ships(document bts_clob_ops) using bts(all_xmltags=&quot;yes&quot;,xmlpath_processing=&quot;yes&quot;) in bts_extspace; </li></ul></ul><ul><ul><li>Index created. </li></ul></ul><ul><ul><li>execute function bts_index_fields('/local18/clucene_index/testdb/ashworth/ships_bts')); </li></ul></ul><ul><ul><li>(expression) /ship/Name /ship/builders /ship/maiden_voyage /ship/owners /ship/sank/date /ship/sank/how </li></ul></ul><ul><ul><li>1 row(s) retrieved. </li></ul></ul>
  32. 32. bts_index_fields() function (cont.) <ul><li>Another example, with xmlpath_processing disabled and include_contents enabled: </li></ul><ul><ul><li>create index ships_bts on ships(document bts_clob_ops) using bts(all_xmltags=&quot;yes&quot;,xmlpath_processing=&quot;no&quot;, include_contents=&quot;yes&quot;) in bts_extspace; </li></ul></ul><ul><ul><li>Index created. </li></ul></ul><ul><ul><li>execute function bts_index_fields('/local18/clucene_index/testdb/ashworth/ships_bts')); </li></ul></ul><ul><ul><li>(expression) Name builders contents maiden_voyage owners date how </li></ul></ul><ul><ul><li>1 row(s) retrieved. </li></ul></ul>
  33. 33. Searching XML Documents as part of Basic Text Search <ul><li>Customer can now generate their own stopword lists </li></ul><ul><li>Can indicate which xml tags to index at index create time. </li></ul><ul><ul><li>Values get indexed, not tags. </li></ul></ul><ul><ul><li>Also options to index all tags as well as treat tags as text. </li></ul></ul><ul><li>Can now limit searches to only certain XML tags </li></ul><ul><li>“ XPath&quot; queries supported in search. </li></ul><ul><ul><li>Search string can contain a path to search /books/title/chapter/.... </li></ul></ul><ul><ul><li>Path can be relative or fixed. </li></ul></ul><ul><li>tags can be completely ignored </li></ul><ul><ul><li>XML doc treated as a set of values </li></ul></ul><ul><ul><li>Looses the ability to search by tags </li></ul></ul><ul><li>You can specify whether the namespace should be required in searches </li></ul><ul><li>Markup in sentences can be ignored </li></ul><ul><ul><li>&quot;foo <bold> bar </bold>&quot; can either be indexed as the single &quot;foo bar&quot; or as &quot;foo&quot; and &quot;bar&quot;. This matters for proximity searches for instance. </li></ul></ul><ul><li>New function provided which returns all the unique tags in the XML doc. </li></ul>
  34. 34. HTTP/SOAP WebSphere Application Server IDS Web Service Provider J2EE Applications Direct Applications XML Publishing & Extraction with XPATH support XSLT Transformation XML Schema Repository And Shredding Functions XML aware FullText Index (with XPath Support) Websphere MQ Websphere MQ Integration ESQL/C, ODBC, .NET applications JDBC/JCC EGL Apps WORF/DADX Apache Tomcat Informix Dynamic Server IDS XML Plans
  35. 35. <ul><li>Thank You </li></ul><ul><li>[email_address] </li></ul><ul><li>Session: TIX-2114A, TAD-2114A 14A </li></ul>

×