Storing XML
Sihem Amer-Yahia
AT&T Labs - Research
What’s XML?
 W3C Standard since 1998
 Subset of SGML
 (ISO Standard Generalized Markup Language)
 Data-description markup language
 HTML text-rendering markup language
 De facto format for data exchange on Internet
 Electronic commerce
 Business-to-business (B2B) communication
Storing XML
2
XML: A Wire Protocol
 XML = A minimal wire representation for data
and storage exchange
 A low-level wire transfer format – like IP in
networking
 Minimal level of standardization for distributed
components to interoperate
 Platform, language and vendor agnostic
 Easy to understand and extensible
 Data exchange enabled via XML transformations
Storing XML
3
Core XML Technologies
 XML Validation: Contract for Data Exchange
 DTD, Relax N/G, XML Schema
 XML API: Programmatic Access to XML
 DOM, SAX
 Transformation Languages for Data Exchange
and Display
 XSL, XSLT, XPATH, XQuery
Storing XML
4
XML Data Model Highlights
 Tagged elements describe semantics of data
 Easier to parse for a machine and for a human
 Element may have attributes
 Element can contain nested sub-elements
 Sub-elements may themselves be tagged
elements or character data
 Tree structure
 Can capture any data-model
 Easier to navigate
Storing XML
5
An XML Document
<? xml version=" 1.0"?>
<! DOCTYPE sigmodRecord SYSTEM “sigmodRecord. dtd">
<sigmodRecord>
<issue>
<volume> 1</ volume>
<number> 1</ number>
<articles>
<article>
<title> XML Research Issues</ title>
<initPage> 1</ initPage>
<endPage> 5</ endPage>
<authors>
<author AuthorPosition=" 00"> Tom Hanks</ author>
</ authors>
</ article>
</ articles>
</ issue>
Storing XML
6
Document Type Definition (DTD)
 An XML document may have a DTD
 Grammar for describing document structure
 Terminology
 well-formed: if tags are correctly closed
 valid: if it has a DTD and conforms to it
 Validation useful for data exchange
Storing XML
7
W3C XML Schema
 Rich set of scalar types
 user-defined simple types
 Complex types factor common structure
 Sequences, choice, repetition, recursion of
elements
 Sub-typing supports schema reuse
 Integrity constraints
Storing XML
8
DTD vs XML Schema
 DTD
<! ELEMENT article (title, initPage, endPage, author) >
<! ELEMENT title (# PCDATA)>
<! ELEMENT initPage (# PCDATA)>
<! ELEMENT endPage (# PCDATA)>
<! ELEMENT author (# PCDATA)>
 XML Schema
<xsd: element name=" article" minOccurs=" 0" maxOccurs=" unbounded">
<xsd: complexType>
<xsd: sequence>
<xsd: element name=" title" type=" xsd: string"/>
<xsd: element name=" initPage" type=" xsd: string"/>
<xsd: element name=" endPage" type=" xsd: string"/>
<xsd: element name=" author" type=" xsd: string"/>
</ xsd: sequence>
</ xsd: complexType>
</ xsd: element>
Storing XML
9
XML API: DOM
 Hierarchical (tree) object model for XML
documents
 Associate a list of children with every node (or
text value)
 Preserves sequence of elements in XML
document
 May be expensive to materialize for a large XML
collection
Storing XML
10
DOM Features
 DOM API supports:
 Navigation: access all attribute nodes, children,
first/last child, next/previous sibling, parent,…
 Creation: create new node
 Modification: append, insert, remove, replace node
 DOM parser support for validation
 Most support DTD
 Some support XML Schema
 See : http://www.w3.org/XML/Schema
Storing XML
11
XML API: SAX
 Event-driven: fire an event for every open
tag/end tag
 Does not require full parsing: reads XML
document in streaming fashion
 Read-only interface
 Consumes less memory than DOM
 Could be significantly faster than DOM
Storing XML
12
SAX Features
 Stack-oriented (LIFO) access
 Read-once processing of very large documents
 E.g., load XML document into a storage system
 SAX parser support for validation
 Most support DTD
 Microsoft XML Parser (MSXML) supports XML Schema
Storing XML
13
XSL
 Styling is rendering information for consumption
 XSL = A language to express styling
(“Stylesheet language”)
 Two components of a stylesheet
 Transform: Source to a target tree using template
rules expressed in XSLT
 Format: Controls appearance
Storing XML
14
XSLT
 XPATH acts as the pattern language
 Primary goal is to transform XML vocabularies to
XSL formatting vocabularies
 But, often adequate for many transformation
needs
Storing XML
15
XPATH
 [www.w3.org/TR/xpath]
 Common sub-language of
 XSLT
a loosely-typed, "scripting" language
 XQuery a strongly-typed, query language
 Syntax for tree navigation and node selection
 Navigation is described using location paths
Storing XML
16
XPATH
 . : current node
 .. : parent of the current node
 / : root node, or a separator between steps in a
path
 // : descendants of the current node
 @ : attributes of the current node
 * : "any“ (node with unrestricted name)
 [] : a predicate for a given step
 [n] : the element with the given ordinal number
from a list of elements
Storing XML
17
XPATH 2.0
 Arithmetic
 Logical
Expr +,-,*,div,mod Expr
Expr or/and Expr
not(Expr)
 Comparison Expr =,!=,<=,>= Expr
 Conditional
 Iteration
 Quantified
Expr
if Expr then Expr else Expr
for Var in Expr return Expr
some/every Var in Expr satisfies
Storing XML
18
XPATH Example
 List the titles of articles in which the author has
“Tom Hanks”
 //article[//author=“Tom Hanks”]/title
 Find the titles of articles authored by “Tom
Hanks” in volume 1.
 //issue[/volume=“1”]/articles/article/[//author=“Tom
Hanks”]/title
Storing XML
19
Beyond XPATH
 Joining, aggregating XML from multiple
documents
 Constructing new XML
 Recursive processing of recursive XML data
 Supported by XSLT & XQuery
 Differences between XSLT & XQuery
 Safety: XQuery enforces input & output types
 Compositionality : XQuery maps XML to XML; XSLT
maps XML to anything
Storing XML
20
XQuery
 Functional language
 Query is an expression
 Expressions are recursively constructed
 Includes XPATH as a sub-language
 SQL-like FLWR expression
 Borrows features from many other languages:
XQL, XML-QL, ML,..
Storing XML
21
XQuery: FLWR expression
 FOR/LET Clauses
 Ordered list of tuples of bound variables
 WHERE Clause
 Pruned list of tuples of bound variables
 RETURN Clause
 Instance of XML Query data model
Storing XML
22
XQuery: Example
List the titles of the articles authored by “Tom
Hanks”
Query Expression
for $b IN document(“sigmodRecord.xml")//article
where $b//author =“Tom Hanks"
return <title>$b/title.text()</title>
Query Result
<title>XML Research Issues</title>
Storing XML
23
XQuery: Example
List the articles authored by “Tom Hanks”.
Query Expression
<articles>
{
for $b IN document(“sigmodRecord.xml")//article
where $b//author =“Tom Hanks"
return $b
}
</articles>
Query Result
<articles>
<article>
<title>XML:Where are we heading for?</title>
<initPage>6</initPage>
<endPage>10</endPage>
<authors><author AuthorPosition="00">Tom Hanks</author>
</authors>
</article>
</articles>
Storing XML
24
Where’s the XML Data?
?
?
Business
Application
Logic
Export
Import
View
Wrap
Legacy databases
Warehouse XML data
Minimal result
SOAP/CORBA/Java RMI
Storing XML
25
XML and Databases
 Data stored in SQL databases need to be
published in XML for data exchange
 Specification schemes for publishing needed
 Efficient publishing algorithms needed
 Storage and retrieval of XML documents
 Need to support mapping schemes
 Need to support data manipulation XML API-s
Storing XML
26
Storing XML
 Storage foundation of efficient XML processing
 XML demands own storage techniques
 Characteristics of XML data:
Optional elements & values, repetition, choice,
inherent order, large text fragments, mixed content
 Characteristics of XML queries:
Document order & structure, full-text search,
transformation
 Goals of tutorial
 Existing storage features for XML
 New storage features for XML
Storing XML
27
Outline
I.
Introduction


XML Documents
XML Queries
II. Existing Storage Techniques
 Non-native
 Native
III. Physical Storage Features for XML
Storing XML
28
I. Introduction
Storing XML
29
Classes of XML Documents
 Structured
 “Un-normalized” relational data
Ex: product catalogs, inventory data, medical
records, network messages, logs, stock quotes
 Mixed
 Structured data embedded in large text fragments
Ex: On-line manuals, transcripts, tax forms
 Application may process XML in both classes
Ex: SOAP messages
Header is structured; payload is mixed
Storing XML
30
Structured Data: HL7 Lab Report
Health-care industry data-exchange format
<HL7>
<PATIENT>
<PID IDNum="PATID1234">
<PaNa><FaNa>Jones</FaNa><GiNa>William</GiNa></PaNa>
<DTofBi><date>1961-06-13</date></DTofBi>
<Sex>M</Sex>
</PID>
<OBX SetID="1">
<ObsVa>150</ObsVa>
<ObsId>Na</ObsId>
<AbnFl>Above high</AbnFl>
</OBX>
...
Storing XML
31
Queries on Structured Data
 Analogs of SQL
 Select-Project-Join, Sort by value
Ex: Return admission records of patients discharged
on 8/30/01 sorted by family and given names
 Grouping & schema transformation
Ex: Return per-patient record of admission, lab
reports, doctors’ observations
Storing XML
32
Mixed Data: Library of Congress
Documents of U.S. Legislation
<bill bill-stage="Introduction"">
<congress>110th CONGRESS</congress>
<session>1st Session</session>
<legis-num>H.R. 133</legis-num>
<current-chamber>IN THE HOUSE OF REPRESENTATIVES</current-chamber>
<action date="June 5, 2008">
<action-desc>
<sponsor>Mr. English</sponsor> (for himself and
<cosponsor>Mr.Coyne</cosponsor>) introduced the following
bill; which was referred to the <committee-name>Committee on
Financial Services</committee-name> ...
</action-desc>
Storing XML
33
Queries on Mixed Data
 Full-text search operators
Ex: Find all <bill>s where "striking" & "amended" are
within 6 intervening words
 Queries on structure & text
Ex: Return <text> element containing both
"exemption" & "social security" and preceding &
following <text> elements
 Queries that span (ignore) structure
Ex: Return <bill> that contains “referred to the
Committee on Financial Services”
Storing XML
34
Properties of XML Data
 Variance in structured content
 Elements of same type have different structure
 Nested sub-element might depend on parent
 Direct access to sub-element not required
 Order significant in sequence & mixed content
 Structured data embedded in text
 Schema known a priori or “open content model”
 Desirable: explicit support in storage system
Storing XML
35
Properties of Queries
 Query expressions depend on data properties
 Variance
 /PATIENT/(SURGERY | CHECK-UP)
 Document order: XPath axes
 /bill/co-sponsor[./text() = “Mrs.Clinton” and followsibling::co-sponsor/text() = “Mr. Torricelli”]
 Node identity: equality, union/intersect/except
 If not supported in storage system, then operators
semantically incorrect or incomplete.
Storing XML
36
II. Existing Storage Techniques
Storing XML
37
Storage Techniques
 Non-native
 (Object) Relational, OO, LDAP directories
 Indexing, recovery, transactions, updates, optimizers
 Mapping from XML to target data model necessary
 Captures variance in structured content
 No support for mixed content
 Recovering XML documents is expensive!
 Native
 Logical data model is XML
 Physical storage features designed for XML
Storing XML
38
Non-native Techniques
 Generic
 Mapping from XML data to relational tables
 Models XML as tree: semi-structured approach
 Does not use DTD or XML Schema
 Schema-driven
 Mapping from schema constructs to relational
 Fixed mapping from DTD to relational schema
 Flexible mapping from XML Schema to relational
 User-defined
 Labor-intensive
Storing XML
39
Generic Mappings
 Edge relation
 store all edges in one table
 Scalar values stored in separate table
 Attribute relations
 horizontal partition of Edge relation
 Scalar values inlined in same table
 Universal relation
 full outer-join, redundancy
 Captures node identity & document order
 Element reconstruction requires multiple joins
Storing XML
40
Edge Relation Example
Edge Table
&0
HL7
&1
PATIENT
&2
PID
&3
OBX
&4 …
@IDNum
PaNa DTofBi
&5
&6
&7
PATID1234 “Jones Wm”
date
&8
1961-06-13
source
ordinal
tag
flag
target
&0
1
HL7
ref
&1
&1
1
PATIENT
ref
&2
&2
1
PID
ref
&3
&2
2
OBX
ref
&4
&3
1
IDNum
string
&5
&3
2
PaNa
string
&6
&3
3
DTofBi
ref
&7
Value Table
Node
Value
&5
PATID1234
&6
Jones William
Storing XML
41
Generic Mappings: LDAP Directories
 Flexible schema; easy schema evolution
 Supports heterogeneous elements with optional
values
 Captures node identity & document order
 Query language captures subset of XPath
Storing XML
42
LDAP Example
XMLElement OC {
SUBCLASS OF {XMLNode}
MUST CONTAIN {order}
MAY CONTAIN {value}
TYPE order INTEGER
TYPE value STRING }
XMLAttribute OC {
SUBCLASS OF
{XMLNode}
MUST CONTAIN {value}
TYPE value STRING }
oc:XMLElement
oid:1
name:PID
order: 1
PID
@IDNum
PaNa DTofBi Sex
“PATID1234” “Jones Wm” date M
1961-06-13
oc:XMLAttribute
oid:1.1
name: IDNum
value: PATID1234
Storing XML
oc:XMLElement
oid:1.2
name: PaNa
order: 1
value: Jones Wm
43
Schema-driven Mappings
 Repetition : separate tables
 Non-repeated sub-elements may be “inlined”
 Optionality : nullable fields
 Choice : multiple tables or universal table
 Order : explicit ordinal value
 Mixed content ignored
 Element reconstruction may require multi-table
joins because of normalization
Storing XML
44
Fixed Mapping: Hybrid Inlining
<!ELEMENT
<!ELEMENT
<!ELEMENT
<!ELEMENT
PATIENT
OBX
PATIENT (Name, (OBX)*)>
OBX (Name, Value) >
Name (#PCDATA) >
Value (#PCDATA) >
ID : Int
ID: Int
PATIENT
*
OBX
Name
Value
Name: Str
parentID: Int
parentCODE: Str
Name: Str
Value: Str
 Element with in-degree = 0 or > 1 in DTD graph  relation
 Elements with in-degree = 1 inlined except those reached by *
 Non-* & non-recursive elements with in-degree > 1 inlined
Storing XML
45
Flexible Mapping : LegoDB
 Canonical mapping from XML Schema to relational
 Every complex type  relation
 Semantic-preserving XML Schema to XML Schema
transformations
Ex: Inlining/outlining, Union factorization/distribution,
Repetition split
 Greedy algorithm for choosing mapping
 Mapping cost determined by query mix
 Use relational optimizer to estimate cost of mapping
Storing XML
46
LegoDB Example
 Inline type in parent vs. Outline type in own relation
type OBX = element value { Integer }, type Description
type Description = element description { String }
XML
type OBX = element value { Integer }, element description { String }
TABLE OBX (OBX_id INT, value STRING, parent_PATIENT INT)
TABLE Description (Description_id INT, description STRING, parent_OBX INT)
Relational
TABLE OBX (OBX_id INT, value STRING, description STRING, parent_PATIENT INT)
Storing XML
47
User-Defined Mappings
 No automatic translation from DTD or XML Schema
 Annotated schemas or special-purpose queries
 Value-based semantics only
 Document structure represented by keys/foreign keys
 No explicit representation of document order or
node identity
 Some support for mixed content
Storing XML
48
Oracle 9i
 Canonical mapping into user-defined object-relational tables
table PERSON(Name NAME, Alist ALIST)
object NAME(FN STR, LN STR)
table ALIST of ADDR
object ADDR(City CITY)
<row>
<Person>
<Name><FN>…</FN><LN>…</LN>
<Addr><City>…</City></Addr>*
</Person>
</row>
 Arbitrary XML input

XSLT preprocessing into multiple XML documents, load individually
 Stores XML documents in CLOBs (character large objects)

Permits full-text search
 Hybrid of canonical mapping & CLOB
Storing XML
49
IBM DB2 XML Extender
 Declarative decomposition of arbitrary XML

Pure relational mapping (no object features used)
<element_node name="Order">
<table name="order_tab"/>
<table name="part_tab"/>
<condition>
order_tab.order_key = part_tab.order_key
</condition>
<attribute_node name="key">
<table name="order_tab"/>
<column name="order_key"/>
</attribute_node>
</element_node>
 Mixed content
CLOBs + side tables for indexing structured data embedded in text
Storing XML
50
MS SQL Server
 Generic Edge technique with inlined scalar values
 User-defined decomposition of XML into multiple tables
 XML data mapped into DOM
 XPath expressions specify XML values to map into
tables
 Rows in table
Ex: /Customer/Orders  row in Table ORDER
 Columns in row
./OrderDate  OrderDateColumn
 Text content modeled in CLOBs
Storing XML
51
Native Techniques
 Built from scratch
 NatiX (University of Mannheim, Germany)
 Xyleme (France)
 Xindice (Apache – open source)
 Re-tool existing systems to handle XML
 Tamino: hierarchical database (ADABAS)
 Excelon: OODB
 Design efficient data structures for compact
storage and fast access; data partitioning;
indexing on both values and structure
Storing XML
52
NatiX
 Unit of storage = element
 Elements clustered to minimize page hits
 Inter-element pointers capture document
structure
 Low-level algorithmic support for
read/write/insert/delete operations
 No use of DTDs or XML Schema
Storing XML
53
Xyleme
 Data layout: based on NatiX
 Indexing: sophisticated indexing of text and
elements
 Query support: XPATH, XQuery, updates
 A data warehouse for XML content: store,
classify, index, integrate, query and monitor
massive volumes of XML content
 Semantic services: extensible thesauri and
schema mappers that enable the system to go
beyond simple indexing
Storing XML
54
Xyleme/Natix
Storing XML
55
eXcelon XIS
 Extends Object Store – an object-oriented database
 Data Layout: stores parsed nodes (accessible through
DOM interface)
 Indexing: value indexes for strings and numbers; text
indexes; structural indexes
 Query Support: DOM, XSLT, XPath, XQuery, updates
 Other features:
 Node-level management
 Data is stored in a pre-parsed format: only data objects needed for
an operation are loaded into memory
 Create, add, delete, update elements directly
 Handles arbitrary XML documents - without Schema or DTD
 But can enforce schemas if necessary
 Triggers; transactions; distributed caching mechanism
Storing XML
56
Software A/G Tamino
 Extends Adabas – nested relations
 Indexing: value and structure
 Query support:
 Full-text search operators
 Queries return entire document or some projection of
document
 No construction of new XML values (Ex: XQL)
 Access control at the node level, transactions;
multi-media; triggers; backup/restore;
compression; support for multi-media
documents, e.g., video
Storing XML
57
Other Native Systems
 Xindice http://xml.apache.org/xindice/
 Query support: XPath for its query language and
XML:DB XUpdate for its update language
 APIs: XML:DB API for Java development; other
languages using an available XML-RPC plugin
 GoXML
 XQuery, full text searching
 tree insert, replace and delete
Storing XML
58
Update Support
 XQuery does not support updates (yet…)
 How to update?
 Flat streams: overwrite document
 Non-native: SQL
 Native: DOM, proprietary APIs
 But how do you know you have not violated
schema for which the mapping was defined?
 Flat streams: re-parse document
 Non-native: need to understand the mapping and
maintain integrity constraints
 Native: supported in some systems (e.g., eXcelon)
Storing XML
59
Summary
 Non-native
 Treats target system as black box
 Mismatch between data models requires mapping
 Supporting order-sensitive queries can be expensive
 May require changes to schema to support new tags
 Introduces redundancies & necessity of joins
 No control of physical layout of data
 Native
 No mismatch between logical data models
 Focus on physical layout (clustering, indices, …)
 Extensible - no schema or DTD needed
Storing XML
60
Conclusion
 XML data requires new storage features
 Real-applications depend upon XML data properties
 Normalization is not always appropriate
 Schema of XML data should drive storage
 Real-world data comes with its own schema
 Schema as a basis for querying
 Handling mixed content is an important research
problem
 Full version slides at
http://www.research.att.com/~sihem
Storing XML
61
More Resources
 W3C Documents
http://www.w3.org/TR/
http://www.w3.org/XML/Query.html
 W3C XML Query page
 XML Query Implementations & Demos
Galax - AT&T, Lucent, and Avaya http://www-db.research.belllabs.com/galax/
Quip - Software AG
http://www.softwareag.com/developer/quip/
XQuery demo – Microsoft
http://131.107.228.20/xquerydemo/
Fraunhofer IPSI XQuery Prototype http://xml.ipsi.fhg.de/xquerydemo/
XQengine – Fatdog
http://www.fatdog.com/
X-Hive
http://217.77.130.189/xquery/index.html
OpenLink
http://demo.openlinksw.com:8391/xquery/demo.vsp
Storing XML
62
References (Research)





Serge Abiteboul,Sophie Cluet,Tova Milo:
Querying and Updating the File. VLDB
1993
D. Barbosa,A. Barta,A. Mendelzon,G.
Mihaila, F. Rizzolo, P. Rodriguez-Gianolli:
ToX – The Toronto XML Engine,
International Workshop on Information
Integration on the Web, Rio de Janeiro,
2001.
Phil Bohannon, Juliana Freire, Prasan Roy,
Jérôme Siméon: From XML Schema to
Relations: A cost-based Approach to XML
Storage. ICDE 2002
Michael J. Carey,Jerry Kiernan, Jayavel
Shanmugasundaram, Eugene J. Shekita,
Subbu N. Subramanian: XPERANTO:
Middleware for Publishing ObjectRelational Data as XML
Documents.VLDB 2000
Qiming Chen, Yahiko Kambayashi: Nested
Relation Based Database Knowledge
Representation. SIGMOD Conference
1991





Vassilis Christophides, Sophie Cluet, Jérôme
Siméon: On Wrapping Query Languages
and Efficient XML Integration. SIGMOD
Conference 2000: 141-152
Alin Deutsch, Mary F. Fernandez, Dan Suciu:
Storing Semistructured Data with
STORED. SIGMOD Conference 1999
Daniela Florescu, Donald Kossman: A
Performance Evaluation of Alternative
Mapping Schemes for Storing XML
Data in a Relational Database. IEEE
Data Eng. Bulletin 1999
Minos N. Garofalakis, Aristides Gionis,
Rajeev Rastogi, S. Seshadri, Kyuseok Shim:
XTRACT: A System for Extracting
Document Type Descriptors from XML
Documents. SIGMOD Conference 2000
Roy Goldman, Jennifer Widom: DataGuides:
Enabling Query Formulation and
Optimization in Semistructured
Databases. VLDB 1997
Storing XML
63
References (Research)






P.J. Marron, G. Lausen: On Processing
XML in LDAP, VLDB 2001
Carl-Christian Kanne, Guido Moerkotte:
Efficient Storage of XML Data. Technical
Report 8/99, University of Mannheim, 1999
Feng Tian, David J. DeWitt, Jianjun Chen,
and Chun Zhang: The Design and
Performance Evaluation of Various
XML Storage Strategies, Technical
report, University of Wisconsin
Masatoshi Yoshikawa, Takeyuki Shimura,
Shunsuke Uemura: XRel: A Path-Based
Approach to Storage and Retrieval of
XML Documents Using Relational
Databases
Chun Zhang, Jeffrey F. Naughton, David J.
DeWitt, Qiong Luo, Guy M. Lohman: On
Supporting Containment Queries in
Relational Database Management
Systems. SIGMOD 2001
Justin Zobel, James A. Thom,Ron SacksDavis: Efficiency of Nested Relational
Document Database Systems. VLDB
1991
Storing XML
64
References (W3C)





W3C Recommendation. Extensible
Markup Language (XML) 1.0 (Second
Edition) In
http://www.w3.org/TR/REC-xml. 2000
W3C Recommendation. Namespaces
in XML In http://www.w3.org/TR/RECxml-names. 1999
W3C Working Draft. XML Path
Language (XPath) 2.0. In
http://www.w3.org/TR/xpath20. 2001
W3C XML representation of a
relational database In
http://www.w3.org/XML/RDB. html
W3C Recommendation.XML Schema
Part 0: Primer In
http://www.w3.org/TR/xmlschema-0.
2001




W3C Recommendation. XML Schema
Part 1: Structures In
http://www.w3.org/TR/xmlschema1.
2001
W3C Recommendation. XML Schema
Part 1: Datatypes In
http://www.w3.org/TR/xmlschema-2.
2001
W3C Recommendation. XSL
Transformations (XSLT) 1.0. In
http://www.w3.org/TR/xslt. 1999
W3C Working Draft. XQuery 1.0: An
XML Query Language In
http://www.w3.org/TR/xquery. 2001
Storing XML
65
References (Products)
 Ronald Bourret: XML Database Products: In







http://www.rpbourret.com/xml/XMLDatabaseProds.htm, July 2001
Sandeepan Banerjee, Vishu Krishnamurthy, Muralidhar Krishnaprasad, Ravi
Murthy: Oracle8i - The XML Enabled Data Management System. ICDE
2000
Oracle9i Application Developer's Guide – XML Release 1 (9.0.1)
eXcelon: Extensible Information Server White Paper. eXcelon Corporation,
2001
Josephine M.Cheng, Jane Xu: XML and DB2. ICDE 2000: 569-573
IBM DB2 Universal Database XML Extender Administration and
Programming Version 7. 2001
Microsoft SQL Server Books Online
Michael Rys: Bringing the Internet to Your Database:Using SQLServer 2000
and XML to Build Loosely-Coupled Systems. ICDE 2001: 465-472
Storing XML
66
Descargar

Viewing and Querying Relational Databases in XML