XSLT - A Beginner's Glossary

Size: px
Start display at page:

Download "XSLT - A Beginner's Glossary"

Transcription

1 XSL Transformations, Database Queries, and Computation 1. Introduction and Overview XSLT is a recent special-purpose language for transforming XML documents Expressive power of XSLT? Pekka Kilpelainen University of Helsinki Department of Computer Science February 18, 2000 Usability of XSLT for typical data manipulation? Results Ways to simulate relational algebra using XSLT operations Any computation can be simulated using XSLT XSLT (XSL Transformations) W3C Recommendation, Nov. 16, 1999 Overview of the rest of the talk 2. XSL transformations 3. Relational database model 4. Relational queries using XSLT 5. XSLT computability 6. Conclusion a language for transforming XML documents into other XML documents XML (Extensible Markup Language), W3C Recommendation, 1998 a way of representing hierarchical structures (trees) by marked-up documents <Example>See: <fig ref="pic1.gif"/></example> No (processing, formatting, or rendering) semantics xed for the markup; structure and content the only concerns ; formatting semantics attached to XML documents using stylesheets Primary purpose of XSLT: to be used together with the (forthcoming) XML stylesheet language XSL 3 4

2 XSLT uses XPath (XML Path Language), W3C Rec., Nov. 16, 1999, for addressing parts of XML documents Also in XPath: basic manipulation of strings, numbers and booleans XPath tree for the Example document Major components of XML trees / element nodes as internal nodes attribute nodes attached to element nodes text nodes (or empty element nodes) as leaves XPath & XSLT: an additional root node, '/' "See: " Example fig ref= pic1.gif (Cf. Unix/Linux le system hierarchy) 5 6 XSLT syntax and semantics An XSLT stylesheet is an XML document creates a result tree by applying templates to nodes of the source tree a mixture of XSLT instructions and XML markup for result tree fragments Uses XML namespaces to distinguish between XSLT instructions and result fragments separation of (possibly overlapping) sets of names by using a local prex (e.g. 'xsl:') bound to a globally unique URI (e.g., ' 7 An example <xsl:stylesheet version="1.0" xmlns:xsl=" <xsl:template match="/example"> <html><head> <title>an example</title> </head> <body> <xsl:apply-templates/> </body> </html> </xsl:template> <xsl:template match="fig"> <img src="{@ref}" alt="some picture" /> </xsl:template> </xsl:stylesheet> Result <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN <html> <head> <title>an example</title> </head> <body>see: <img src="pic1.gif" alt="some picture"></body> </html> 8

3 A sample DB (of a credit card company) 3. Relational database model (Codd 1970) Basis of today's commercial relational databases database: collection of uniquely named tables (or relations) V (Vendor) Vno Vname City Vbal 1 Sears Toronto Kmart Waterloo Esso Windsor Esso Waterloo 2.25 C (Customer) Acc# Cnam Prov Cbal Max 101 Smith Ont Jones BC Doc Ont relation is a set of rows (or tuples) column = attribute T (Transaction) Tno Vno Acc# Date Amount Relational algebra a procedural query language for basic manipulation of tabular data Fundamental operations 1. select, (R), where is a condition on rows of relation R 2. project, A (R), where A is list of attributes of R 3. Cartesian product, R1 R2 4. union, R1 [ R2 5. set dierence, R1, R 2 6. renaming of attributes, A!B(R) 4. Relational queries using XSLT What's the point? XSLT is not a DB implementation language! Answer: 1. Study of theoretical expressiveness 2. Study of practical usability (or of XSLT programming techniques) in typical data manipulation Others based on the above operations, e.g., join r 1 s ::::::(r s) 11 12

4 How to select, say \Vendors in Waterloo"? Database as an XML document Relational algebra: City='Waterloo' (V ) <db descr="a toy credit card database"> <C><!-- Customer --> <t Acc="101" Cnam="Smith" Prov="Ont" Cbal="25.15" Max="2000" <t Acc="102" Cnam="Jones" Prov="BC" Cbal=" " Max="2500 <t Acc="103" Cnam="Doc" Prov="Ont" Cbal="150.00" Max="1000"/ </C> <V><!-- Vendor --> <t Vno="1" Vname="Sears" City="Toronto" Vbal="200.00" /> <t Vno="2" Vname="Kmart" City="Waterloo" Vbal="671.05" /> <t Vno="3" Vname="Esso" City="Windsor" Vbal="0.00" /> <t Vno="4" Vname="Esso" City="Waterloo" Vbal="2.25" /> </V> <T> <!-- Transaction --> <t Tno="1001" Vno="2" Acc="101" Date="940115" Amount="13.25" <t Tno="1002" Vno="2" Acc="103" Date="940116" Amount="19.00" <t Tno="1003" Vno="3" Acc="101" Date="940115" Amount="25.00" <t Tno="1003" Vno="4" Acc="102" Date="940120" Amount="16.13" <t Tno="1004" Vno="4" Acc="103" Date="940125" Amount="33.12" </T> 13 XSLT (using a literal result element): <db xsl:version="1.0" xmlns:xsl= " xml:space="preserve" > <Result descr="rows of V for vendors in Waterloo" > <xsl:for-each select="//v/t[@city='waterloo']"> <xsl:copy-of select="." /> Result: <db xml:space="preserve"> <Result descr="rows of V for vendors in Waterloo"> <t Vno="2" Vname="Kmart" City="Waterloo" Vbal="671.05"/> <t Vno="4" Vname="Esso" City="Waterloo" Vbal="2.25"/> 14 How to project, say, names and cities of vendors? Relational algebra: Vname;City (V ) XSLT: <db xsl:version="1.0" xmlns:xsl= " xml:space="preserve" > <Result descr="vendor projected on Vname and City" > <xsl:for-each select="//v/t"> <t Vname="{@Vname}" City="{@City}" /> How to do Cartesian product, R S? Sample DB as an XML document <db descr="a formal database example"> <R><t A="1" B="x" /> <t A="2" B="y" /> </R> <S><t C="a" D="s" /> <t C="b" D="t" /> <t C="c" D="u" /> </S> Solution principle Result (slightly modied): <db xml:space="preserve"> <Result descr="vendor projected on Vname and <t Vname="Sears" City="Toronto"/> <t Vname="Kmart" City="Waterloo"/> <t Vname="Esso" City="Windsor"/> <t Vname="Esso" City="Waterloo"/> City"> 15 apply two nested xsl:for-each loops store the attributes of the outer-loop tuple in an xsl:variable 16

5 XSLT transformation for R S <db xsl:version="1.0" xml:space="preserve" xmlns:xsl= " > <Result descr="r x S"><xsl:for-each xml:space="default" select="//r/t"> <xsl:variable name="rattrs"> <xsl:for-each select="@*"><xsl:copy-of select="."/> </xsl:variable> <xsl:for-each xml:space="preserve" select="//s/t"> <t xml:space="default"><xsl:copy-of select="$rattrs"/> <xsl:for-each select="@*"><xsl:copy-of select="."/> </t> Result <db xml:space="preserve"> <Result descr="r x S"> <t xml:space="default" A="1" B="x" C="a" D="s"/> <t xml:space="default" A="1" B="x" C="b" D="t"/> <t xml:space="default" A="1" B="x" C="c" D="u"/> <t xml:space="default" A="2" B="y" C="a" D="s"/> <t xml:space="default" A="2" B="y" C="b" D="t"/> <t xml:space="default" A="2" B="y" C="c" D="u"/> 17 How to do union, R [ S? \Vendor#'s for vendors either in Waterloo or having some transactions?" Vno City=Waterloo (V ) [ Vno (T ) XSLT can simply pick rows of each relation in turn: <db xsl:version="1.0" xmlns:xsl= " <Result descr="vnums for Waterloo or with transactions"> <xsl:for-each select="//v/t[@city='waterloo']"> <t VNo="{@Vno}"/> <xsl:for-each select="//t/t"> <t VNo="{@Vno}"/> Tuples in the result <t VNo="2"/><t VNo="4"/> <t VNo="2"/><t VNo="2"/><t VNo="3"/><t VNo="4"/><t VNo="4"/> Elimination of duplicates also possible (but slightly more complicated) 18 How to do set dierence, R, S? \Vendor numbers for which there are no transactions?" ( Vno (V )), ( Vno (T )) XSLT code for set dierence <db xsl:version="1.0" xml:space="preserve" xmlns:xsl= " <Result descr="vendor nums without transactions"> <xsl:for-each select="//v/t" xml:space="default"> <xsl:variable name="vvnum" select="@vno"/> <xsl:if test="not(//t/t[@vno=$vvnum])"> <t VNo="{$VVnum}"/></xsl:if> Result <db xml:space="preserve"> <Result descr="vendor nums without transactions"> <t VNo="1"/> 19 How to rename attributes, A!B(R)? "Rename attribute Vbal in relation V to Balance" XSLT can supply a new name xsl:attribute: for an <db xsl:version="1.0" xmlns:xsl= " <Result descr="vendor relation with Vbal renamed to Balance"> <xsl:for-each select="//v/t"> <t><xsl:copy-of select="@vno" /> <xsl:copy-of select="@vname" /> <xsl:copy-of select="@city" /> <xsl:attribute name="balance"> <xsl:value-of select="@vbal"/> </xsl:attribute></t><xsl:text> </xsl:text> Tuples in result <t Vno="1" Vname="Sears" City="Toronto" Balance="200.00"/> <t Vno="2" Vname="Kmart" City="Waterloo" Balance="671.05"/ <t Vno="3" Vname="Esso" City="Windsor" Balance="0.00"/> <t Vno="4" Vname="Esso" City="Waterloo" Balance="2.25"/> 20

6 Discussion Result tree fragments can be processed only once ; a relational query must be simulated in a single transformation step (or using a sequence of XSLT processes, each working on the result of the previous one) Implementations oer extensions for processing node sets multiple times; built-in support expected in further versions of XSLT Additional relational operations also possible: sorting supported by xsl:sort 5. XSLT Computability XSLT can simulate any computation Shown by simulating Turing machines Turing machine (Turing 1936/7) a formal model of algorithms primitive but powerful: any computation expressible in any algorithmic model can be simulated (Church/Turing thesis) a potentially innite tape of cells for symbols, examined by a tape head grouping possible with XSLT programming tricks; built-in support expected in further versions of XSLT 21 a nite set of states 22 Programming-like features of XSLT Control of a Turing machine Simplistic control dened by a transition function Given the current state q1 and the symbol at the tape head a (q1;a)=(q2;b;x) species the next state q2, symbol b written in the cell pointed by head, and one-step movement X 2fL; Rg of the head (Left/Right) 23 basic string manipulation capabilities of XPath: substrings, concatenation conditional processing xsl:choose, xsl:when (Cf. case) template rules can be named and called with parameters recursively Simulating a TM by an xsl:template Recursive template rule named ``transition'' Parameters of ``transition'': state: name of the current state left: contents of the tape up to the head right: tape from the head onwards 24

7 Overall structure of the simulation <xsl:template name="transition"> Simulation of a single transition: <!-- xsl:parameters and some trace output excluded --> <xsl:choose> <xsl:when test="$state='yes'"> <ACCEPT/> </xsl:when> <!--for each transition defined for $state and the first char of $right, updte $state, $left and $right, and call "transition" recursively --> <xsl:otherwise> <REJECT/> </xsl:otherwise> </xsl:choose> </xsl:template> Updating the representation of the tape For right-moves (q1;a)=(q2;b;r) concatenate 'b' at the end of $left and drop the rst char of $right Left-moves (q1;a) =(q2;b;l) in a similar manner 25 <!-- sigma(mark,a) = (move_a,#,r): --> <xsl:when test="$state='mark' and substring($right, 1, 1)='a'"> <!-- Update the state parameters: --> <xsl:variable name="newstate" select="'move_a'"/> <xsl:variable name="newleft" select="concat($left, '#')"/> <xsl:variable name="newright" select="substring($right, 2)"/> <!-- Call "transition" with the new parameters: --> <xsl:call-template name="transition"> <xsl:with-param name="state" select="$newstate"/> <xsl:with-param name="left" select="$newleft"/> <xsl:with-param name="right" select="$newright"/> </xsl:call-template> </xsl:when> 26 Sample trace of the simulation xt dummy.xml tm_palindr.xsl input_tape=abba <M state="# [mark]abba#"/> <M state="## [move_a]bba#"/> <M state="##b [move_a]ba#"/> <M state="##bb [move_a]a#"/> <M state="##bba [move_a]#"/> <M state="##bb [test_a]a#"/> <M state="##b [return]b##"/> <M state="## [return]bb##"/> <M state="# [return]#bb##"/> <M state="## [mark]bb##"/> <M state="### [move_b]b##"/> <M state="###b [move_b]##"/> <M state="### [test_b]b##"/> <M state="## [return]####"/> <M state="### [mark]###"/> <M state="## [YES]####"/> <ACCEPT/> Implications XSLT has, in principle, unrestricted computational power ; Not possible to set any limit on the complexity of XSL stylesheet evaluation ; Not possible to automatically recognize non-terminating stylesheets ; A malicious programmer could create stylesheets that jam client applications 27 28

8 6. Conclusion XSLT language for transforming XML documents relationally complete (query) language Turing complete (programming) language Related work Gonnet, Tompa & Blakeley (1987): simulation of relational algebra using p-string algebra Tarnlund (1977): Horn clause computability Further work Relation of XSLT with other transformation formalisms? with proposed XML query languages? 29

Data Integration through XML/XSLT. Presenter: Xin Gu

Data Integration through XML/XSLT. Presenter: Xin Gu Data Integration through XML/XSLT Presenter: Xin Gu q7.jar op.xsl goalmodel.q7 goalmodel.xml q7.xsl help, hurt GUI +, -, ++, -- goalmodel.op.xml merge.xsl goalmodel.input.xml profile.xml Goal model configurator

More information

XSLT Mapping in SAP PI 7.1

XSLT Mapping in SAP PI 7.1 Applies to: SAP NetWeaver Process Integration 7.1 (SAP PI 7.1) Summary This document explains about using XSLT mapping in SAP Process Integration for converting a simple input to a relatively complex output.

More information

Markup Sprachen und semi-strukturierte Daten

Markup Sprachen und semi-strukturierte Daten Markup Sprachen und semi-strukturierte Daten http://www.pms.informatik.uni-muenchen.de/lehre/markupsemistrukt/02ss XSLT 1.0 Tutorial Dan Olteanu Dan.Olteanu@pms.informatik.uni-muenchen.de What means XSLT?

More information

Extending the Linked Data API with RDFa

Extending the Linked Data API with RDFa Extending the Linked Data API with RDFa Steve Battle 1, James Leigh 2, David Wood 2 1 Gloze Ltd, UK steven.a.battle@gmail.com 2 3 Round Stones, USA James, David@3roundstones.com Linked data is about connecting

More information

An Approach to Translate XSLT into XQuery

An Approach to Translate XSLT into XQuery An Approach to Translate XSLT into XQuery Albin Laga, Praveen Madiraju and Darrel A. Mazzari Department of Mathematics, Statistics, and Computer Science Marquette University P.O. Box 1881, Milwaukee, WI

More information

T-110.5140 Network Application Frameworks and XML Web Services and WSDL 15.2.2010 Tancred Lindholm

T-110.5140 Network Application Frameworks and XML Web Services and WSDL 15.2.2010 Tancred Lindholm T-110.5140 Network Application Frameworks and XML Web Services and WSDL 15.2.2010 Tancred Lindholm Based on slides by Sasu Tarkoma and Pekka Nikander 1 of 20 Contents Short review of XML & related specs

More information

Semistructured data and XML. Institutt for Informatikk INF3100 09.04.2013 Ahmet Soylu

Semistructured data and XML. Institutt for Informatikk INF3100 09.04.2013 Ahmet Soylu Semistructured data and XML Institutt for Informatikk 1 Unstructured, Structured and Semistructured data Unstructured data e.g., text documents Structured data: data with a rigid and fixed data format

More information

An XML Based Data Exchange Model for Power System Studies

An XML Based Data Exchange Model for Power System Studies ARI The Bulletin of the Istanbul Technical University VOLUME 54, NUMBER 2 Communicated by Sondan Durukanoğlu Feyiz An XML Based Data Exchange Model for Power System Studies Hasan Dağ Department of Electrical

More information

Page: 1. Merging XML files: a new approach providing intelligent merge of XML data sets

Page: 1. Merging XML files: a new approach providing intelligent merge of XML data sets Page: 1 Merging XML files: a new approach providing intelligent merge of XML data sets Robin La Fontaine, Monsell EDM Ltd robin.lafontaine@deltaxml.com http://www.deltaxml.com Abstract As XML becomes ubiquitous

More information

By Nabil ADOUI, member of the 4D Technical Support team

By Nabil ADOUI, member of the 4D Technical Support team XSLT with PHP By Nabil ADOUI, member of the 4D Technical Support team Contents Summary... 3 Introduction... 3 Important elements... 3 The PHP XSL library... 4 The PHP XSL API... 5 XSLTProcessor:: construct...

More information

XSL - Introduction and guided tour

XSL - Introduction and guided tour Concepts and Technologies of XML 6.1 XSL - Introduction and guided tour CT-XML 2014/2015 Warning! Authors " João Moura Pires (jmp@di.fct.unl.pt) " With contributions of Carlos Damásio (cd@di.fct.unl.pt)

More information

Markup Languages and Semistructured Data - SS 02

Markup Languages and Semistructured Data - SS 02 Markup Languages and Semistructured Data - SS 02 http://www.pms.informatik.uni-muenchen.de/lehre/markupsemistrukt/02ss/ XPath 1.0 Tutorial 28th of May, 2002 Dan Olteanu XPath 1.0 - W3C Recommendation language

More information

Developing XML Solutions with JavaServer Pages Technology

Developing XML Solutions with JavaServer Pages Technology Developing XML Solutions with JavaServer Pages Technology XML (extensible Markup Language) is a set of syntax rules and guidelines for defining text-based markup languages. XML languages have a number

More information

Introduction to XML Applications

Introduction to XML Applications EMC White Paper Introduction to XML Applications Umair Nauman Abstract: This document provides an overview of XML Applications. This is not a comprehensive guide to XML Applications and is intended for

More information

Web Services Technologies

Web Services Technologies Web Services Technologies XML and SOAP WSDL and UDDI Version 16 1 Web Services Technologies WSTech-2 A collection of XML technology standards that work together to provide Web Services capabilities We

More information

Honors Class (Foundations of) Informatics. Tom Verhoeff. Department of Mathematics & Computer Science Software Engineering & Technology

Honors Class (Foundations of) Informatics. Tom Verhoeff. Department of Mathematics & Computer Science Software Engineering & Technology Honors Class (Foundations of) Informatics Tom Verhoeff Department of Mathematics & Computer Science Software Engineering & Technology www.win.tue.nl/~wstomv/edu/hci c 2011, T. Verhoeff @ TUE.NL 1/20 Information

More information

BASI DI DATI II 2 modulo Parte II: XML e namespaces. Prof. Riccardo Torlone Università Roma Tre

BASI DI DATI II 2 modulo Parte II: XML e namespaces. Prof. Riccardo Torlone Università Roma Tre BASI DI DATI II 2 modulo Parte II: XML e namespaces Prof. Riccardo Torlone Università Roma Tre Outline What is XML, in particular in relation to HTML The XML data model and its textual representation The

More information

XML: extensible Markup Language. Anabel Fraga

XML: extensible Markup Language. Anabel Fraga XML: extensible Markup Language Anabel Fraga Table of Contents Historic Introduction XML vs. HTML XML Characteristics HTML Document XML Document XML General Rules Well Formed and Valid Documents Elements

More information

Encoding Library of Congress Subject Headings in SKOS: Authority Control for the Semantic Web

Encoding Library of Congress Subject Headings in SKOS: Authority Control for the Semantic Web Encoding Library of Congress Subject Headings in SKOS: Authority Control for the Semantic Web Corey A Harper University of Oregon Libraries Tel: +1 541 346 1854 Fax:+1 541 346 3485 charper@uoregon.edu

More information

Chapter 3: XML Namespaces

Chapter 3: XML Namespaces 3. XML Namespaces 3-1 Chapter 3: XML Namespaces References: Tim Bray, Dave Hollander, Andrew Layman: Namespaces in XML. W3C Recommendation, World Wide Web Consortium, Jan 14, 1999. [http://www.w3.org/tr/1999/rec-xml-names-19990114],

More information

Chapter 1: Introduction

Chapter 1: Introduction Chapter 1: Introduction Database System Concepts, 5th Ed. See www.db book.com for conditions on re use Chapter 1: Introduction Purpose of Database Systems View of Data Database Languages Relational Databases

More information

HTSQL is a comprehensive navigational query language for relational databases.

HTSQL is a comprehensive navigational query language for relational databases. http://htsql.org/ HTSQL A Database Query Language HTSQL is a comprehensive navigational query language for relational databases. HTSQL is designed for data analysts and other accidental programmers who

More information

Application development in XML

Application development in XML Application development in XML exist-db & XQuery Alexander Czmiel 17.04.2015 What do you know by now? HTML, CSS, JavaScript to build beautiful and informative digital resources for humanities scholarship

More information

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

JavaScript: Introduction to Scripting. 2008 Pearson Education, Inc. All rights reserved. 1 6 JavaScript: Introduction to Scripting 2 Comment is free, but facts are sacred. C. P. Scott The creditor hath a better memory than the debtor. James Howell When faced with a decision, I always ask,

More information

Database Systems. Lecture 1: Introduction

Database Systems. Lecture 1: Introduction Database Systems Lecture 1: Introduction General Information Professor: Leonid Libkin Contact: libkin@ed.ac.uk Lectures: Tuesday, 11:10am 1 pm, AT LT4 Website: http://homepages.inf.ed.ac.uk/libkin/teach/dbs09/index.html

More information

Command-Line Tool for View Manager View Manager 4.0

Command-Line Tool for View Manager View Manager 4.0 Technical Note Command-Line Tool for View Manager View Manager 4.0 The Command Line Tool for View Manager is a utility provided with the View Manager application that allows you to carry out administrative

More information

Dynamic Styling in Web Development

Dynamic Styling in Web Development Dynamic Styling in Web Development Creating PDSS, a Powerful Dynamic Styling Solution Markup Styling Client Side Programming Server Side Programming Database Querying Master s thesis by: Daniel Solsø Korsgård

More information

2. Distributed Handwriting Recognition. Abstract. 1. Introduction

2. Distributed Handwriting Recognition. Abstract. 1. Introduction XPEN: An XML Based Format for Distributed Online Handwriting Recognition A.P.Lenaghan, R.R.Malyan, School of Computing and Information Systems, Kingston University, UK {a.lenaghan,r.malyan}@kingston.ac.uk

More information

Duration Vendor Audience 5 Days Oracle End Users, Developers, Technical Consultants and Support Staff

Duration Vendor Audience 5 Days Oracle End Users, Developers, Technical Consultants and Support Staff D80198GC10 Oracle Database 12c SQL and Fundamentals Summary Duration Vendor Audience 5 Days Oracle End Users, Developers, Technical Consultants and Support Staff Level Professional Delivery Method Instructor-led

More information

G-SPARQL: A Hybrid Engine for Querying Large Attributed Graphs

G-SPARQL: A Hybrid Engine for Querying Large Attributed Graphs G-SPARQL: A Hybrid Engine for Querying Large Attributed Graphs Sherif Sakr National ICT Australia UNSW, Sydney, Australia ssakr@cse.unsw.edu.eu Sameh Elnikety Microsoft Research Redmond, WA, USA samehe@microsoft.com

More information

WEESA - Web Engineering for Semantic Web Applications

WEESA - Web Engineering for Semantic Web Applications WEESA - Web Engineering for Semantic Web Applications Gerald Reif Distributed Systems Group Vienna University of Technology Argentinierstrasse 8 1040 Vienna, Austria reif@infosys.tuwien.ac.at Harald Gall

More information

Specify the location of an HTML control stored in the application repository. See Using the XPath search method, page 2.

Specify the location of an HTML control stored in the application repository. See Using the XPath search method, page 2. Testing Dynamic Web Applications How To You can use XML Path Language (XPath) queries and URL format rules to test web sites or applications that contain dynamic content that changes on a regular basis.

More information

Building A Very Simple Website

Building A Very Simple Website Sitecore CMS 6.5 Building A Very Simple Web Site Rev 110715 Sitecore CMS 6.5 Building A Very Simple Website A Self-Study Guide for Developers Table of Contents Chapter 1 Introduction... 3 Chapter 2 Creating

More information

Introduction to XSL. Max Froumentin - W3C

Introduction to XSL. Max Froumentin - W3C Introduction to XSL Max Froumentin - W3C Introduction to XSL XML Documents Stying XML Documents XSL Exampe I: Hamet Exampe II: Mixed Writing Modes Exampe III: database Other Exampes How do they do that?

More information

Extending XSLT with Java and C#

Extending XSLT with Java and C# Extending XSLT with Java and C# The world is not perfect. If it were, all data you have to process would be in XML and the only transformation language you would have to learn would XSLT. Because the world

More information

SQL Query Evaluation. Winter 2006-2007 Lecture 23

SQL Query Evaluation. Winter 2006-2007 Lecture 23 SQL Query Evaluation Winter 2006-2007 Lecture 23 SQL Query Processing Databases go through three steps: Parse SQL into an execution plan Optimize the execution plan Evaluate the optimized plan Execution

More information

Relational Database: Additional Operations on Relations; SQL

Relational Database: Additional Operations on Relations; SQL Relational Database: Additional Operations on Relations; SQL Greg Plaxton Theory in Programming Practice, Fall 2005 Department of Computer Science University of Texas at Austin Overview The course packet

More information

XML Schema Definition Language (XSDL)

XML Schema Definition Language (XSDL) Chapter 4 XML Schema Definition Language (XSDL) Peter Wood (BBK) XML Data Management 80 / 227 XML Schema XML Schema is a W3C Recommendation XML Schema Part 0: Primer XML Schema Part 1: Structures XML Schema

More information

CS 3719 (Theory of Computation and Algorithms) Lecture 4

CS 3719 (Theory of Computation and Algorithms) Lecture 4 CS 3719 (Theory of Computation and Algorithms) Lecture 4 Antonina Kolokolova January 18, 2012 1 Undecidable languages 1.1 Church-Turing thesis Let s recap how it all started. In 1990, Hilbert stated a

More information

Instant SQL Programming

Instant SQL Programming Instant SQL Programming Joe Celko Wrox Press Ltd. INSTANT Table of Contents Introduction 1 What Can SQL Do for Me? 2 Who Should Use This Book? 2 How To Use This Book 3 What You Should Know 3 Conventions

More information

Discovering SQL. Wiley Publishing, Inc. A HANDS-ON GUIDE FOR BEGINNERS. Alex Kriegel WILEY

Discovering SQL. Wiley Publishing, Inc. A HANDS-ON GUIDE FOR BEGINNERS. Alex Kriegel WILEY Discovering SQL A HANDS-ON GUIDE FOR BEGINNERS Alex Kriegel WILEY Wiley Publishing, Inc. INTRODUCTION xxv CHAPTER 1: DROWNING IN DATA, DYING OF THIRST FOR KNOWLEDGE 1 Data Deluge and Informational Overload

More information

Relational Databases

Relational Databases Relational Databases Jan Chomicki University at Buffalo Jan Chomicki () Relational databases 1 / 18 Relational data model Domain domain: predefined set of atomic values: integers, strings,... every attribute

More information

WEBVIEW An SQL Extension for Joining Corporate Data to Data Derived from the World Wide Web

WEBVIEW An SQL Extension for Joining Corporate Data to Data Derived from the World Wide Web WEBVIEW An SQL Extension for Joining Corporate Data to Data Derived from the World Wide Web Charles A Wood and Terence T Ow Mendoza College of Business University of Notre Dame Notre Dame, IN 46556-5646

More information

Chapter 1: Introduction. Database Management System (DBMS) University Database Example

Chapter 1: Introduction. Database Management System (DBMS) University Database Example This image cannot currently be displayed. Chapter 1: Introduction Database System Concepts, 6 th Ed. See www.db-book.com for conditions on re-use Database Management System (DBMS) DBMS contains information

More information

By Koji MIYAUCHI* ABSTRACT. XML is spreading quickly as a format for electronic documents and messages. As a consequence,

By Koji MIYAUCHI* ABSTRACT. XML is spreading quickly as a format for electronic documents and messages. As a consequence, Falsification Prevention and Protection Technologies and Products XML Signature/Encryption the Basis of Web Services Security By Koji MIYAUCHI* XML is spreading quickly as a format for electronic documents

More information

Databases 2011 The Relational Model and SQL

Databases 2011 The Relational Model and SQL Databases 2011 Christian S. Jensen Computer Science, Aarhus University What is a Database? Main Entry: da ta base Pronunciation: \ˈdā-tə-ˌbās, ˈda- also ˈdä-\ Function: noun Date: circa 1962 : a usually

More information

Syntax Check of Embedded SQL in C++ with Proto

Syntax Check of Embedded SQL in C++ with Proto Proceedings of the 8 th International Conference on Applied Informatics Eger, Hungary, January 27 30, 2010. Vol. 2. pp. 383 390. Syntax Check of Embedded SQL in C++ with Proto Zalán Szűgyi, Zoltán Porkoláb

More information

JavaScript: Control Statements I

JavaScript: Control Statements I 1 7 JavaScript: Control Statements I 7.1 Introduction 2 The techniques you will learn here are applicable to most high-level languages, including JavaScript 1 7.2 Algorithms 3 Any computable problem can

More information

Compiler Construction

Compiler Construction Compiler Construction Regular expressions Scanning Görel Hedin Reviderad 2013 01 23.a 2013 Compiler Construction 2013 F02-1 Compiler overview source code lexical analysis tokens intermediate code generation

More information

T XML in 2 lessons! %! " #$& $ "#& ) ' */,: -.,0+(. ". "'- (. 1

T XML in 2 lessons! %!  #$& $ #& ) ' */,: -.,0+(. . '- (. 1 XML in 2 lessons! :.. 1 Lets start This presentation will answer the fundamental questions: What is XML? How do I use XML? How does it work? What can I use it for, anyway? 2 World Wide Web Consortium (W3C)

More information

JavaScript: Arrays. 2008 Pearson Education, Inc. All rights reserved.

JavaScript: Arrays. 2008 Pearson Education, Inc. All rights reserved. 1 10 JavaScript: Arrays 2 With sobs and tears he sorted out Those of the largest size... Lewis Carroll Attempt the end, and never stand to doubt; Nothing s so hard, but search will find it out. Robert

More information

Using Database Metadata and its Semantics to Generate Automatic and Dynamic Web Entry Forms

Using Database Metadata and its Semantics to Generate Automatic and Dynamic Web Entry Forms Using Database Metadata and its Semantics to Generate Automatic and Dynamic Web Entry Forms Mohammed M. Elsheh and Mick J. Ridley Abstract Automatic and dynamic generation of Web applications is the future

More information

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

Chapter 2 HTML Basics Key Concepts. Copyright 2013 Terry Ann Morris, Ed.D Chapter 2 HTML Basics Key Concepts Copyright 2013 Terry Ann Morris, Ed.D 1 First Web Page an opening tag... page info goes here a closing tag Head & Body Sections Head Section

More information

Introduction to database design

Introduction to database design Introduction to database design KBL chapter 5 (pages 127-187) Rasmus Pagh Some figures are borrowed from the ppt slides from the book used in the course, Database systems by Kiefer, Bernstein, Lewis Copyright

More information

Database trends: XML data storage

Database trends: XML data storage Database trends: XML data storage UC Santa Cruz CMPS 10 Introduction to Computer Science www.soe.ucsc.edu/classes/cmps010/spring11 ejw@cs.ucsc.edu 25 April 2011 DRC Students If any student in the class

More information

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

AN ENHANCED DATA MODEL AND QUERY ALGEBRA FOR PARTIALLY STRUCTURED XML DATABASE THE UNIVERSITY OF SHEFFIELD DEPARTMENT OF COMPUTER SCIENCE RESEARCH MEMORANDA CS-03-08 MPHIL/PHD UPGRADE REPORT AN ENHANCED DATA MODEL AND QUERY ALGEBRA FOR PARTIALLY STRUCTURED XML DATABASE SUPERVISORS:

More information

Drupal and ArcGIS Yes, it can be done. Frank McLean Developer

Drupal and ArcGIS Yes, it can be done. Frank McLean Developer Drupal and ArcGIS Yes, it can be done Frank McLean Developer Who we are NatureServe is a conservation non-profit Network of member programs Track endangered species and habitats Across North America Environmental

More information

XPath Processing in a Nutshell

XPath Processing in a Nutshell XPath Processing in a Nutshell Georg Gottlob, Christoph Koch, and Reinhard Pichler Database and Artificial Intelligence Group Technische Universität Wien, A-1040 Vienna, Austria {gottlob, koch}@dbai.tuwien.ac.at,

More information

2009 Martin v. Löwis. Data-centric XML. Other Schema Languages

2009 Martin v. Löwis. Data-centric XML. Other Schema Languages Data-centric XML Other Schema Languages Problems of XML Schema According to Schematron docs: No support for entities idiomatic or localized data types (date, time) not supported limited support for element

More information

Short notes on webpage programming languages

Short notes on webpage programming languages Short notes on webpage programming languages What is HTML? HTML is a language for describing web pages. HTML stands for Hyper Text Markup Language HTML is a markup language A markup language is a set of

More information

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

Quiz! Database Indexes. Index. Quiz! Disc and main memory. Quiz! How costly is this operation (naive solution)? Database Indexes How costly is this operation (naive solution)? course per weekday hour room TDA356 2 VR Monday 13:15 TDA356 2 VR Thursday 08:00 TDA356 4 HB1 Tuesday 08:00 TDA356 4 HB1 Friday 13:15 TIN090

More information

Agenda2. User Manual. Agenda2 User Manual Copyright 2010-2013 Bobsoft 1 of 34

Agenda2. User Manual. Agenda2 User Manual Copyright 2010-2013 Bobsoft 1 of 34 Agenda2 User Manual Agenda2 User Manual Copyright 2010-2013 Bobsoft 1 of 34 Agenda2 User Manual Copyright 2010-2013 Bobsoft 2 of 34 Contents 1. User Interface! 5 2. Quick Start! 6 3. Creating an agenda!

More information

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

Structured vs. unstructured data. Motivation for self describing data. Enter semistructured data. Databases are highly structured Structured vs. unstructured data 2 Databases are highly structured Semistructured data, XML, DTDs Well known data format: relations and tuples Every tuple conforms to a known schema Data independence?

More information

Turing Machines, Part I

Turing Machines, Part I Turing Machines, Part I Languages The $64,000 Question What is a language? What is a class of languages? Computer Science Theory 2 1 Now our picture looks like Context Free Languages Deterministic Context

More information

COMP 5138 Relational Database Management Systems. Week 5 : Basic SQL. Today s Agenda. Overview. Basic SQL Queries. Joins Queries

COMP 5138 Relational Database Management Systems. Week 5 : Basic SQL. Today s Agenda. Overview. Basic SQL Queries. Joins Queries COMP 5138 Relational Database Management Systems Week 5 : Basic COMP5138 "Relational Database Managment Systems" J. Davis 2006 5-1 Today s Agenda Overview Basic Queries Joins Queries Aggregate Functions

More information

ICAB4136B Use structured query language to create database structures and manipulate data

ICAB4136B Use structured query language to create database structures and manipulate data ICAB4136B Use structured query language to create database structures and manipulate data Release: 1 ICAB4136B Use structured query language to create database structures and manipulate data Modification

More information

Programming with SQL

Programming with SQL Unit 43: Programming with SQL Learning Outcomes A candidate following a programme of learning leading to this unit will be able to: Create queries to retrieve information from relational databases using

More information

Oracle Database 10g: Introduction to SQL

Oracle Database 10g: Introduction to SQL Oracle University Contact Us: 1.800.529.0165 Oracle Database 10g: Introduction to SQL Duration: 5 Days What you will learn This course offers students an introduction to Oracle Database 10g database technology.

More information

VII. Database System Architecture

VII. Database System Architecture VII. Database System Lecture Topics Monolithic systems Client/Server systems Parallel database servers Multidatabase systems CS338 1 Monolithic System DBMS File System Each component presents a well-defined

More information

CHAPTER 3 PROPOSED SCHEME

CHAPTER 3 PROPOSED SCHEME 79 CHAPTER 3 PROPOSED SCHEME In an interactive environment, there is a need to look at the information sharing amongst various information systems (For E.g. Banking, Military Services and Health care).

More information

XML and Data Management

XML and Data Management XML and Data Management XML standards XML DTD, XML Schema DOM, SAX, XPath XSL XQuery,... Databases and Information Systems 1 - WS 2005 / 06 - Prof. Dr. Stefan Böttcher XML / 1 Overview of internet technologies

More information

24 Uses of Turing Machines

24 Uses of Turing Machines Formal Language and Automata Theory: CS2004 24 Uses of Turing Machines 24 Introduction We have previously covered the application of Turing Machine as a recognizer and decider In this lecture we will discuss

More information

Translating between XML and Relational Databases using XML Schema and Automed

Translating between XML and Relational Databases using XML Schema and Automed Imperial College of Science, Technology and Medicine (University of London) Department of Computing Translating between XML and Relational Databases using XML Schema and Automed Andrew Charles Smith acs203

More information

Standard Registry Development and Publication Process

Standard Registry Development and Publication Process Document number: DSP4006 Date: 2007-12-12 Version: 1.1.0 Standard Registry Development and Publication Process Document type: Specification Document status: Informational Document language: E Copyright

More information

Concrete uses of XML in software development and data analysis.

Concrete uses of XML in software development and data analysis. Concrete uses of XML in software development and data analysis. S. Patton LBNL, Berkeley, CA 94720, USA XML is now becoming an industry standard for data description and exchange. Despite this there are

More information

Unit 3. Retrieving Data from Multiple Tables

Unit 3. Retrieving Data from Multiple Tables Unit 3. Retrieving Data from Multiple Tables What This Unit Is About How to retrieve columns from more than one table or view. What You Should Be Able to Do Retrieve data from more than one table or view.

More information

Information Systems SQL. Nikolaj Popov

Information Systems SQL. Nikolaj Popov Information Systems SQL Nikolaj Popov Research Institute for Symbolic Computation Johannes Kepler University of Linz, Austria popov@risc.uni-linz.ac.at Outline SQL Table Creation Populating and Modifying

More information

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

Cover Page. Dynamic Server Pages Guide 10g Release 3 (10.1.3.3.0) March 2007 Cover Page Dynamic Server Pages Guide 10g Release 3 (10.1.3.3.0) March 2007 Dynamic Server Pages Guide, 10g Release 3 (10.1.3.3.0) Copyright 2007, Oracle. All rights reserved. Contributing Authors: Sandra

More information

DataDirect XQuery Technical Overview

DataDirect XQuery Technical Overview DataDirect XQuery Technical Overview Table of Contents 1. Feature Overview... 2 2. Relational Database Support... 3 3. Performance and Scalability for Relational Data... 3 4. XML Input and Output... 4

More information

The Halting Problem is Undecidable

The Halting Problem is Undecidable 185 Corollary G = { M, w w L(M) } is not Turing-recognizable. Proof. = ERR, where ERR is the easy to decide language: ERR = { x { 0, 1 }* x does not have a prefix that is a valid code for a Turing machine

More information

Inside the PostgreSQL Query Optimizer

Inside the PostgreSQL Query Optimizer Inside the PostgreSQL Query Optimizer Neil Conway neilc@samurai.com Fujitsu Australia Software Technology PostgreSQL Query Optimizer Internals p. 1 Outline Introduction to query optimization Outline of

More information

A Comparison of Database Query Languages: SQL, SPARQL, CQL, DMX

A Comparison of Database Query Languages: SQL, SPARQL, CQL, DMX ISSN: 2393-8528 Contents lists available at www.ijicse.in International Journal of Innovative Computer Science & Engineering Volume 3 Issue 2; March-April-2016; Page No. 09-13 A Comparison of Database

More information

JSquash: Source Code Analysis of Embedded Database Applications for Determining SQL Statements

JSquash: Source Code Analysis of Embedded Database Applications for Determining SQL Statements JSquash: Source Code Analysis of Embedded Database Applications for Determining SQL Statements Dietmar Seipel 1, Andreas M. Boehm 1, and Markus Fröhlich 1 University of Würzburg, Department of Computer

More information

Cleo Communications. CUEScript Training

Cleo Communications. CUEScript Training Cleo Communications CUEScript Training Introduction RMCS Architecture Why CUEScript, What is it? How and Where Scripts in RMCS XML Primer XPath Pi Primer Introduction (cont.) Getting Started Scripting

More information

Invited Expert on XForms and HTML Working Group

Invited Expert on XForms and HTML Working Group Author: Mark Birbeck CEO and CTO x-port.net Ltd. Invited Expert on XForms and HTML Working Group mailto:mark.birbeck@x-port.net http://www.x-port.net/ http://www.formsplayer.com/ Introduction We need to

More information

Schematron Validation and Guidance

Schematron Validation and Guidance Schematron Validation and Guidance Schematron Validation and Guidance Version: 1.0 Revision Date: July, 18, 2007 Prepared for: NTG Prepared by: Yunhao Zhang i Schematron Validation and Guidance SCHEMATRON

More information

Introduction to SQL and SQL in R. LISA Short Courses Xinran Hu

Introduction to SQL and SQL in R. LISA Short Courses Xinran Hu Introduction to SQL and SQL in R LISA Short Courses Xinran Hu 1 Laboratory for Interdisciplinary Statistical Analysis LISA helps VT researchers benefit from the use of Statistics Collaboration: Visit our

More information

Terms and Definitions for CMS Administrators, Architects, and Developers

Terms and Definitions for CMS Administrators, Architects, and Developers Sitecore CMS 6 Glossary Rev. 081028 Sitecore CMS 6 Glossary Terms and Definitions for CMS Administrators, Architects, and Developers Table of Contents Chapter 1 Introduction... 3 1.1 Glossary... 4 Page

More information

Introduction to Web Services

Introduction to Web Services Department of Computer Science Imperial College London CERN School of Computing (icsc), 2005 Geneva, Switzerland 1 Fundamental Concepts Architectures & escience example 2 Distributed Computing Technologies

More information

Real SQL Programming 1

Real SQL Programming 1 Real 1 We have seen only how SQL is used at the generic query interface an environment where we sit at a terminal and ask queries of a database. Reality is almost always different: conventional programs

More information

XSL Elements. xsl:copy-of

XSL Elements. xsl:copy-of XSL Elements The following elements are discussed on this page: xsl:copy-of xsl:value-of xsl:variable xsl:param xsl:if xsl:when xsl:otherwise xsl:comment xsl:import xsl:output xsl:template xsl:call-template

More information

CHAPTER 1 INTRODUCTION

CHAPTER 1 INTRODUCTION CHAPTER 1 INTRODUCTION 1.1 Introduction Nowadays, with the rapid development of the Internet, distance education and e- learning programs are becoming more vital in educational world. E-learning alternatives

More information

Oracle SQL. Course Summary. Duration. Objectives

Oracle SQL. Course Summary. Duration. Objectives Oracle SQL Course Summary Identify the major structural components of the Oracle Database 11g Create reports of aggregated data Write SELECT statements that include queries Retrieve row and column data

More information

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

CST6445: Web Services Development with Java and XML Lesson 1 Introduction To Web Services 1995 2008 Skilltop Technology Limited. All rights reserved. CST6445: Web Services Development with Java and XML Lesson 1 Introduction To Web Services 1995 2008 Skilltop Technology Limited. All rights reserved. Opening Night Course Overview Perspective Business

More information

XSLT File Types and Their Advantages

XSLT File Types and Their Advantages Virtual Filesystems Are Virtual Office Documents Ben Martin Abstract Use libferris, XML and XSLT to create virtual filesystems and virtual documents. Virtual filesystems can be made into writable virtual

More information

14 Databases. Source: Foundations of Computer Science Cengage Learning. Objectives After studying this chapter, the student should be able to:

14 Databases. Source: Foundations of Computer Science Cengage Learning. Objectives After studying this chapter, the student should be able to: 14 Databases 14.1 Source: Foundations of Computer Science Cengage Learning Objectives After studying this chapter, the student should be able to: Define a database and a database management system (DBMS)

More information

10CS73:Web Programming

10CS73:Web Programming 10CS73:Web Programming Question Bank Fundamentals of Web: 1.What is WWW? 2. What are domain names? Explain domain name conversion with diagram 3.What are the difference between web browser and web server

More information

Novell Identity Manager

Novell Identity Manager AUTHORIZED DOCUMENTATION Manual Task Service Driver Implementation Guide Novell Identity Manager 4.0.1 April 15, 2011 www.novell.com Legal Notices Novell, Inc. makes no representations or warranties with

More information

Generating XML from Relational Tables using ORACLE. by Selim Mimaroglu Supervisor: Betty O NeilO

Generating XML from Relational Tables using ORACLE. by Selim Mimaroglu Supervisor: Betty O NeilO Generating XML from Relational Tables using ORACLE by Selim Mimaroglu Supervisor: Betty O NeilO 1 INTRODUCTION Database: : A usually large collection of data, organized specially for rapid search and retrieval

More information

Technical paper review. Program visualization and explanation for novice C programmers by Matthew Heinsen Egan and Chris McDonald.

Technical paper review. Program visualization and explanation for novice C programmers by Matthew Heinsen Egan and Chris McDonald. Technical paper review Program visualization and explanation for novice C programmers by Matthew Heinsen Egan and Chris McDonald Garvit Pahal Indian Institute of Technology, Kanpur October 28, 2014 Garvit

More information