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

Contenu connexe

En vedette

Algorithms for query result diversification
Algorithms for query result diversificationAlgorithms for query result diversification
Algorithms for query result diversificationEmre Can Kucukoglu
 
Effective XML Keyword Search with Relevance Oriented Ranking
Effective XML Keyword Search with Relevance Oriented RankingEffective XML Keyword Search with Relevance Oriented Ranking
Effective XML Keyword Search with Relevance Oriented RankingFudan University
 
Working With XML in IDS Applications
Working With XML in IDS ApplicationsWorking With XML in IDS Applications
Working With XML in IDS ApplicationsKeshav Murthy
 
Diversity
DiversityDiversity
DiversityTelnet
 
Extending BM25 with multiple query operators
Extending BM25 with multiple query operatorsExtending BM25 with multiple query operators
Extending BM25 with multiple query operatorsRoi Blanco
 
Research Opportunities in India & Keyword Search Over Dynamic Categorized Inf...
Research Opportunities in India & Keyword Search Over Dynamic Categorized Inf...Research Opportunities in India & Keyword Search Over Dynamic Categorized Inf...
Research Opportunities in India & Keyword Search Over Dynamic Categorized Inf...VNIT-ACM Student Chapter
 
I ii x_slides_albakour_online
I ii x_slides_albakour_onlineI ii x_slides_albakour_online
I ii x_slides_albakour_onlineDyaa AlBakour
 
Keyword proximity search in xml trees andrada astefanoaie - presentation
Keyword proximity search in xml trees   andrada astefanoaie - presentationKeyword proximity search in xml trees   andrada astefanoaie - presentation
Keyword proximity search in xml trees andrada astefanoaie - presentationAndrada Astefanoaie
 
XML Quick Reference (from mulberrytech.com)
XML Quick Reference (from mulberrytech.com)XML Quick Reference (from mulberrytech.com)
XML Quick Reference (from mulberrytech.com)FrescatiStory
 
Current Approaches in Search Result Diversification
Current Approaches in Search Result DiversificationCurrent Approaches in Search Result Diversification
Current Approaches in Search Result DiversificationMario Sangiorgio
 
Introduction to Cascading Style Sheets
Introduction to Cascading Style SheetsIntroduction to Cascading Style Sheets
Introduction to Cascading Style SheetsTushar Joshi
 
X.neformální setkání exportérů_—ZAHRANIČNÍ OBCHOD – GLOBÁLNÍ EXPORT – STRATEG...
X.neformální setkání exportérů_—ZAHRANIČNÍ OBCHOD – GLOBÁLNÍ EXPORT – STRATEG...X.neformální setkání exportérů_—ZAHRANIČNÍ OBCHOD – GLOBÁLNÍ EXPORT – STRATEG...
X.neformální setkání exportérů_—ZAHRANIČNÍ OBCHOD – GLOBÁLNÍ EXPORT – STRATEG...AgenturaHelas
 
04 sm3 xml_xp_07
04 sm3 xml_xp_0704 sm3 xml_xp_07
04 sm3 xml_xp_07Niit Care
 
Lowest common ancestor
Lowest common ancestorLowest common ancestor
Lowest common ancestorShakil Ahmed
 
Distributed Keyword Search over RDF via MapReduce
Distributed Keyword Search over RDF via MapReduceDistributed Keyword Search over RDF via MapReduce
Distributed Keyword Search over RDF via MapReduceAntonio Maccioni
 
OWL-XML-Summer-School-09
OWL-XML-Summer-School-09OWL-XML-Summer-School-09
OWL-XML-Summer-School-09Duncan Hull
 
Integrating Lucene into a Transactional XML Database
Integrating Lucene into a Transactional XML DatabaseIntegrating Lucene into a Transactional XML Database
Integrating Lucene into a Transactional XML Databaselucenerevolution
 

En vedette (20)

Algorithms for query result diversification
Algorithms for query result diversificationAlgorithms for query result diversification
Algorithms for query result diversification
 
Effective XML Keyword Search with Relevance Oriented Ranking
Effective XML Keyword Search with Relevance Oriented RankingEffective XML Keyword Search with Relevance Oriented Ranking
Effective XML Keyword Search with Relevance Oriented Ranking
 
Working With XML in IDS Applications
Working With XML in IDS ApplicationsWorking With XML in IDS Applications
Working With XML in IDS Applications
 
Diversity
DiversityDiversity
Diversity
 
Extending BM25 with multiple query operators
Extending BM25 with multiple query operatorsExtending BM25 with multiple query operators
Extending BM25 with multiple query operators
 
Research Opportunities in India & Keyword Search Over Dynamic Categorized Inf...
Research Opportunities in India & Keyword Search Over Dynamic Categorized Inf...Research Opportunities in India & Keyword Search Over Dynamic Categorized Inf...
Research Opportunities in India & Keyword Search Over Dynamic Categorized Inf...
 
Xml toc 1 day
Xml toc   1 dayXml toc   1 day
Xml toc 1 day
 
I ii x_slides_albakour_online
I ii x_slides_albakour_onlineI ii x_slides_albakour_online
I ii x_slides_albakour_online
 
Keyword proximity search in xml trees andrada astefanoaie - presentation
Keyword proximity search in xml trees   andrada astefanoaie - presentationKeyword proximity search in xml trees   andrada astefanoaie - presentation
Keyword proximity search in xml trees andrada astefanoaie - presentation
 
XML Quick Reference (from mulberrytech.com)
XML Quick Reference (from mulberrytech.com)XML Quick Reference (from mulberrytech.com)
XML Quick Reference (from mulberrytech.com)
 
Current Approaches in Search Result Diversification
Current Approaches in Search Result DiversificationCurrent Approaches in Search Result Diversification
Current Approaches in Search Result Diversification
 
Introduction to Cascading Style Sheets
Introduction to Cascading Style SheetsIntroduction to Cascading Style Sheets
Introduction to Cascading Style Sheets
 
Turbo equalization
Turbo equalizationTurbo equalization
Turbo equalization
 
X.neformální setkání exportérů_—ZAHRANIČNÍ OBCHOD – GLOBÁLNÍ EXPORT – STRATEG...
X.neformální setkání exportérů_—ZAHRANIČNÍ OBCHOD – GLOBÁLNÍ EXPORT – STRATEG...X.neformální setkání exportérů_—ZAHRANIČNÍ OBCHOD – GLOBÁLNÍ EXPORT – STRATEG...
X.neformální setkání exportérů_—ZAHRANIČNÍ OBCHOD – GLOBÁLNÍ EXPORT – STRATEG...
 
04 sm3 xml_xp_07
04 sm3 xml_xp_0704 sm3 xml_xp_07
04 sm3 xml_xp_07
 
Lowest common ancestor
Lowest common ancestorLowest common ancestor
Lowest common ancestor
 
Flyweight
FlyweightFlyweight
Flyweight
 
Distributed Keyword Search over RDF via MapReduce
Distributed Keyword Search over RDF via MapReduceDistributed Keyword Search over RDF via MapReduce
Distributed Keyword Search over RDF via MapReduce
 
OWL-XML-Summer-School-09
OWL-XML-Summer-School-09OWL-XML-Summer-School-09
OWL-XML-Summer-School-09
 
Integrating Lucene into a Transactional XML Database
Integrating Lucene into a Transactional XML DatabaseIntegrating Lucene into a Transactional XML Database
Integrating Lucene into a Transactional XML Database
 

Similaire à Working With XML in IDS Applications

04 data accesstechnologies
04 data accesstechnologies04 data accesstechnologies
04 data accesstechnologiesBat Programmer
 
02 a xml_foundations
02 a xml_foundations02 a xml_foundations
02 a xml_foundationsSalma Zaki
 
Developer & Fusion Middleware 1 | Mark Drake | An introduction to Oracle XML ...
Developer & Fusion Middleware 1 | Mark Drake | An introduction to Oracle XML ...Developer & Fusion Middleware 1 | Mark Drake | An introduction to Oracle XML ...
Developer & Fusion Middleware 1 | Mark Drake | An introduction to Oracle XML ...InSync2011
 
Real World Experience With Oracle Xml Database 11g An Oracle Ace’s Perspectiv...
Real World Experience With Oracle Xml Database 11g An Oracle Ace’s Perspectiv...Real World Experience With Oracle Xml Database 11g An Oracle Ace’s Perspectiv...
Real World Experience With Oracle Xml Database 11g An Oracle Ace’s Perspectiv...Marco Gralike
 
Building a Scalable XML-based Dynamic Delivery Architecture: Standards and Be...
Building a Scalable XML-based Dynamic Delivery Architecture: Standards and Be...Building a Scalable XML-based Dynamic Delivery Architecture: Standards and Be...
Building a Scalable XML-based Dynamic Delivery Architecture: Standards and Be...Jerry SILVER
 
attachment_3998 (3).pdf
attachment_3998 (3).pdfattachment_3998 (3).pdf
attachment_3998 (3).pdfssuser02a37f1
 
Toward a Standardized XMAN Presentation Layer with Consideration of User Inte...
Toward a Standardized XMAN Presentation Layer with Consideration of User Inte...Toward a Standardized XMAN Presentation Layer with Consideration of User Inte...
Toward a Standardized XMAN Presentation Layer with Consideration of User Inte...Bassel Saab
 
Declarative Multilingual Information Extraction with SystemT
Declarative Multilingual Information Extraction with SystemTDeclarative Multilingual Information Extraction with SystemT
Declarative Multilingual Information Extraction with SystemTLaura Chiticariu
 
LINQ to XML
LINQ to XMLLINQ to XML
LINQ to XMLukdpe
 
XRX Presentation to Minnesota OTUG
XRX Presentation to Minnesota OTUGXRX Presentation to Minnesota OTUG
XRX Presentation to Minnesota OTUGOptum
 
ITU - MDD – Model-to-Model Transformations
ITU - MDD – Model-to-Model TransformationsITU - MDD – Model-to-Model Transformations
ITU - MDD – Model-to-Model TransformationsTonny Madsen
 
Cisco Connect Toronto 2018 model-driven programmability for cisco ios xr-v1
Cisco Connect Toronto 2018   model-driven programmability for cisco ios xr-v1Cisco Connect Toronto 2018   model-driven programmability for cisco ios xr-v1
Cisco Connect Toronto 2018 model-driven programmability for cisco ios xr-v1Cisco Canada
 
OpenSouthCode 2018 - Integrating your applications easily with Apache Camel
OpenSouthCode 2018 - Integrating your applications easily with Apache CamelOpenSouthCode 2018 - Integrating your applications easily with Apache Camel
OpenSouthCode 2018 - Integrating your applications easily with Apache CamelJosé Román Martín Gil
 
Choose'10: Ralf Laemmel - Dealing Confortably with the Confusion of Tongues
Choose'10: Ralf Laemmel - Dealing Confortably with the Confusion of TonguesChoose'10: Ralf Laemmel - Dealing Confortably with the Confusion of Tongues
Choose'10: Ralf Laemmel - Dealing Confortably with the Confusion of TonguesCHOOSE
 
Xml processing-by-asfak
Xml processing-by-asfakXml processing-by-asfak
Xml processing-by-asfakAsfak Mahamud
 

Similaire à Working With XML in IDS Applications (20)

treeview
treeviewtreeview
treeview
 
treeview
treeviewtreeview
treeview
 
04 data accesstechnologies
04 data accesstechnologies04 data accesstechnologies
04 data accesstechnologies
 
02 a xml_foundations
02 a xml_foundations02 a xml_foundations
02 a xml_foundations
 
Developer & Fusion Middleware 1 | Mark Drake | An introduction to Oracle XML ...
Developer & Fusion Middleware 1 | Mark Drake | An introduction to Oracle XML ...Developer & Fusion Middleware 1 | Mark Drake | An introduction to Oracle XML ...
Developer & Fusion Middleware 1 | Mark Drake | An introduction to Oracle XML ...
 
Real World Experience With Oracle Xml Database 11g An Oracle Ace’s Perspectiv...
Real World Experience With Oracle Xml Database 11g An Oracle Ace’s Perspectiv...Real World Experience With Oracle Xml Database 11g An Oracle Ace’s Perspectiv...
Real World Experience With Oracle Xml Database 11g An Oracle Ace’s Perspectiv...
 
Linq To XML Overview
Linq To XML OverviewLinq To XML Overview
Linq To XML Overview
 
Building a Scalable XML-based Dynamic Delivery Architecture: Standards and Be...
Building a Scalable XML-based Dynamic Delivery Architecture: Standards and Be...Building a Scalable XML-based Dynamic Delivery Architecture: Standards and Be...
Building a Scalable XML-based Dynamic Delivery Architecture: Standards and Be...
 
XML Pipelines
XML PipelinesXML Pipelines
XML Pipelines
 
attachment_3998 (3).pdf
attachment_3998 (3).pdfattachment_3998 (3).pdf
attachment_3998 (3).pdf
 
Toward a Standardized XMAN Presentation Layer with Consideration of User Inte...
Toward a Standardized XMAN Presentation Layer with Consideration of User Inte...Toward a Standardized XMAN Presentation Layer with Consideration of User Inte...
Toward a Standardized XMAN Presentation Layer with Consideration of User Inte...
 
Declarative Multilingual Information Extraction with SystemT
Declarative Multilingual Information Extraction with SystemTDeclarative Multilingual Information Extraction with SystemT
Declarative Multilingual Information Extraction with SystemT
 
LINQ to XML
LINQ to XMLLINQ to XML
LINQ to XML
 
XRX Presentation to Minnesota OTUG
XRX Presentation to Minnesota OTUGXRX Presentation to Minnesota OTUG
XRX Presentation to Minnesota OTUG
 
ITU - MDD – Model-to-Model Transformations
ITU - MDD – Model-to-Model TransformationsITU - MDD – Model-to-Model Transformations
ITU - MDD – Model-to-Model Transformations
 
Cisco Connect Toronto 2018 model-driven programmability for cisco ios xr-v1
Cisco Connect Toronto 2018   model-driven programmability for cisco ios xr-v1Cisco Connect Toronto 2018   model-driven programmability for cisco ios xr-v1
Cisco Connect Toronto 2018 model-driven programmability for cisco ios xr-v1
 
XML Data Using Oracle
XML Data Using OracleXML Data Using Oracle
XML Data Using Oracle
 
OpenSouthCode 2018 - Integrating your applications easily with Apache Camel
OpenSouthCode 2018 - Integrating your applications easily with Apache CamelOpenSouthCode 2018 - Integrating your applications easily with Apache Camel
OpenSouthCode 2018 - Integrating your applications easily with Apache Camel
 
Choose'10: Ralf Laemmel - Dealing Confortably with the Confusion of Tongues
Choose'10: Ralf Laemmel - Dealing Confortably with the Confusion of TonguesChoose'10: Ralf Laemmel - Dealing Confortably with the Confusion of Tongues
Choose'10: Ralf Laemmel - Dealing Confortably with the Confusion of Tongues
 
Xml processing-by-asfak
Xml processing-by-asfakXml processing-by-asfak
Xml processing-by-asfak
 

Plus de Keshav Murthy

N1QL New Features in couchbase 7.0
N1QL New Features in couchbase 7.0N1QL New Features in couchbase 7.0
N1QL New Features in couchbase 7.0Keshav Murthy
 
Couchbase Tutorial: Big data Open Source Systems: VLDB2018
Couchbase Tutorial: Big data Open Source Systems: VLDB2018Couchbase Tutorial: Big data Open Source Systems: VLDB2018
Couchbase Tutorial: Big data Open Source Systems: VLDB2018Keshav Murthy
 
N1QL+GSI: Language and Performance Improvements in Couchbase 5.0 and 5.5
N1QL+GSI: Language and Performance Improvements in Couchbase 5.0 and 5.5N1QL+GSI: Language and Performance Improvements in Couchbase 5.0 and 5.5
N1QL+GSI: Language and Performance Improvements in Couchbase 5.0 and 5.5Keshav Murthy
 
XLDB Lightning Talk: Databases for an Engaged World: Requirements and Design...
XLDB Lightning Talk: Databases for an Engaged World: Requirements and Design...XLDB Lightning Talk: Databases for an Engaged World: Requirements and Design...
XLDB Lightning Talk: Databases for an Engaged World: Requirements and Design...Keshav Murthy
 
Couchbase 5.5: N1QL and Indexing features
Couchbase 5.5: N1QL and Indexing featuresCouchbase 5.5: N1QL and Indexing features
Couchbase 5.5: N1QL and Indexing featuresKeshav Murthy
 
N1QL: Query Optimizer Improvements in Couchbase 5.0. By, Sitaram Vemulapalli
N1QL: Query Optimizer Improvements in Couchbase 5.0. By, Sitaram VemulapalliN1QL: Query Optimizer Improvements in Couchbase 5.0. By, Sitaram Vemulapalli
N1QL: Query Optimizer Improvements in Couchbase 5.0. By, Sitaram VemulapalliKeshav Murthy
 
Couchbase N1QL: Language & Architecture Overview.
Couchbase N1QL: Language & Architecture Overview.Couchbase N1QL: Language & Architecture Overview.
Couchbase N1QL: Language & Architecture Overview.Keshav Murthy
 
Couchbase Query Workbench Enhancements By Eben Haber
Couchbase Query Workbench Enhancements  By Eben Haber Couchbase Query Workbench Enhancements  By Eben Haber
Couchbase Query Workbench Enhancements By Eben Haber Keshav Murthy
 
Mindmap: Oracle to Couchbase for developers
Mindmap: Oracle to Couchbase for developersMindmap: Oracle to Couchbase for developers
Mindmap: Oracle to Couchbase for developersKeshav Murthy
 
Couchbase N1QL: Index Advisor
Couchbase N1QL: Index AdvisorCouchbase N1QL: Index Advisor
Couchbase N1QL: Index AdvisorKeshav Murthy
 
N1QL: What's new in Couchbase 5.0
N1QL: What's new in Couchbase 5.0N1QL: What's new in Couchbase 5.0
N1QL: What's new in Couchbase 5.0Keshav Murthy
 
From SQL to NoSQL: Structured Querying for JSON
From SQL to NoSQL: Structured Querying for JSONFrom SQL to NoSQL: Structured Querying for JSON
From SQL to NoSQL: Structured Querying for JSONKeshav Murthy
 
Tuning for Performance: indexes & Queries
Tuning for Performance: indexes & QueriesTuning for Performance: indexes & Queries
Tuning for Performance: indexes & QueriesKeshav Murthy
 
Understanding N1QL Optimizer to Tune Queries
Understanding N1QL Optimizer to Tune QueriesUnderstanding N1QL Optimizer to Tune Queries
Understanding N1QL Optimizer to Tune QueriesKeshav Murthy
 
Utilizing Arrays: Modeling, Querying and Indexing
Utilizing Arrays: Modeling, Querying and IndexingUtilizing Arrays: Modeling, Querying and Indexing
Utilizing Arrays: Modeling, Querying and IndexingKeshav Murthy
 
Extended JOIN in Couchbase Server 4.5
Extended JOIN in Couchbase Server 4.5Extended JOIN in Couchbase Server 4.5
Extended JOIN in Couchbase Server 4.5Keshav Murthy
 
Bringing SQL to NoSQL: Rich, Declarative Query for NoSQL
Bringing SQL to NoSQL: Rich, Declarative Query for NoSQLBringing SQL to NoSQL: Rich, Declarative Query for NoSQL
Bringing SQL to NoSQL: Rich, Declarative Query for NoSQLKeshav Murthy
 
Query in Couchbase. N1QL: SQL for JSON
Query in Couchbase.  N1QL: SQL for JSONQuery in Couchbase.  N1QL: SQL for JSON
Query in Couchbase. N1QL: SQL for JSONKeshav Murthy
 
SQL for JSON: Rich, Declarative Querying for NoSQL Databases and Applications 
SQL for JSON: Rich, Declarative Querying for NoSQL Databases and Applications SQL for JSON: Rich, Declarative Querying for NoSQL Databases and Applications 
SQL for JSON: Rich, Declarative Querying for NoSQL Databases and Applications Keshav Murthy
 
Introducing N1QL: New SQL Based Query Language for JSON
Introducing N1QL: New SQL Based Query Language for JSONIntroducing N1QL: New SQL Based Query Language for JSON
Introducing N1QL: New SQL Based Query Language for JSONKeshav Murthy
 

Plus de Keshav Murthy (20)

N1QL New Features in couchbase 7.0
N1QL New Features in couchbase 7.0N1QL New Features in couchbase 7.0
N1QL New Features in couchbase 7.0
 
Couchbase Tutorial: Big data Open Source Systems: VLDB2018
Couchbase Tutorial: Big data Open Source Systems: VLDB2018Couchbase Tutorial: Big data Open Source Systems: VLDB2018
Couchbase Tutorial: Big data Open Source Systems: VLDB2018
 
N1QL+GSI: Language and Performance Improvements in Couchbase 5.0 and 5.5
N1QL+GSI: Language and Performance Improvements in Couchbase 5.0 and 5.5N1QL+GSI: Language and Performance Improvements in Couchbase 5.0 and 5.5
N1QL+GSI: Language and Performance Improvements in Couchbase 5.0 and 5.5
 
XLDB Lightning Talk: Databases for an Engaged World: Requirements and Design...
XLDB Lightning Talk: Databases for an Engaged World: Requirements and Design...XLDB Lightning Talk: Databases for an Engaged World: Requirements and Design...
XLDB Lightning Talk: Databases for an Engaged World: Requirements and Design...
 
Couchbase 5.5: N1QL and Indexing features
Couchbase 5.5: N1QL and Indexing featuresCouchbase 5.5: N1QL and Indexing features
Couchbase 5.5: N1QL and Indexing features
 
N1QL: Query Optimizer Improvements in Couchbase 5.0. By, Sitaram Vemulapalli
N1QL: Query Optimizer Improvements in Couchbase 5.0. By, Sitaram VemulapalliN1QL: Query Optimizer Improvements in Couchbase 5.0. By, Sitaram Vemulapalli
N1QL: Query Optimizer Improvements in Couchbase 5.0. By, Sitaram Vemulapalli
 
Couchbase N1QL: Language & Architecture Overview.
Couchbase N1QL: Language & Architecture Overview.Couchbase N1QL: Language & Architecture Overview.
Couchbase N1QL: Language & Architecture Overview.
 
Couchbase Query Workbench Enhancements By Eben Haber
Couchbase Query Workbench Enhancements  By Eben Haber Couchbase Query Workbench Enhancements  By Eben Haber
Couchbase Query Workbench Enhancements By Eben Haber
 
Mindmap: Oracle to Couchbase for developers
Mindmap: Oracle to Couchbase for developersMindmap: Oracle to Couchbase for developers
Mindmap: Oracle to Couchbase for developers
 
Couchbase N1QL: Index Advisor
Couchbase N1QL: Index AdvisorCouchbase N1QL: Index Advisor
Couchbase N1QL: Index Advisor
 
N1QL: What's new in Couchbase 5.0
N1QL: What's new in Couchbase 5.0N1QL: What's new in Couchbase 5.0
N1QL: What's new in Couchbase 5.0
 
From SQL to NoSQL: Structured Querying for JSON
From SQL to NoSQL: Structured Querying for JSONFrom SQL to NoSQL: Structured Querying for JSON
From SQL to NoSQL: Structured Querying for JSON
 
Tuning for Performance: indexes & Queries
Tuning for Performance: indexes & QueriesTuning for Performance: indexes & Queries
Tuning for Performance: indexes & Queries
 
Understanding N1QL Optimizer to Tune Queries
Understanding N1QL Optimizer to Tune QueriesUnderstanding N1QL Optimizer to Tune Queries
Understanding N1QL Optimizer to Tune Queries
 
Utilizing Arrays: Modeling, Querying and Indexing
Utilizing Arrays: Modeling, Querying and IndexingUtilizing Arrays: Modeling, Querying and Indexing
Utilizing Arrays: Modeling, Querying and Indexing
 
Extended JOIN in Couchbase Server 4.5
Extended JOIN in Couchbase Server 4.5Extended JOIN in Couchbase Server 4.5
Extended JOIN in Couchbase Server 4.5
 
Bringing SQL to NoSQL: Rich, Declarative Query for NoSQL
Bringing SQL to NoSQL: Rich, Declarative Query for NoSQLBringing SQL to NoSQL: Rich, Declarative Query for NoSQL
Bringing SQL to NoSQL: Rich, Declarative Query for NoSQL
 
Query in Couchbase. N1QL: SQL for JSON
Query in Couchbase.  N1QL: SQL for JSONQuery in Couchbase.  N1QL: SQL for JSON
Query in Couchbase. N1QL: SQL for JSON
 
SQL for JSON: Rich, Declarative Querying for NoSQL Databases and Applications 
SQL for JSON: Rich, Declarative Querying for NoSQL Databases and Applications SQL for JSON: Rich, Declarative Querying for NoSQL Databases and Applications 
SQL for JSON: Rich, Declarative Querying for NoSQL Databases and Applications 
 
Introducing N1QL: New SQL Based Query Language for JSON
Introducing N1QL: New SQL Based Query Language for JSONIntroducing N1QL: New SQL Based Query Language for JSON
Introducing N1QL: New SQL Based Query Language for JSON
 

Dernier

How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxBkGupta21
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxLoriGlavin3
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfMounikaPolabathina
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
What is Artificial Intelligence?????????
What is Artificial Intelligence?????????What is Artificial Intelligence?????????
What is Artificial Intelligence?????????blackmambaettijean
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersNicole Novielli
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersRaghuram Pandurangan
 

Dernier (20)

How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptx
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdf
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
What is Artificial Intelligence?????????
What is Artificial Intelligence?????????What is Artificial Intelligence?????????
What is Artificial Intelligence?????????
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software Developers
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information Developers
 

Working With XML in IDS Applications

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

Notes de l'éditeur

  1. 1. Business integration scenarios. 2. Using XML to solve business integration issues. 3. IDS Cheetah Features for XML. 1. Publishing Functions 2. Functions evaluating XPATH. 4. Putting it all together. 5. Further thoughts on upcoming features.
  2. Xerces (same as XSLT4C) is an XML Parser. Xalan (same as XSLT4C) is the transformer…includes XPath.
  3. XSLT: new in Cheetah2 Extensible Stylesheet Language Transformation Transforms XML documents