From HTML to XML (extensible Markup Language) XML, DTD, and XPath. Other nice features of XML. XML terminology. Well-formed XML documents

Similar documents
Structured vs. unstructured data. Motivation for self describing data. Enter semistructured data. Databases are highly structured

Semistructured data and XML. Institutt for Informatikk INF Ahmet Soylu

XML and Data Management

Introduction to XML. Data Integration. Structure in Data Representation. Yanlei Diao UMass Amherst Nov 15, 2007

Last Week. XML (extensible Markup Language) HTML Deficiencies. XML Advantages. Syntax of XML DHTML. Applets. Modifying DOM Event bubbling

XML: extensible Markup Language. Anabel Fraga

Structured vs. unstructured data. Semistructured data, XML, DTDs. Motivation for self-describing data

DTD Tutorial. About the tutorial. Tutorial

Markup Languages and Semistructured Data - SS 02

Quiz! Database Indexes. Index. Quiz! Disc and main memory. Quiz! How costly is this operation (naive solution)?

Extensible Markup Language (XML): Essentials for Climatologists

XML and Data Integration

Data Integration through XML/XSLT. Presenter: Xin Gu

XML. Document Type Definitions XML Schema

Database & Information Systems Group Prof. Marc H. Scholl. XML & Databases. Tutorial. 11. SQL Compilation, XPath Symmetries

An XML Based Data Exchange Model for Power System Studies

Enhancing Traditional Databases to Support Broader Data Management Applications. Yi Chen Computer Science & Engineering Arizona State University

Managing XML Documents Versions and Upgrades with XSLT

Creating a TEI-Based Website with the exist XML Database

XSLT Mapping in SAP PI 7.1

Exchanger XML Editor - Canonicalization and XML Digital Signatures

AN ENHANCED DATA MODEL AND QUERY ALGEBRA FOR PARTIALLY STRUCTURED XML DATABASE

Translating between XML and Relational Databases using XML Schema and Automed

T Network Application Frameworks and XML Web Services and WSDL Tancred Lindholm

Unified XML/relational storage March The IBM approach to unified XML/relational databases

Introduction to XML Applications

Standard Recommended Practice extensible Markup Language (XML) for the Interchange of Document Images and Related Metadata

Modern Databases. Database Systems Lecture 18 Natasha Alechina

XML Schema Definition Language (XSDL)

INTRO TO XMLSPY (IXS)

Chapter 2: Designing XML DTDs

HTML, CSS, XML, and XSL

1. Write the query of Exercise 6.19 using TRC and DRC: Find the names of all brokers who have made money in all accounts assigned to them.

XML WEB TECHNOLOGIES

Application of XML Tools for Enterprise-Wide RBAC Implementation Tasks

XML Processing and Web Services. Chapter 17

A Workbench for Prototyping XML Data Exchange (extended abstract)

Agents and Web Services

Database Systems. Lecture 1: Introduction

Firewall Builder Architecture Overview

Eventia Log Parsing Editor 1.0 Administration Guide

Java and XML parsing. EH2745 Lecture #8 Spring

Cover Page. Dynamic Server Pages Guide 10g Release 3 ( ) March 2007

TagSoup: A SAX parser in Java for nasty, ugly HTML. John Cowan (cowan@ccil.org)

Lesson 4 Web Service Interface Definition (Part I)

Introduction to Web Services

JavaScript: Introduction to Scripting Pearson Education, Inc. All rights reserved.

Lecture 9. Semantic Analysis Scoping and Symbol Table

Foglight. Dashboard Support Guide

High Performance XML Data Retrieval

LAB MANUAL CS (22): Web Technology

Web Services Technologies

Extending the Linked Data API with RDFa

Rule-Based Generation of XML DTDs from UML Class Diagrams

10CS73:Web Programming

Storing and Querying Ordered XML Using a Relational Database System

Concrete uses of XML in software development and data analysis.

CST6445: Web Services Development with Java and XML Lesson 1 Introduction To Web Services Skilltop Technology Limited. All rights reserved.

Data XML and XQuery A language that can combine and transform data

WebSphere Business Monitor

Cleo Communications. CUEScript Training

Internationalization Tag Set 1.0 A New Standard for Internationalization and Localization of XML

Developing XML Solutions with JavaServer Pages Technology

Short notes on webpage programming languages

StreamLink 5.0. StreamLink Configuration XML Reference. November 2009 C O N F I D E N T I A L

JISIS and Web Technologies

Novell Identity Manager

LabVIEW Internet Toolkit User Guide

by LindaMay Patterson PartnerWorld for Developers, AS/400 January 2000

Interactive Data Visualization for the Web Scott Murray

XML. CIS-3152, Spring 2013 Peter C. Chapin

CHAPTER 1 INTRODUCTION

Chapter 2 HTML Basics Key Concepts. Copyright 2013 Terry Ann Morris, Ed.D

Big Data Analytics. Rasoul Karimi

Organizational Search in Systems

Relational Databases for Querying XML Documents: Limitations and Opportunities. Outline. Motivation and Problem Definition Querying XML using a RDBMS

6. SQL/XML. 6.1 Introduction. 6.1 Introduction. 6.1 Introduction. 6.1 Introduction. XML Databases 6. SQL/XML. Creating XML documents from a database

Relational Databases

Presentation / Interface 1.3

Managing large sound databases using Mpeg7

XML Data Integration

Database trends: XML data storage

Object Oriented Databases. OOAD Fall 2012 Arjun Gopalakrishna Bhavya Udayashankar

How To Use Xml In A Web Browser (For A Web User)

The Web Web page Links 16-3

XML Databases 6. SQL/XML

Foundation of Information Technology (Code No: 165) Sample Question Paper II Summative Assessment - Term II. Max Time: 3 hours Max Marks: 90 SECTION A

Transcription:

From HTML to XML (extensible Markup Language) 2 XML, DTD, and XPath CPS 216 Advanced Database Systems HTML describes the presentation of the content <h1>bibliography</h1> <p><i>foundations of Databases</i> Abiteboul, Hull, and Vianu <br>addison Wesley, 1995 <p> XML describes only the content <book> <book> Separation of content from presentation simplifies content extraction and allows the same content to be presented easily in different looks Other nice features of XML Portability: Just like HTML, you can ship XML data across platforms Relational data requires heavy-weight protocols, e.g., JDBC Flexibility: You can represent any information (structured, semi-structured, documents, ) Relational data is best suited for structured data Extensibility: Since data describes itself, you can change the schema easily Relational schema is rigid and difficult to change 3 XML terminology <is_textbook/> Tag names: book, title, Start tags: <book>, <title>, End tags:, </title>, An element is enclosed by a pair of start and end tags: <book> Elements can be nested: <book><title></title> Empty elements: <is_textbook></is_textbook> Can be abbreviated: <is_textbook/> Elements can also have attributes: <book ISBN= price= 80.00 > 4 Well-formed XML documents 5 More XML features 6 A well-formed XML document Follows XML lexical conventions Wrong: <section>we show that x < 0 Right: <section>we show that x < 0 Other special entities: > becomes > and & becomes & Contains a single root element Has tags that are properly matched and elements that are properly nested Right: <section><subsection></subsection> Wrong: <section><subsection></subsection> Comments: <!-- Comments here --> CDATA: <![CDATA[Tags: <book>,] ID s and references <person id= o12 ><name>homer</name></person> <person id= o34 ><name>marge</name></person> <person id= o56 father= o12 mother= o34 ><name>bart</name></person> Namespaces allow external schemas and qualified names <book xmlns:mycitationstyle= http:///myschema > <mycitationstyle:title></mycitationstyle:title> <mycitationstyle:author></mycitationstyle:author> Processing instructions for apps: <? java applet?> And more

Valid XML documents A valid XML document conforms to a Document Type Definition (DTD) A DTD is optional A DTD specifies A grammar for the document Constraints on structures and values of elements, attributes, etc. Example <!ATTLIST book ISBN CDATA #REQUIRED> 7 DTD explained bibliography is the root element of the document One or more bibliography consists of a sequence of one or more book elements Zero or one Zero or more book consists of a title, zero or more authors, an optional publisher, and zero or more sections, in sequence <!ATTLIST book ISBN ID #REQUIRED> book has a required ISBN attribute which is a unique identifier book has an optional (#IMPLIED) price attribute which contains character data Other attribute types include IDREF (reference to an ID), IDREFS (space-separated list of references), enumerated list, etc. 8 DTD explained (cont d) title, author, publisher, and year all contain parsed character data (#PCDATA) Each section starts with a title, followed by some optional text and then zero of more subsections PCDATA is text that will be parsed (<> will be treated as a markup tag and < etc. will be treated as entities); CDATA is unparsed character data <section><title>introduction</title> In this section we introduce XML and DTD <section><title>xml</title> XML stands for <section><title>dtd</title> <section><title>definition</title> DTD stands for <section><title>usage</title> You can use DTD to 9 Using DTD DTD can be included in the XML source file DTD can be external <!DOCTYPE bibliography SYSTEM../dtds/bib.dtd > <!DOCTYPE html PUBLIC -//W3C//DTD XHTML 1.0 Strict//EN http://www.w3.org/tr/xhtml1/dtd/xhtml1-strict.dtd > <html> </html> 10 Why use DTD s? 11 XML versus relational data 12 Benefits of using DTD DTD can serve as a schema for the XML data Guards against errors Helps with processing DTD facilitates information exchange People can agree to use a common DTD to exchange data (e.g., XHTML) Benefits of not using DTD Unstructured data is easy to represent Overhead of DTD validation is avoided Relational data Schema is always fixed in advance and difficult to change Simple, flat table structures Ordering of rows and columns is unimportant Data exchange is problematic Native support in all serious commercial DBMS XML data Well-formed XML does not require predefined, fixed schema Nested structure; ID/IDREF(S) permit arbitrary graphs Ordering forced by document format; may or may not be important Designed for easy exchange Often implemented as an addon on top of relations Which one is more intuitive? Which one is easier to implement?

Query languages for XML 13 Example DTD and XML 14 XPath Path expressions with conditions Building block of other standards (XQuery, XSLT, XPointer, etc.) XQuery XPath + full-fledged SQL-like query language XSLT XPath + transformation templates <?xml version= 1.0 > <!ATTLIST book ISBN CDATA #REQUIRED> <section> A tree representation 15 XPath 16 book bibliography book title author author author publisher year section Foundations Abiteboul Hull Vianu Addison of Databases Wesley 1995 title In this section section section we introduce Introduction XPath specifies path expressions that match XML data by navigating down (and occasionally up and across) the tree Example Query: /bibliography/book/author Like a UNIX directory Result: all author elements reachable from root via the path /bibliography/book/author Basic XPath constructs / separator between steps in a path name matches any child element with this tag name * matches any child element @name matches the attribute with this name @* matches any attribute // matches any descendent element or the current element itself. matches the current element.. matches the parent element 17 Simple XPath examples All book titles /bibliography/book/title All book ISBN numbers /bibliography/book/@isbn All title elements, anywhere in the document //title All section titles, anywhere in the document //section/title Authors of bibliographical entries (suppose there are articles, reports, etc. in addition to books) /bibliography/*/author 18

Predicates in path expressions [condition] to true on the current element Books with price lower than $50 /bibliography/book[@price<50] matches the current element if condition evaluates Note: < must be escaped if this expression appears in an XML document XPath will automatically convert the price string to a numeric value for comparison Books with author Abiteboul /bibliography/book[author= Abiteboul ] Books with a publisher child element /bibliography/book[publisher] Prices of books authored by Abiteboul /bibliography/book[author= Abiteboul ]/@price 19 More complex predicates Predicates can have and s and or s Books with price between $40 and $50 /bibliography/book[40<=@price and @price<=50] Books authored by Abiteboul or those with price lower than $50 /bibliography/book[author= Abiteboul or @price<50] 20 Predicates involving node-sets /bibliography/book[author= Abiteboul ] There may be multiple authors, so author in general returns a node-set (in XPath terminology) The predicate evaluates to true as long as it evaluates true for at least one node in the node-set, i.e., at least one author is Abiteboul Tricky query /bibliography/book[author= Abiteboul and author!= Abiteboul ] Will it return any books? 21 XPath operators and functions Frequently used in conditions: x + y, x y, x * y, x div y, x mod y contains(x, y) true if string x contains string y count(node-set) counts the number nodes in node-set position() returns the position of the current node in the currently selected node-set last() returns the size of the currently selected node-set name() returns the tag name of the current element 22 More XPath examples All elements whose tag names contain section (e.g., subsection ) //*[contains(name(), section )] Title of the first section in each book /bibliography/book/section[position()=1]/title A shorthand: /bibliography/book/section[1]/title Title of the last section in each book /bibliography/book/section[position()=last()]/title Books with fewer than 10 sections /bibliography/book[count(section)<10] All elements whose parent s tag name is not book //*[name()!= book ]/* 23 A tricky example Suppose that price is a child element of book, and there may be multiple prices per book Books with some price in range [20, 50] How about: /bibliography/book [price >= 20 and price <= 50] Correct answer: /bibliography/book [price[. >= 20 and. <= 50]] 24

De-referencing IDREF s 25 General XPath location steps 26 id(identifier) returns the element with the unique identifier Suppose that books can make references to other books <section><title>introduction</title> XML is a hot topic these days; see <bookref ISBN= ISBN-10 /> for more details Find all references to books written by Abiteboul in the book with ISBN-10 /bibliography/book[@isbn= ISBN-10 ] //bookref[id(@isbn)/author= Abiteboul ] Technically, each XPath query consists of a series of location steps separated by / Each location step consists of An axis: one of self, attribute, parent, child, ancestor, ancestor-or-self, descendent, descendent-or-self, following, following-sibling, preceding, precedingsibling, and namespace A node test: either a name test (e.g., book, section, *) or a type test (e.g., text(), node(), comment()), separated from the axis by :: Zero of more predicates (or conditions) enclosed in square brackets Example of verbose syntax 27 Verbose (axis, node test, predicate): /child::bibliography /child::book[attribute::isbn= ISBN-10 ] /descendent-or-self::node() /child::title Abbreviated: /bibliography/book[@isbn= ISBN-10 ]//title child is the default axis // stands for /descendent-or-self::node()/