139
XML: eXtensible Markup Language La lingua franca del Web

XML: eXtensible Markup Language

Embed Size (px)

DESCRIPTION

XML: eXtensible Markup Language. La lingua franca del Web. Isole di Informazione. Il Problema. Utenti diversi con diversi software vendors e.g. MS Word, WordPerfect & XML Editor. Problema di Esempio. - PowerPoint PPT Presentation

Citation preview

Page 1: XML: eXtensible Markup Language

XML: eXtensible Markup Language

La lingua franca del Web

Page 2: XML: eXtensible Markup Language

XML Trieste, 19 April 2023 - slide 2

Isole di Informazione

Word

ED I WordPerfect

C ADGraphics

XMLD atabase

Page 3: XML: eXtensible Markup Language

XML Trieste, 19 April 2023 - slide 3

Il Problema

Utenti diversi con diversi software vendors

e.g. MS Word, WordPerfect & XML Editor

Page 4: XML: eXtensible Markup Language

XML Trieste, 19 April 2023 - slide 4

Problema di Esempio

WP or XML Editor

27 January 1999

Dear John,

How are you doing?Isn’t it about time you visited?

See you soon,

Peter

WP Output

\window\fracwidth\dectd\sdknone\linemod0\linex0\col1\endnhere\pard\plain\sl\li360\sl1280\tx720\tx1080\tx1440\tx1800\tx2160\f22{\v 93020401}\par\pard\sl\qr\li360\s1280\tx720\tx1080\tx1440\tx216027 January 1999\par\pard\sl\li360\sb1440\sa240\s1280\tx720\tx1080\tx1440\tx1800\tx2160Dear John,\par\pard\sl\li360\s1280\tx720\tx1080\tx1440\tx1800\tx2160How are you doing?\par Isn\rquote t it{\i about time} you visited?\par\pard\sl\li360\sb240\s1280\tx720\tx1080\tx1440\tx1800\tx2160See you soon,\par\pard\sl\li360\sb1440\s1260Peter\par\pard\plain\f20\fs28\par

XML Output

<letter filecode=”93020401”><date>27 January 1999</date><<greeting>&salute; John,>/graating><body><para>How are you doing?</papa><para>Isn’t it Bold>about time</bold> you visited?</para><body><closing>See you soon, </closing><sig>Peter</sig></letter>

Page 5: XML: eXtensible Markup Language

XML Trieste, 19 April 2023 - slide 5

‘Message in the Bottle ‘

ÐÏ^Qࡱ^Zá^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@>^@^C^@þÿ^@^F^@^@^@^@^@^@^@^@^@^@^@^A^@^@^@#^@^@^@^@^@^@^@^@^P^@^@%^@^@^@^A^@^@^@þÿÿÿ^@^@^@^@"^@^@^@ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿì¥Á^@q^@^D^@^@^@^R¿^@^@^@^@^@^@^P^@^@^@^@^@^D^@^@Ç^G^@^@^N^@bjbjt+t+^@^@^@

^@Some Quotations from the Universal Library^M1 Famous Quotes^M1.1 By William I^M[2, Sonnet XVIII]^MShall I compare thee to a summer's day?^MThou art more lovely and more temperate.^MRough winds do shake the darling buds of May,^MAnd summer's lease hath all too short a date.^MSometime too hot the eye of heaven shines,^MAnd often is his gold complexion dimmed.^MAnd every fair from fair some declines,^MBy chance or nature's changing course untrimmed.^MBut thy eternal summer shall not fade,^MNor lose possession of that fair thou owest,^MNor shall Death brag thou wander'st in his shade^MWhile in eternal lines to time thou growest.^MSo long as men can breathe, or eyes can see,^MSo long live this, and this gives life to thee.^M1.2 By William II^M[1, p.265]^M\223The obvious mathematical breakthrough would be development of^Man easy way to factor large prime numbers."^MReferences^M[1] W. H. Gates. The Road Ahead. Viking Penguin, 1995.^M[2] W. Shakespeare. The Sonnets of Shakespeare.609.^M^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@

\documentclass{article}

\begin{document}

\title{Some Quotations from the Universal Library}

...

\section{Famous Quotes}

\subsection{By William I}

\textbf{\cite[Sonnet XVIII]{shakespeare-sonnets-1609}}

\begin{verse}

Shall I compare thee to a summer's day?\\

Thou art more lovely and more temperate. \\

Rough winds do shake the darling buds of May, \\

And summer's lease hath all too short a date. \\

Sometime too hot the eye of heaven shines, \\

And often is his gold complexion dimmed. \\

\qquad So long as men can breathe, or eyes can see,\\

\qquad So long live this, and this gives life to thee. \\

\end{verse}

...

\bibliographystyle{abbrv}

\bibliography{msg}

\end{document}

<?xml version="1.0"?>

<universal_library>

<books>

<book> <title>Some Quotations from the Universal Library</title>

<section> <title>Famous Quotes</title>

<subsection> <title>By William I</title>

<quote bibref="shakespeare-sonnets-1609">

<title>Sonnet XVIII</title>

<verse>

<line>Shall I compare thee to a summer's day?</line>

<line>Thou art more lovely and more temperate. </line>

<line>Rough winds do shake the darling buds of May, </line>

</verse>

<subsection> <title>By William II</title>

<quote bibref="gates-road-ahead-1995">

<title>Page 265</title>

<line>``The obvious mathematical breakthrough would be development of an easy way to factor large prime numbers.’’</line>

</quote>

</subsection>

</section>

</book>

</books>

</universal_library>

• Grado di "self-description":

Per niente OKNon male

Page 6: XML: eXtensible Markup Language

XML Trieste, 19 April 2023 - slide 6

All’inizio ..... …. Era la nascita del Web (Tim Berners-Lee, 1992)

Internetcommunication

protocols

EmailNewsFtp

HTML(data/display)

Hello ThereHere’s a zippy HTML page, with lots of Colors and Links ...!!!Fun, Eh?

• HTMLWeb

Server

HTTP(transfer)

Db & other

software

• HTTP

URLs(location

e.g -- http://www.foo.org/boo.html )

• URL

Page 7: XML: eXtensible Markup Language

XML Trieste, 19 April 2023 - slide 7

I tre concetti di baseHTTP -- HyperText Transfer Protocol

Un protocollo per trasferire dati tra macchine su Internet

URL -- Uniform Resource Locator Uno schema per referenziare, usando una semplice stringa

di testo, la specifica locazione di una risorsa (Web page, audio file, program) da qualche parte su Internet (e.g. http://www.utoronto.ca/ian/talks/ )

HTML -- HyperText Markup Language Un markup language per codificare informazioni per

potere essere lette / visualizzate HTTP e URLs hanno superato il test del tempo

Ma dal 1996, HTML ha iniziato a mostrare l’età ....

Page 8: XML: eXtensible Markup Language

XML Trieste, 19 April 2023 - slide 8

Semplice Esempio di HTMLHTML (not XML) Markup<HTML><HEAD> <TITLE>The XML Specification Guide --

Website Home Page </TITLE> <LINK REL="stylesheet" HREF="style.css"></HEAD><BODY BGCOLOR="#FFFFFF" TEXT="black" LINK="#0066CB" ALINK="#00A000" VLINK="#808080"

>

<TABLE WIDTH="100%" CELLPADDING="0" CELLSPACING="0" BORDER="0">

<TR> <TD VALIGN="top" ALIGN="left"><FONT

CLASS="toolbar" FACE="arial,helvetica" SIZE="-1">The XML

Specification Guide </FONT></TD>…….. More tags and text ….

Browser Rendering

Page 9: XML: eXtensible Markup Language

XML Trieste, 19 April 2023 - slide 9

Problemi con HTMLHTML progettato per un ruolo solo - documenti semplici ipertestuali, con interazioni semplici con l’utente (forms, etc.). Ma la gente ben presto ha voluto visualizzare altri tipi di dait:

Espressioni matematiche, testi letterari grapica, multimedia, contenuti interattivi ... Form commerciai, ordini di acquisto, dati generici

... e “connettere” queste parti assieme (in modo che possano interagire)

... e dinamicamente miscelare/editare blocchi di dati assieme

... e costruire network dinamiche che scambiano informazioni

... e far si che tutto questo funzioni, dovunque.

Page 10: XML: eXtensible Markup Language

XML Trieste, 19 April 2023 - slide 10

Problemi con HTML (2)HTML è un formato di visualizzazione

Buono per il rendering delle informazioni - ma... Non contiene informazioni sulla struttura dei documenti Quindi non va bene per documentoi lunghi e strutturati

Stile e contenuto sono intrinsicamente collegati

Risulta difficoltosa la manutenzione Informazioni possono venire perse in quanto si descrive

solo la forma, non il significato (semantica)

Page 11: XML: eXtensible Markup Language

XML Trieste, 19 April 2023 - slide 11

Lo scopo di HTML era troppo limitato

Singolo modello per I dati (hypertext text) Sintassi troppo macchinosa ... È facile creare HTML che

viene male-intrpretato da altri sistemi Risultato:

Non è possibile creare dati arbitrari che possano essere ‘capiti’ ovunque

HTML

presentazioneDi differenti Tipi di dati

Modellazionedi tipi di dati

differenti

interscambio dati tra

macchine

Evolution

Web

Page 12: XML: eXtensible Markup Language

XML Trieste, 19 April 2023 - slide 12

Markup Languages

La parola “Markup” deriva dall’industria della stampa

Istruzioni di stili dettagliati per tipografie Normalmente scritte a mano sulle copie (eg sottolineature di

testo che deve essere settato in italico).

Markup languages fanno lo stesso per documenti computerzzati.Markup aggiunge una struttura logica ad un documento, o indica come debba essere il layout (su carta o su video).Markup languages sono un set di istruzioni che si prestano ad un processo automatico.

Page 13: XML: eXtensible Markup Language

XML Trieste, 19 April 2023 - slide 13

Markup Languages (cont.)

Di solito una sequenza di caratteri in un file testo che indica una struttura oppure un comportamento del contenuto.Per esempio (in HTML)

This is <B>bold</B> and this is <I>italic</I> <TITLE>This is the title.</TITLE>

Markup possono essere creati editando direttamente I simboli, ma di solito questo viene mascherato agli utenti finali.Esempi

HTML RTF Hytime

Page 14: XML: eXtensible Markup Language

XML Trieste, 19 April 2023 - slide 14

Generalised Markup Languages

Linguaggio proprietari di markup creano problemi.

Generalised markup languages sono linguaggi per la definizione di markup languages.

Metalanguages

SGML

Page 15: XML: eXtensible Markup Language

XML Trieste, 19 April 2023 - slide 15

SGML - Storia

Standard Generalised Markup Language1969 - GML da IBM

text editing formatting information retrieval

1980 SGML prima pubblicazione1980’s SGML adottato da US IRS & DOD1986 - ISO standardISO 8879: Information processing--Text and office systems--Standard Generalized Markup Language (SGML), ([Geneva]: ISO, 1986).

Page 16: XML: eXtensible Markup Language

XML Trieste, 19 April 2023 - slide 16

SGML

SGML definisce un sistema di tag markup<TAG>This is a pair of SGML

tags</TAG>SGML è uno standard per specificare un tag set.Document Type Definition (DTD)SGML documenti contengono elementi strutturali che possono essere descritti indipendentemente da come vengono visualizzati.SGML application.HTML è una SGML application.

Page 17: XML: eXtensible Markup Language

XML Trieste, 19 April 2023 - slide 17

Benefici di SGML

Documenti sono creati pensando in termini di struttura piuttosto che di formato (che può cambiare nel tempo).

Documenti sono portabili perchè qualsiasi SW SGML compliant li può interpretare riferendosi al DTD.

Documenti originariamente creati per un media possono facilmente essere riclicati su altri media, come ad esempio un display di PC.

Page 18: XML: eXtensible Markup Language

XML Trieste, 19 April 2023 - slide 18

XML

Extensible Markup LanguageIniziativa del W3C, che ha l’obiettivo di mettere a punto I problemi ed I limiti dell’ HTML.XML descrive una sintassi per il marking di documents in modo tale che strutture complesse possano essere facilmente descritte.Queste strutture possono essere usate come il fondamento per diversi tipi di processi eg:

Documentio umani leggibili Agenti Automatizzati Data interchange tra sistemi disparati

Universal Data FormatUniversal Data Format

Page 19: XML: eXtensible Markup Language

XML Trieste, 19 April 2023 - slide 19

Cos’è XML?

XML è basato su SGML, ma è sostanzialmente una forte semplificazione per l’uso del WWW.Come SGML, XML è metalinguaggio

Definizione arbitraria di elementi <TITLE> <PARAGRAPH> <ChapterHeading> <PRICE>

<PARTNUMBER> <MANUFACTUER> <ExamGrade>

La sintassi può essere (opzionalmente) descritta da un DTD Documenti Validi – hanno un DTD Documenti non ‘Well formed’ non hanno un DTD

Stile e contenuto sono completamente separati XML documents contengono testo Stile viene specificato in stylesheets

Page 20: XML: eXtensible Markup Language

XML Trieste, 19 April 2023 - slide 20

contiene regole esplicite per determinare dove le strutture dei documenti iniziano e finioscono

Tende a raggiungere un compromesso tra flessibilità, semplicità e leggibilità sia da parte di umani che di macchine

provvede uno standard per I dati con cui codificare I contenuti, semantica e schema per una grande varietà di casi

XML

Page 21: XML: eXtensible Markup Language

XML Basic

Page 22: XML: eXtensible Markup Language

XML Trieste, 19 April 2023 - slide 22

Struttura di documenti XMLStruttura Logica

Elementi

Struttura Fisica Entitià

Document

UnitSub-unit

Page 23: XML: eXtensible Markup Language

XML Trieste, 19 April 2023 - slide 23

XML: gerarchia

Document

UnitSub-unit

Document

Unit

Sub-unit

N.B. Tutti gli elementi devono essere annidati

XML può essere descritto in una Gerarchia ad albero

Parent

Child

Sibling

Page 24: XML: eXtensible Markup Language

XML Trieste, 19 April 2023 - slide 24

Database ed XMLIl contenuto di Database possono essere presentati in XML

XML processor può accedere DBMS o file system e convertire dati in XML

Web server possono servire contenuti in XML o HTML

Image from http://www-4.ibm.com/software/developer/education/tutorial-prog/overview.html

Page 25: XML: eXtensible Markup Language

XML Trieste, 19 April 2023 - slide 25

XML basics

Un documento XML è composto di XML elements.

Un elemento XML può contenere elementi inglobati formando I suoi subelements.

content

<start-tag> </end-

tag>

element

Page 26: XML: eXtensible Markup Language

XML Trieste, 19 April 2023 - slide 26

Ciascun documento XML ha un root element.

Un elemento XML può contenere informazioni addizionali descritte dai suoi attributes.

<start-tag name = ‘value’>

Attribute

Page 27: XML: eXtensible Markup Language

XML Trieste, 19 April 2023 - slide 27

<?xml version=‘1.0’?>

<!DOCTYPE Journal SYSTEM ‘journal.dtd’>

<Journal>

<Title>The Computer World</Title>

<Editors>J.Brown and P.White</Editors>

<Volume>1</Volume>

<Month>April</Month>

<Year>2000</Year>

<Article Title=‘Distributed Technologies’ Authors=‘W.Green’

Pages=‘5-20’>

<Abstract>This article describes…</Abstract>

</Article>

<Article Title=‘The Internet’ Authors=‘A.Black’ Pages=‘5-20’>

<Abstract>This Internet…</Abstract>

</Article>

…..

</Journal>

root

elements

attributes

(ex) XML document - Journal.xml

Page 28: XML: eXtensible Markup Language

XML Trieste, 19 April 2023 - slide 28

Un Esempio di Documento XML

<!--?XML version="1.0"?-->

<!DOCTYPE memo PUBLIC "memo.dtd"> <!--A very simple XML document -->

<MEMO> <FROM>Tim Brailsford</FROM> <TO>A.N. Student</TO> <SUBJECT>Your Work</SUBJECT> <DATE>14th February, 2000</DATE> <MESSAGE> <P>This is to confirm that I received your work</P> <P>Thanks, Tim.</P> </MESSAGE></MEMO>

Page 29: XML: eXtensible Markup Language

XML Trieste, 19 April 2023 - slide 29

Un Esempio di Documento XML

<!--?XML version="1.0"?-->

<!DOCTYPE memo PUBLIC "memo.dtd"> <!--A very simple XML document -->

<MEMO> <FROM>Tim Brailsford</FROM> <TO>A.N. Student</TO> <SUBJECT>Your Work</SUBJECT> <DATE>14th February, 2000</DATE> <BODY> <P>This is to confirm that I received your work</P> <P>Thanks, Tim.</P> </BODY></MEMO>

<!ELEMENT MEMO (FROM, TO, SUBJECT, DATE, MESSAGE)><!ELEMENT FROM (#PCDATA)><!ELEMENT TO (#PCDATA)><!ELEMENT SUBJECT (#PCDATA)><!ELEMENT DATE (#PCDATA)><!ELEMENT MESSAGE (P+)><!ELEMENT P (#PCDATA)>

Page 30: XML: eXtensible Markup Language

XML Trieste, 19 April 2023 - slide 30

Contents vs StyleXML tags contengono significato non formattazione.Questo permette di estrarre informazioni ulterioriConsidera l’esempio del nome scientifico degli animali.

I nomi sceintifici sono in latino Per convenzione essi sono sempre stampati in italico

The scientific name of the domestic dogis Canis familiaris, and of the domestic cat is Felis catus.

Page 31: XML: eXtensible Markup Language

XML Trieste, 19 April 2023 - slide 31

Contents vs StyleXML tags contain meaning not appearance.This allows extra information to be extractedConsider the example of the scientific names of animals.

scientific names are in latin by convention they are always printed in italics

The scientific name of the domestic dogis Canis familiaris, and of the domestic cat is Felis catus.

In HTML

<P>The <I>scientific</I> name of the domestic dog is <I>Canis familiaris</I>, and of the domestic cat is <I>Felis catus.</I></P>

NB non c’è distinzione tra nomi scientifici ed enfasi.

In HTML

<P>The <I>scientific</I> name of the domestic dog is <I>Canis familiaris</I>, and of the domestic cat is <I>Felis catus.</I></P>

NB non c’è distinzione tra nomi scientifici ed enfasi.

Page 32: XML: eXtensible Markup Language

XML Trieste, 19 April 2023 - slide 32

Contents vs StyleXML tags contain meaning not appearance.This allows extra information to be extractedConsider the example of the scientific names of animals.

scientific names are in latin by convention they are always printed in italics

The scientific name of the domestic dogis Canis familiaris, and of the domestic cat is Felis catus.

In XML

<P>The <emph>scientific</emph> name of the domestic dog is <sci>Canis familiaris</sci>, and of the domestic cat is <sci>Felis catus.</sci></P>

NB enfasi e nomi sceintifici sono tag diversi. Essi possono essere Visualizzati in italico, ma anche essere trattati separatamente.

In XML

<P>The <emph>scientific</emph> name of the domestic dog is <sci>Canis familiaris</sci>, and of the domestic cat is <sci>Felis catus.</sci></P>

NB enfasi e nomi sceintifici sono tag diversi. Essi possono essere Visualizzati in italico, ma anche essere trattati separatamente.

Page 33: XML: eXtensible Markup Language

XML Trieste, 19 April 2023 - slide 33

Validazione di XML

"Well Formed" XML documents Un "Well Formed" XML document ha una corretta sintassi XML "Valid" XML documents Un "Valid" XML document è un "Well Formed" XML document, che anche risulta conforme alle regole Document Type Definition (DTD) or XML Schema Definition (XSD). Errori provocano lo stop se il XML è non valido.

Page 34: XML: eXtensible Markup Language

XML Trieste, 19 April 2023 - slide 34

Validazione di XML (Cont.) - XML DTD

DTD definisce la struttura dei documenti con una lista di elementi legali. Internal DOCTYPE declaration External DOCTYPE declaration

Page 35: XML: eXtensible Markup Language

XML Trieste, 19 April 2023 - slide 35

Esempio di Internal DTD<?xml version="1.0"?><!DOCTYPE note [ <!ELEMENT note (to,from,heading,body)> <!ELEMENT to (#PCDATA)> <!ELEMENT from (#PCDATA)> <!ELEMENT heading (#PCDATA)> <!ELEMENT body (#PCDATA)> ]> <note>

<to>Jo</to> <from>Mary</from> <heading>Reminder</heading> <body>Don't forget me this weekend</body>

</note>

Page 36: XML: eXtensible Markup Language

XML Trieste, 19 April 2023 - slide 36

Esempio di External DTD<?xml version="1.0"?><!DOCTYPE note SYSTEM "note.dtd"> <note>

<to>Jo</to> <from>Jani</from>

<heading>Reminder</heading> <body>Don't forget me this weekend!</body> </note>--- note.dtd ---<!ELEMENT note (to,from,heading,body)> <!ELEMENT to (#PCDATA)> <!ELEMENT from (#PCDATA)> <!ELEMENT heading (#PCDATA)> <!ELEMENT body (#PCDATA)>

Page 37: XML: eXtensible Markup Language

XML Trieste, 19 April 2023 - slide 37

Perchè usare DTD? Con DTD, ciascun file XML può portare con se una descrizione del suo formato. Con un DTD, gruppi di persone indipendenti possono accordarsi sull’uso di un DTD in comune per lo scmbio di dati. La tua applicazione può usare un standard DTD per verificare che I dati ricevuti dall’esterno siano validi. E’ possibile usare un DTD per verificare I propri dati

Page 38: XML: eXtensible Markup Language

XML Trieste, 19 April 2023 - slide 38

Validazione di XML (Cont.) - XML Schema

Un XML schema descrive la struttura di un documento XML .

Definisce elementi che possono essere usati nel documento

Definisce attributi contenuti nel documento Definisce quali elementi sono child elements Definisce l’ordine dei child elements Definisce il numero di child objects Definisce se un elemento è vuoto o può includere del testo Definisce I data types per elementi ed attributi Definisce valori di default e valori fissati per elementi ed

attributi

Page 39: XML: eXtensible Markup Language

XML Trieste, 19 April 2023 - slide 39

XML Schema è RaccommandatoXML Schemas sono estendibili per future estensioniXML Schemas sono più ricchi ed utili dei DTD XML Schemas sono scritti in XML XML Schemas supporta data types XML Schemas supporta namespaces

Page 40: XML: eXtensible Markup Language

XML Trieste, 19 April 2023 - slide 40

StylesheetsStile in XML è definito da stylesheetsStyleseets definiscono l’apparenza fisica del documento, ed il suo comportamentoStylesheets non sono un concetto nuovo

Word processors/DTP SGML HTML 4.0

Stylesheet languages CSS (Cascading StyleSheets) – sviluppato per HTML XSL – sviluppato specificataemnte per XML

Page 41: XML: eXtensible Markup Language

XML Trieste, 19 April 2023 - slide 41

Perchè due Style Sheet languages? CSS XSL

Può essere usato con HTML? yes noPuò essere usato con XML? yes yesTransformation language? no yesSintassi CSS XML

Page 42: XML: eXtensible Markup Language

XML Trieste, 19 April 2023 - slide 42

Quale debbo usare?

Usare CSS quando si può, usare XSL quando si deve. - CSS è molto più semplice da utilizzare, da imparare, ma ha alcune limitazioni. Alcune cose non possono essere fatte con CSS, o con CSS da soli. Allora serve XSL, oppure una trasformazione di XSL.

Page 43: XML: eXtensible Markup Language

XML Trieste, 19 April 2023 - slide 43

Ruolo di XSL e di CSS.

Page 44: XML: eXtensible Markup Language

XML Trieste, 19 April 2023 - slide 44

Visualizzazione di XML con CSSA pure xml file cd_catalog .xml

<?xml version="1.0" encoding="ISO-8859-1" ?> <!-- Edited with XML Spy v4.2   --> <CATALOG> <CD>

<TITLE>Empire Burlesque</TITLE><ARTIST>Bob Dylan</ARTIST>

<COUNTRY>USA</COUNTRY> <COMPANY>Columbia</COMPANY>

<PRICE>10.90</PRICE> <YEAR>1985</YEAR> </CD></CATALOG>

Page 45: XML: eXtensible Markup Language

XML Trieste, 19 April 2023 - slide 45

Visualizzazione di XML con CSS

Uno CSS style sheet cd_catalog.css

CATALOG

{ background-color: #ffffff; width: 100%; } CD { display: block; margin-bottom: 30pt; margin-left: 0; } TITLE { color: #FF0000; font-size: 20pt; } ARTIST { color: #0000FF; font-size: 20pt; } COUNTRY,PRICE,YEAR,COMPANY { Display: block; color: #000000; margin-left: 20pt; }

Page 46: XML: eXtensible Markup Language

XML Trieste, 19 April 2023 - slide 46

XML file, con un CSS aggiunto

<?xml version="1.0" encoding="ISO-8859-1"?> <?xml-stylesheet type="text/css" href="cd_catalog.css"?>

<CATALOG> <CD>

<TITLE>Empire Burlesque</TITLE> <ARTIST>Bob Dylan</ARTIST>

<COUNTRY>USA</COUNTRY> <COMPANY>Columbia</COMPANY> <PRICE>10.90</PRICE>

<YEAR>1985</YEAR> </CD>

</CATALOG>

Page 47: XML: eXtensible Markup Language

XML Trieste, 19 April 2023 - slide 47

Visualizzazione di cd_catalog.xml con css

Page 48: XML: eXtensible Markup Language

XML Trieste, 19 April 2023 - slide 48

Visualizzazione di XML con XSL

<?xml version="1.0" ?>

<?xml-stylesheet type="text/xsl" href="simple.xsl"?> <breakfast_menu>

<food><name>Belgian Waffles</name> <price>$5.95</price> <description>two of our famous Belgian Waffles with plenty of real maple syrup</description>

<calories>650</calories> </food><food>

<name>Strawberry Belgian Waffles</name>   <price>$7.95</price>   <description>light Belgian waffles covered with

strawberries and whipped cream</description>   <calories>900</calories>

</food> </breakfast_menu>

Page 49: XML: eXtensible Markup Language

XML Trieste, 19 April 2023 - slide 49

Visualizzazione di XML con XSL

<?xml version="1.0“?><html xsl:version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"

xmlns="http://www.w3.org/TR/xhtml1/strict"><body style="font-family:Arial,helvetica,sans-serif;font-size:12pt; background-color:#EEEEEE">

<xsl:for-each select="breakfast_menu/food"><div style="background-color:teal;color:white;padding:4px">

<span style="font-weight:bold;color:white">  <xsl:value-of select="name" />   </span>   <xsl:value-of select="price" />   </div>

<div style="margin-left:20px;margin-bottom:1em;font-size:10pt">  <xsl:value-of select="description" />

<span style="font-style:italic">  (   <xsl:value-of select="calories" />   calories per serving)   </span>  </div>  </xsl:for-each> </body>

A XSL style sheet simple.xsl

Page 50: XML: eXtensible Markup Language

XML Trieste, 19 April 2023 - slide 50

Visualizzazione di XML con XSL

Page 51: XML: eXtensible Markup Language

XML Trieste, 19 April 2023 - slide 51

XSL – Più che uno Style Sheet XSL ……. Oltre al foglio stileXPath (un linguaggio per definire parti di un documento XML – un linguaggio per ola scrittura di cammini - path) XQuery (un linguaggio che permette di estrarre porzioni di un documento)XSLT (un linguaggio per trasformare documenti XML) XSL Formatting Objects (un vocabolario per la formattazione di documenti XML)

Page 52: XML: eXtensible Markup Language

XML Trieste, 19 April 2023 - slide 52

XLink e XPointer

Aggiungono nuove funzionalità a XML per creare ipertesti e ipermedia

XLink consente di definire link verso l’esterno e multidirezionali

XPointer consente di definire locazioni in documenti XML

Vengono usati in combinazione, anche se sono uno indipendente dall’altro

Page 53: XML: eXtensible Markup Language

XML Trieste, 19 April 2023 - slide 53

Path expressions (Xpath)

Consente la scrittura di path in un documento con lo scopo di selezionare parti di docuemnti XML. Nodo corrente.. Nodo padre del nodo corrente/ nodo radice, o figlio del nodo corrente// discendente del nodo corrente@ attributo del nodo corrente* qualsiasi nodo[ ] predicato[n] posizione

Page 54: XML: eXtensible Markup Language

XML Trieste, 19 April 2023 - slide 54

Esempi di path expressions

Una path expression può iniziare con document(stringa_documento)

Restituisce la radice del documento specificato

A partire dalla radice del documento si possono specificare delle espressioni per estrarre il contenuto desideratoEsempio: document(“libri.xml”)/Elenco/LibroRestituisce l’insieme di tutti i libri contenuti nell’elenco che si trovano

nel documento libri.xml

Page 55: XML: eXtensible Markup Language

XML Trieste, 19 April 2023 - slide 55

Esempi di path expressionsdocument(“libri.xml”)/Elenco/Libro

<Libro disponibilità=‘S’> <Titolo>Il Signore degli Anelli</Titolo> <Autore>J.R.R. Tolkien</Autore> <Data>2002</Data> <ISBN>88-452-9005-0</ISBN> <Editore>Bompiani</Editore> </Libro> <Libro disponibilità=‘N’> <Titolo>Il nome della rosa</Titolo> <Autore>Umberto Eco</Autore> <Data>1987</Data> <ISBN>55-344-2345-1</ISBN> <Editore>Bompiani</Editore> </Libro> <Libro disponibilità=‘S’> <Titolo>Il sospetto</Titolo> <Autore>F. Dürrenmatt</Autore> <Data>1990</Data> <ISBN>88-07-81133-2</ISBN> <Editore>Feltrinelli</Editore> </Libro>

<?xml version="1.0"?><Elenco> <Libro disponibilità=‘S’> <Titolo>Il Signore degli Anelli</Titolo> <Autore>J.R.R. Tolkien</Autore> <Data>2002</Data> <ISBN>88-452-9005-0</ISBN> <Editore>Bompiani</Editore> </Libro> <Libro disponibilità=‘N’> <Titolo>Il nome della rosa</Titolo> <Autore>Umberto Eco</Autore> <Data>1987</Data> <ISBN>55-344-2345-1</ISBN> <Editore>Bompiani</Editore> </Libro> <Libro disponibilità=‘S’> <Titolo>Il sospetto</Titolo> <Autore>F. Dürrenmatt</Autore> <Data>1990</Data> <ISBN>88-07-81133-2</ISBN> <Editore>Feltrinelli</Editore> </Libro></Elenco>

Page 56: XML: eXtensible Markup Language

XML Trieste, 19 April 2023 - slide 56

XSL cos’è allora ???XSL è l’unione di tre linguaggi

Xpath specifica della porzione di documento a cui la regola XSL si riferisceXLS Transformation parte che consente di scrivere le regole di trasformazione documentaleXSL Formating Object: un linguaggio per la specifica della resa del documento

Page 57: XML: eXtensible Markup Language

XML Trieste, 19 April 2023 - slide 57

XSLT

XSL = XSLT + XSL FO

XSLT (XSL Transformation) Trasforma un documento XML in un altro documento XML o altro tipo di documento (HTML, ecc.)Può:

aggiungere nuovi elementi; rimuovere elementi presenti; riorganizzare gli elementi; decidere quali visualizzare, ecc.

XSL FO (Formatting Object) contiene le istruzioni per formattare l’output di un documento XML

Page 58: XML: eXtensible Markup Language

XML Trieste, 19 April 2023 - slide 58

XSLT

Utilizza path expression per definire le parti del documento sul quale effettuare le trasformazioniPer gli elementi sui quali devono essere applicate le trasformazioni vengono definiti dei template

Page 59: XML: eXtensible Markup Language

XML Trieste, 19 April 2023 - slide 59

Template

Per assegnare uno stile ad un particolare elemento XML oppure per applicare delle trasformazioni si usa un template nel foglio di stileIl foglio di stile può essere eseguito da un processore XSLT che scandisce il documento XML sorgente, identifica gli elementi per i quali è stato definito un template nel foglio di stile, ed effettua le azioni specificate nel template.

Page 60: XML: eXtensible Markup Language

XML Trieste, 19 April 2023 - slide 60

Esempio di template (1)

<xsl:template match=paragrafo> … <xsl:template>

La clausola match definisce su quali elementi si applica il templatePer ogni elemento si possono specificare più template (si applica il più specifico oppure si assegna una priorità per l’applicazione)Un template può specificare lo stile per più elementi

Page 61: XML: eXtensible Markup Language

XML Trieste, 19 April 2023 - slide 61

Match

Si possono specificare gli elementi figli da processare utilizzando i seguenti simboli:

| operatore or. Elemento corrente// discendenti/ figlio.. Padre@ identifica un attributofirst-of-any(), first-of-type(), last-of-any(), last-of-type()

Page 62: XML: eXtensible Markup Language

XML Trieste, 19 April 2023 - slide 62

Esempio: documento<?xml version="1.0"?><?xml version="1.0"?> <AUCTIONBLOCK><AUCTIONBLOCK> <ITEM><ITEM> <TITLE>Vase and Stones</TITLE><TITLE>Vase and Stones</TITLE> <ARTIST>Linda Mann</ARTIST><ARTIST>Linda Mann</ARTIST> <DIMENSIONS>20x30 inches</DIMENSIONS><DIMENSIONS>20x30 inches</DIMENSIONS> <MATERIALS>Oil</MATERIALS><MATERIALS>Oil</MATERIALS> <YEAR>1996</YEAR><YEAR>1996</YEAR> <DESCRIPTION>Still Life</DESCRIPTION><DESCRIPTION>Still Life</DESCRIPTION> <BIDS><BIDS> <BID><BID> <PRICE>6000</PRICE><PRICE>6000</PRICE> <TIME>3:02:22 PM</TIME><TIME>3:02:22 PM</TIME> <BIDDER>Chris</BIDDER><BIDDER>Chris</BIDDER> </BID></BID> <BID><BID> <PRICE>5700</PRICE><PRICE>5700</PRICE> <TIME>2:58:42 PM</TIME><TIME>2:58:42 PM</TIME> <BIDDER>John</BIDDER><BIDDER>John</BIDDER> </BID></BID> </BIDS></BIDS> </ITEM></ITEM> </AUCTIONBLOCK></AUCTIONBLOCK>

Page 63: XML: eXtensible Markup Language

XML Trieste, 19 April 2023 - slide 63

Esempio: regola di trasformazione<?xml version="1.0"?><?xml version="1.0"?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl"><xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl"> <xsl:template match="<xsl:template match="//">"> <TABLE STYLE="border:1px solid black"><TABLE STYLE="border:1px solid black"> <TR STYLE="font-size:12pt; font-family:Verdana; <TR STYLE="font-size:12pt; font-family:Verdana; font-weight:bold; text-decoration:underline">font-weight:bold; text-decoration:underline"> <TD>Price</TD><TD>Price</TD> <TD STYLE="background-color:lightgrey">Time</TD><TD STYLE="background-color:lightgrey">Time</TD> <TD>Bidder</TD><TD>Bidder</TD> </TR></TR> <xsl:for-each<xsl:for-each select="select="AUCTIONBLOCK/ITEM/BIDS/BIDAUCTIONBLOCK/ITEM/BIDS/BID">"> <TR STYLE="font-family:Verdana; font-size:12pt"><TR STYLE="font-family:Verdana; font-size:12pt"> <TD>$<xsl:value-of select="<TD>$<xsl:value-of select="PRICEPRICE"/></TD>"/></TD> <TD STYLE="background-color:lightgrey"><TD STYLE="background-color:lightgrey"> <xsl:value-of select="<xsl:value-of select="TIMETIME"/></TD>"/></TD> <TD><xsl:value-of select="<TD><xsl:value-of select="BIDDERBIDDER"/></TD>"/></TD> </TR></TR> </xsl:for-each></xsl:for-each> </TABLE></TABLE> </xsl:template></xsl:template> </xsl:stylesheet></xsl:stylesheet>

Page 64: XML: eXtensible Markup Language

XML Trieste, 19 April 2023 - slide 64

Esempio: output

Page 65: XML: eXtensible Markup Language

XML Trieste, 19 April 2023 - slide 65

Processing di documenti XML

Quando vengono processati documenti XML si procede ad un parsing del documento per garantire la struttura grammaticale del documento sia conforme alle specifiche XML

XML document

DTD

XML processor

XML XML applicationapplication

Page 66: XML: eXtensible Markup Language

XML Trieste, 19 April 2023 - slide 67

Standalone Rendering

HTMLXML

XSL

Page 67: XML: eXtensible Markup Language

XML Trieste, 19 April 2023 - slide 68

Client Side Rendering

XML

XSLHTML

Server (qualsiasi) Browser con XSL engineMS IE 6.x.

XML

XSL

Page 68: XML: eXtensible Markup Language

XML Trieste, 19 April 2023 - slide 69

Server Side Rendering

HTML

Browser (qualsiasi)Server con XSL engineeg Apache/Jserv/Cocoon/IIS

XML

XSLHTML

Page 69: XML: eXtensible Markup Language

XML Trieste, 19 April 2023 - slide 70

XML (and related) Specifications

XML 1.0 XML names

‘Open’ std

W3C rec

W3C draft

industry std

XML Core

APIs

Style Protocols Web Services Application areas Data/presentaion

XHTMLbasic

Xlink …...

SAX 1

Xpath

XSLT

XSL

DOM 1

Modularized XHTML

Xforms

Canonical

XMLsignature

XML baseXpointer

XML query ….

Infoset

XML schema

Xfragment

XHTMLevents

UDDI

XML-RPC100's

more ....

SAX 2

DOM 2

DOM 3

CSS 1

CSS 2

CSS 3

JDOM

JAXP

WSDL ...

ebXML

Biztalk

WDDXXMI ...

...

IFX

Docbook

...

MathML

SMIL 1 & 2

VoiceXML

XHTML 1.0

RDF

SOAP RSS

CellML

IMS

SVG

HEML

TEI

XULJabber

Page 70: XML: eXtensible Markup Language

XML Trieste, 19 April 2023 - slide 71

Interrogazione di dati XML con XQuery

Xpath consente solo estrazioni … XQuery serve per elaborazioni + complesseStandard W3C: dal 2001

Interrogazioni: Path expressions

Sintassi abbreviata di XPath Espressioni FLWR

Clausole FOR, LET, WHERE, RETURN

Page 71: XML: eXtensible Markup Language

XML Trieste, 19 April 2023 - slide 72

Esempio

<?xml version="1.0"?><Elenco> <Libro disponibilità=‘S’> <Titolo>Il Signore degli Anelli</Titolo> <Autore>J.R.R. Tolkien</Autore> <Data>2002</Data> <ISBN>88-452-9005-0</ISBN> <Editore>Bompiani</Editore> </Libro> <Libro disponibilità=‘N’> <Titolo>Il nome della rosa</Titolo> <Autore>Umberto Eco</Autore> <Data>1987</Data> <ISBN>55-344-2345-1</ISBN> <Editore>Bompiani</Editore> </Libro> <Libro disponibilità=‘S’> <Titolo>Il sospetto</Titolo> <Autore>F. Dürrenmatt</Autore> <Data>1990</Data> <ISBN>88-07-81133-2</ISBN> <Editore>Feltrinelli</Editore> </Libro></Elenco>

libri.xml

Page 72: XML: eXtensible Markup Language

XML Trieste, 19 April 2023 - slide 73

Espressioni FLWRFOR per l’iterazioneLET per collegare variabiliWHERE per esprimere predicatiRETURN per generare il risultato

Page 73: XML: eXtensible Markup Language

XML Trieste, 19 April 2023 - slide 74

Espressioni FOR

Esempio:

FOR $l IN document(“libri.xml”)//LibroRETURN $l

La clausola FOR valuta l’espressione sulla destra (//Libro) che è un insieme, e itera all’interno di questo set assegnando il nodo di turno alla variabile $lL’interrogazione restituisce l’insieme di tutti i libri che si trovano nel documento libri.xml

Page 74: XML: eXtensible Markup Language

XML Trieste, 19 April 2023 - slide 75

Espressioni LET

Esempio:

LET $l := document(“libri.xml”)//LibroRETURN $l

La clausola LET valuta l’espressione (//Libro) e assegna l’intero insieme di libri trovati alla variabile $lIl risultato di una clausola LET produce un singolo binding per la variabile: l’intero set viene assegnato alla variabile

Page 75: XML: eXtensible Markup Language

XML Trieste, 19 April 2023 - slide 76

Clausola WHERE

La clausola WHERE esprime una condizione: solamente le tuple che soddisfano tale condizione vengono utilizzate per invocare la clausola RETURNLe condizioni nella clausola WHERE possono contenere diversi predicati connessi da AND, OR, NOTEsempio:

FOR $l IN document(“libri.xml”)//LibroWHERE $l/Editore=“Bompiani” AND $l/@disponibilità=“S”RETURN $l

Restituisce tutti i libri pubblicati da Bompiani che sono disponibili

Page 76: XML: eXtensible Markup Language

XML Trieste, 19 April 2023 - slide 77

Clausola RETURNGenera l’output di un’espressione FLWR che può essere:

Un nodo

Un foresta ordinata di nodi

Un valore

Può contenere dei costruttori di elementi, riferimenti a variabili definite nelle parti FOR e LET ed espressioni annidate

<Autore>F. Dürrenmatt</Autore>

<Autore>J.R.R. Tolkien</Autore><Autore>Umberto Eco</Autore><Autore>F. Dürrenmatt</Autore>

F. Dürrenmatt

Page 77: XML: eXtensible Markup Language

XML Trieste, 19 April 2023 - slide 78

Clausola RETURN

Un costruttore di elemento consiste di un tag iniziale e di un tag finale racchiudenti una lista opzionale di espressioni che determinano il contenuto dell’elemento

Esempio:

FOR $l IN document(“libri.xml”)//LibroWHERE $l/Editore=“Bompiani”RETURN <Libro-Bompiani>

$l/Titolo</Libro-Bompiani>

nuovo nuovo elementoelemento

<Libro-Bompiani><Titolo>Il Signore degli Anelli</Titolo></Libro-Bompiani><Libro-Bompiani><Titolo>Il nome della rosa</Titolo></Libro-Bompiani>

Page 78: XML: eXtensible Markup Language

XML Trieste, 19 April 2023 - slide 79

Ruolo di XQUERYdato un documento XML well-formed, xquery permette, dall’interno di un programma qualsiasi di estrarre un documento xml da quello di partenza e ritornarlo all’utente.

In sostanza xquery non è molto diverso da XSLT, solo orientato ai DB.

Vedi ad esempio xquery in java (http://www.fatdog.com/extreme_2002.html ).

E’ possibile anche inserire la sintassi Xquery in un documento XML (vedi seguente esempio):

Page 79: XML: eXtensible Markup Language

XML Trieste, 19 April 2023 - slide 80

Esempi

for $t in document("recipes.xml")//title return $t

<title>Beef Parmesan with Garlic Angel Hair Pasta</title>, <title>Ricotta Pie</title>, <title>Linguine Pescadoro</title>, <title>Zuppa Inglese</title>, <title>Cailles en Sarcophages</title>

“I titoli di tutte le ricette

<floury> { for $r in document("recipes.xml")//recipe[.//ingredient[@name="flour"]] return <dish>{$r/title/text()}</dish> } </floury>

<floury> <dish>Ricotta Pie</dish> <dish>Zuppa Inglese</dish> <dish>Cailles en Sarcophages</dish> </floury>

“I piatti che contengono farina - flour":

Page 80: XML: eXtensible Markup Language

XML Trieste, 19 April 2023 - slide 81

Esempi

for $i in distinct-values(document("recipes.xml")//ingredient/@name) return <ingredient name="{$i}"> { for $r in document("recipes.xml")//recipe where $r//ingredient[@name=$i] return $r/title } </ingredient>

<ingredient name="beef cube steak"> <title>Beef Parmesan with Garlic Angel Hair Pasta</title> </ingredient>, <ingredient name="onion, sliced into thin rings"> <title>Beef Parmesan with Garlic Angel Hair Pasta</title> </ingredient>, ... <ingredient name="butter"> <title>Beef Parmesan with Garlic Angel Hair Pasta</title> <title>Cailles en Sarcophages</title> </ingredient>, ...

“Per ciascun ingrediente, le ricette in cui è usato":

Page 81: XML: eXtensible Markup Language

SVG: Scalable vector graphics

A language for describing two-dimensional graphics in XMLSee <http://www.w3.org/Graphics/SVG/Overview.htm8>

Page 82: XML: eXtensible Markup Language

XML Trieste, 19 April 2023 - slide 84

Page 83: XML: eXtensible Markup Language

XML Trieste, 19 April 2023 - slide 85

SVG Example

http://www.karto.ethz.ch/neumann/cartography/vienna/http://www.karto.ethz.ch/neumann/cartography/vienna/

Page 84: XML: eXtensible Markup Language

XML Trieste, 19 April 2023 - slide 86

SVG and XSLT

This example: Originally written in

Java Author realised that

XSLT would be easier

Uses SVG for chess board and pieces

Uses XSLT to move pieces

http://people.w3.org/maxf/ChessGML/http://people.w3.org/maxf/ChessGML/

Page 85: XML: eXtensible Markup Language

Chemical Markup Language

Page 86: XML: eXtensible Markup Language

XML Trieste, 19 April 2023 - slide 88

File transfer in a grid environment

Page 87: XML: eXtensible Markup Language

XML Trieste, 19 April 2023 - slide 89

…..

IF (a.lt.1.0) THEN

b=acos(c/d)

ENDIF

CALL JACOBI(a,b,err)

WRITE(6,*) A

..

open(fp,”out.dat”);

scanf(“%d\n”,a);

for (i=0;i<a;i++) {

….

PROGRAM 1

PROGRAM 2

OUTPUT

INPUT

two strategies•write converters to transform from one output format to any other input format

•use a common file format

Avoid editing application

programs in order to

interface them

Page 88: XML: eXtensible Markup Language

XML Trieste, 19 April 2023 - slide 90

Computational chemistry and physics is burdened by a confusion of data formats..

Coordinates, structures and trajectoriesSome examples

.pdb, .ent, .ccmf proteins derived from X-ray

.msf Quanta .car, .msi, .mdf Accelrys coordinate files .his, .arc, .trj Accelrys trajectory files .mol, .sd, .sdf, .mdl MDL Mol files .mol2 Sybyl .xyz XYZ coordinates c3d1,.c3d2 Chem3D .csd, .fdat, .dat Cambridge Crystallographic

Page 89: XML: eXtensible Markup Language

XML Trieste, 19 April 2023 - slide 91

Computational chemistry and physics is burdened by a confusion of data formats..

Data and other information .gzmat, .cube, .g98, .chk … Gaussian output files .gamout GAMESS .mopint MOPAC .tpvec, tphmx, .hessian DMOL3 (Accelrys DFT)

data files .wavfun, .symm, .bands, .force CASTEP (Accelrys plane-

wave DFT)

Graphics .gif, .jpeg, .bmp, .png, .tiff, .eps, .ps, .wrl common

graphics .pdf formats .wlv, .pov, .msv, .xsd formats used by

some viewer programs

Page 90: XML: eXtensible Markup Language

XML Trieste, 19 April 2023 - slide 92

CML-Chemistry Mark-up LanguageXML specification designed by Peter Murray-Rust and Henry Rezpahttp://www.xml-cml.org/Version 1.0 formally published in 1997Concentrates on molecules – structures, sequences and reactions. No direct support for physiochemical concepts, but allows labeled numeric data types.

Murray-Rust, Henry S. Rzepa and Michael Wright, New J. Chem., 2001, 618-634.

Page 91: XML: eXtensible Markup Language

XML Trieste, 19 April 2023 - slide 93

<molecule convention="MDLMol" ><date day="12" month="02" year="1996" /> - <atomArray>- <atom id="a1"> <string builtin="elementType">C</string> <float builtin="x2">3.3437</float> <float builtin="y2">-2.9752</float> </atom>- <atom id="a2"> <string builtin="elementType">C</string> <float builtin="x2">3.8896</float> <float builtin="y2">-4.3672</float> </atom>- <atom id="a3"> <string builtin="elementType">C</string> <float builtin="x2">2.0471</float> <float builtin="y2">-1.9926</float> </atom> …………..

Page 92: XML: eXtensible Markup Language

XML Trieste, 19 April 2023 - slide 94

BMLsBioinformatic Sequence Markup Language (BSML) Biopolymer Markup Language (BIOML) CellMLGene Expression Markup Language (GEML) GeneX Gene Expression Markup LanguageMolecular Dynamics Markup Language (MoDL)Systems Biology Markup Language (SBML)

Page 93: XML: eXtensible Markup Language

Math Markup Language

Page 94: XML: eXtensible Markup Language

XML Trieste, 19 April 2023 - slide 96

MathML<apply> <plus/> <apply> <power/> <ci>x</ci> <cn>2</cn> </apply> <apply> <times/> <cn>4</cn> <ci>x</ci> </apply> <cn>4</cn></apply>

x2 + 4x + 4

Page 95: XML: eXtensible Markup Language

XML Trieste, 19 April 2023 - slide 97

Example 2: Using MathType 5 and Amaya

<math xmlns="http://www.w3.org/1998/Math/MathML" style="background-color:#"> <mrow> <munderover> <mo>&sum;</mo> <mrow> <mi>i</mi><mo>=</mo><mn>1</mn> </mrow> <mi>n</mi> </munderover> <msup> <mrow> <mo stretchy='false'>(</mo><msub> <mi>X</mi> <mi>i</mi> </msub> <mo>&minus;</mo><mover accent='true'> <mi>X</mi> <mo>&macr;</mo> </mover> <mo stretchy='false'>)</mo> </mrow> <mn>2</mn> </msup> </mrow> </mrow></math>

2

1

( )n

ii

X X

Page 96: XML: eXtensible Markup Language

XML Trieste, 19 April 2023 - slide 98

Page 97: XML: eXtensible Markup Language

XML Trieste, 19 April 2023 - slide 99

MathML SoftwareTex4ht Latex package to convert to XMLMathType (Design Science Inc. www.dessi.com)Equation Editor (for MS Office) by MicrosoftAmaya Browser/Editor for MathML by W3CMathPlayer: MathML display engine for MS IEWebEQ Editor (Java tool)E-Lite Browser by ICESoftIBM techexplorer as viewerMacKichan SoftwareMaple: a symbolic and numeric computation systemMathCad by Mathsoft Engeneering & Education Inc.Mathematica, More see http://www.w3.org/math/implementations.html

Page 98: XML: eXtensible Markup Language

XML Trieste, 19 April 2023 - slide 100

MathMLMathML:

An XML application for maths

Various plugins, dedicated readers, etc.

Mozilla renders natively

See <http://www.mozilla.org/projects/mathml/>See <http://www.mozilla.org/projects/mathml/>

Page 99: XML: eXtensible Markup Language

XML e Data base

XML e data base relazionaliXML e basi di dati native

Page 100: XML: eXtensible Markup Language

XML Trieste, 19 April 2023 - slide 102

XML e Database: il problemaProblema:

è possibile/necessario memorizzare documenti XML in un DBMS?

Quale tecnologia è necessaria a questo scopo?

Risposta: è certamente possibile memorizzare e gestire

documenti XML in un DBMS la tecnologia necessaria a questo scopo dipende dal

perché vogliamo gestire documenti XML in un DBMS

Page 101: XML: eXtensible Markup Language

XML Trieste, 19 April 2023 - slide 103

Tipologie di documenti XMLDue possibili usi per documenti XML:

Data Centric: i documenti possono rappresentare lo strumento con il quale dati tradizionali (es. relazionali) vengono trasferiti su Web

XML come veicolo per trasporto di dati Esempio: ordini di vendita, scheduling di voli, menù

Document Centric: l’informazione è rappresentata dal documento in sé

XML come modello per la rappresentazione dei dati Esempio: libri, documenti in genere

Page 102: XML: eXtensible Markup Language

XML Trieste, 19 April 2023 - slide 104

Documenti Data Centric

Struttura regolarelivello di dettaglio piuttosto finecontenuto omogeneol’ordine con cui gli elementi allo stesso livello appaiono è ininfluenteUtilizzati per “machine consumption”Esempi: ordini di vendita, scheduling di voli, menù,…

Page 103: XML: eXtensible Markup Language

XML Trieste, 19 April 2023 - slide 105

Esempio: ordini di vendita<Orders>

<SalesOrder SONumber=“12345”><Customer CustNumber=“543”><CustName>ABC Industries</CustName>...

</Customer><OrderDate>981215</OrderDate><Line LineNumber=“1”><Part PartNumber=“123”><Description>

Turkey wrench: Stainless steel, one piece...</Description><Price>9.95</Price>

</Part><Quantity>10</Quantity>

</Line><Line LineNumber=“2”>...

</Line></SaleOrder>

</Orders>

Page 104: XML: eXtensible Markup Language

XML Trieste, 19 April 2023 - slide 106

Documenti Document Centric Struttura irregolareLivello di dettaglio meno fine contenuto eterogeneol’ordine degli elementi allo stesso livello è significativoin genere progettati per “human consumption”Esempi: libri, email, …

Page 105: XML: eXtensible Markup Language

XML Trieste, 19 April 2023 - slide 107

Product Description<Product><Name>Turkey Wrench</Name><Developer>Full Fabrication Labs, Inc.</Developer><Summary>Like a monkey wrench, but not as big.</Summary><Description><Para>The Turkey wrench, which comes in both right- and left-handed versions ....</Para>

<Para>You can:</Para><List><Item><Link URL=“Order.htm”>Order your turkey wrench</Link></Item><Item><Link URL=“Wrench.html”>Read about wrenches</Link></Item><Item><Link URL=“catalog.zip”>Download the catalog</Link></Item>

</List>....

</Description></Product>

Page 106: XML: eXtensible Markup Language

XML Trieste, 19 April 2023 - slide 108

XML e DBMSCiascuna tipologia di documenti richiede una particolare tecnologia per la sua gestione

data

document

Relational/object-oriented DB

DB basato su XML(XML è il modello dei dati)

Page 107: XML: eXtensible Markup Language

XML Trieste, 19 April 2023 - slide 109

XML e DBMSDue categorie di DBMS:

XML-Native DBMS: comprendono un insieme di nuovi sistemi la cui architettura è

stata progettata per supportare totalmente le funzionalità necessarie alla gestione di documenti XML

tecnologia non ancora matura utili per Document Centric Esempio:eXcelon

XML-Enabled DBMS: comprendono tutti i DBMS che mantengono integra la propria

architettura estendendola con funzionalità necessarie alla gestione di documenti XML

sono tipicamente Object-Relational (DB2, Oracle8i,…) utili per Data Centric e parzialmente per Document Centric

Page 108: XML: eXtensible Markup Language

XML-Enabled DBMS e documenti Data Centric

Page 109: XML: eXtensible Markup Language

XML Trieste, 19 April 2023 - slide 112

Problematiche per Data Centric

Tre problematiche di base:

come rappresentare i dati contenuti nei documenti XML nel DBMS

come generare documenti XML partendo dai dati contenuti nel DBMS

come interrogare i dati estratti da documenti XML

DBXMLdoc

DBXMLdoc

DB

Page 110: XML: eXtensible Markup Language

XML Trieste, 19 April 2023 - slide 113

Rappresentazione datiÈ necessario definire un mapping tra la struttura dei documenti XML e lo schema del DB

Per memorizzare i dati contenuti in un documenti XML in un DB, deve esistere una o più tabelle con lo schema richiesto dal mapping

rappresentazione strutturataVantaggi:

approccio piuttosto semplice i dati sono facilmente interrogabili

Svantaggi: Scarsa flessibilità: la tabella deve essere conforme al documento il documento di partenza non è più recuperabile

Page 111: XML: eXtensible Markup Language

XML Trieste, 19 April 2023 - slide 114

1. DBMS relazionaleUn documento XMl viene rappresentato come una singola tabella o un insieme di tabellela struttura del documento XML è simile alla seguente:

<database><table><row><column1>...</column1><column1>...</column1>

...</row>...

</table>...

</database>approccio tipico per DBMS relazionali, object-relational

Page 112: XML: eXtensible Markup Language

XML Trieste, 19 April 2023 - slide 115

Esempio

<clienti>

<row>

<numero> 7369 </numero>

<nome> PAUL </nome>

<cognome> SMITH </cognome>

</row>

<row>

<numero> 7000 </numero>

<nome> STEVE </nome>

<cognome> ADAM </cognome>

</row>

</clienti>

Numero Nome Cognome2000 MIKE SCOTT7369 PAUL SMITH7000 STEVE ADAM

Documento XML Tabella Clienti

Page 113: XML: eXtensible Markup Language

XML Trieste, 19 April 2023 - slide 116

EsempioDocumento XML

Tabella Lista_ClientiNumero

2000

7369

Numero Num_cliente Nome Cognome

2000 1 MIKE SCOTT

7369 2 PAUL SMITH7369 3 STEVE ADAM

<clienti> <row>

<numero> 7369 </numero> <lista_clienti>

<cliente> <nome> PAUL </nome>

<cognome> SMITH </cognome> </cliente>

<cliente> <nome> STEVE </nome>

<cognome> ADAM </cognome> </cliente> </lista_clienti></row>

</clienti>

Tabella Clienti

Page 114: XML: eXtensible Markup Language

XML Trieste, 19 April 2023 - slide 117

2. DBMS object relationalIl documento può sempre essere mappato in una singola tabella, utilizzando campi strutturati

Page 115: XML: eXtensible Markup Language

XML Trieste, 19 April 2023 - slide 118

Esempio

<clienti><row> <numero> 7369 </numero> <cliente>

<nome> PAUL </nome> <cognome> SMITH </cognome></cliente>

</row><row> <numero> 7000 </numero> <cliente>

<nome> STEVE </nome> <cognome> ADAM </cognome>

</cliente></row>

</clienti>

Numero Cliente

2000

7369

7000

Documento XML Tabella Clienti

nome cognomeMIKE SCOTT

nome cognomePAUL SMITH

nome cognomeSTEVE ADAM

Page 116: XML: eXtensible Markup Language

XML Trieste, 19 April 2023 - slide 119

Esempio

<clienti> <row>

<numero> 7369 </numero> <lista_clienti>

<cliente> <nome> PAUL </nome>

<cognome> SMITH </cognome> </cliente>

<cliente> <nome> STEVE </nome>

<cognome> ADAM </cognome> </cliente> </lista_clienti></row>

</clienti>

Numero Cliente

2000

7369

Documento XML Tabella Clienti

nome cognomeMIKE SCOTT

nome cognomeSTEVE ADAM

nome cognomePAUL SMITH

CLIENTE

CLIENTE

Page 117: XML: eXtensible Markup Language

XML Trieste, 19 April 2023 - slide 120

Interrogazione datiPoiché i dati vengono rappresentati secondo il modello supportato dal DBMS (es. relazionale), è possibile utilizzare i linguaggi supportati dal DBMS per l’interrogazione dei dati memorizzatiapproccio template-based:

la query viene rappresentata nel documento XML necessità di middleware

Page 118: XML: eXtensible Markup Language

XML Trieste, 19 April 2023 - slide 121

121

Flight Information<?xml version=“1.0”><FlightInfo>

<Intro>The following flights have available seats:</Intro><SelectStmt>

SELECT Airline, FltNumber, Depart, Arrive FROM Flights </SelectStmt><Conclude>We hope one of these meets your needs</Conclude>

</FlightInfo>

<?xml version=“1.0”><FlightInfo>

<Intro>The following flights have available seats:</Intro><Flight>

<Row><Airline>ACME</Airline><FltNumber>123</FltNumber><Depart>Dec 12, 1998

13:43</Depart><Arrive>...<Arrive><Row>

</Flight><Conclude>We hope one of these meets your needs</Conclude>

</FlightInfo>

Page 119: XML: eXtensible Markup Language

XML Trieste, 19 April 2023 - slide 122

Interrogazione dati

DocQuery

DocResult

DB

ExtractSelect

Command

ConstructDocument

answer

SubmitSELECTCommand

Middleware

Result

Page 120: XML: eXtensible Markup Language

XML Trieste, 19 April 2023 - slide 123

Generazione documenti XMLProblema: fornire una rappresentazione XML ai dati recuperati tramite query dal DBMSsi utilizza il mapping inverso rispetto a quello utilizzato per la memorizzazioneoperazione importante per attribuire un formato standard ai dati ritrovati, prima di inviarli sulla rete

Page 121: XML: eXtensible Markup Language

XML Trieste, 19 April 2023 - slide 124

Esempio

<clienti>

<row>

<nome> PAUL </nome>

<cognome> SMITH </cognome>

</row>

</clienti>

Documento XML

Numero Nome Cognome2000 MIKE SCOTT7369 PAUL SMITH7000 STEVE ADAM

Tabella Clienti

SELECT nome, cognomeFROM ClientiWHERE Numero = “7369

Page 122: XML: eXtensible Markup Language

XML-Enabled DBMS e documenti Document Centric

Page 123: XML: eXtensible Markup Language

XML Trieste, 19 April 2023 - slide 126

Problematiche per Document Centric

Due problematiche di base:

come rappresentare i documenti XML nel DBMS

come interrogare i documenti XML

DBXMLdoc

DBXMLdoc

Page 124: XML: eXtensible Markup Language

XML Trieste, 19 April 2023 - slide 127

Rappresentazione Permette di mantenere integro il documento XMLDue approcci:

rappresentazione non strutturata documento come unico oggetto

rappresentazione ibrida documento parzialmente rappresentato secondo la

rappresentazione strutturata e parzialmente secondo la rappresentazione non strutturata

Page 125: XML: eXtensible Markup Language

XML Trieste, 19 April 2023 - slide 128

Rappresentazione non strutturata

Il documento viene tipicamente mappato in un singolo campo di una tabella di tipo:

CLOB (Character Large Object): il documento è fisicamente contenuto nel campo della tabella

alcuni DBMS (IBM DB2) supportato tipi ad hoc: XMLVARCHAR riferimento: il campo contiene il riferimento al documento,

memorizzato altrove, sul file system

Vantaggi: flessibile

Svantaggi: i dati sono non strutturati interrogazione più complessa la tabella può contenere documenti eterogenei (diversi DTD)

Page 126: XML: eXtensible Markup Language

XML Trieste, 19 April 2023 - slide 129

129

Rappresentazione non strutturata

Documento XML

riferimento

CLOBXML

XML

DBMS

Page 127: XML: eXtensible Markup Language

XML Trieste, 19 April 2023 - slide 130

Esempio

<clienti>

<row>

<numero> 7369 </numero>

<nome> PAUL </nome>

<cognome> SMITH </cognome>

</row>

<row>

<numero> 7000 </numero>

<nome> STEVE </nome>

<cognome> ADAM </cognome>

</row>

</clienti>

Documento XML Tabella Clienti

Id Documento_XML

<clienti>

<row>

<numero> 7369 </numero>

<nome> PAUL </nome>

<cognome> SMITH </cognome>

</row>

<row>

<numero> 7000 </numero>

<nome> STEVE </nome>

<cognome> ADAM </cognome>

</row>

</clienti>

10

Page 128: XML: eXtensible Markup Language

XML Trieste, 19 April 2023 - slide 131

Rappresentazione ibrida

Rappresentazione che combina rappresentazione strutturata e non strutturata

Documento XML

CLOBXML

DBMS

XML

Rappr. strutturata

Page 129: XML: eXtensible Markup Language

XML Trieste, 19 April 2023 - slide 132

Esempio

<libro><titolo> Oracle Guide </titolo><autore> M. Abbey </autore>

<contenuto> <capitolo n=‘1’>

<titolo> Introduzione </titolo>…

</capitolo> … </contenuto> <dettagli> <capitolo n=‘1’> <sezione n=‘1’> Guida introduttiva al mondo

dei DBMS Oracle … </sezione> </capitolo> </dettagli> … </libro>

Documento XML Tabella LIBROSCHEMA

CLOB

Titoloautore

contenuto dettagli

capitolo

Guida introduttiva al mondo dei DBMS Oracle ...

capitolotitolo

Page 130: XML: eXtensible Markup Language

XML Trieste, 19 April 2023 - slide 133

Interrogazione documenti Dal punto di vista del DBMS, un documento memorizzato in modo non strutturato non è che un documento di testoin genere i DBMS supportano strumenti per ritrovare i documenti in base al contenutonel caso di documenti XML, mettono a disposizione operatori avanzati da utilizzare in statement SQL per recuperare documenti XML in base al contenuto

Page 131: XML: eXtensible Markup Language

XML Trieste, 19 April 2023 - slide 134

Interrogazione in Oracle

Nuova funzione: CONTAINS(XML_COLUMN, QUERY_TAG)

XML_COLUMN: colonna (attributo) in cui sono contenuti i documenti XML QUERY_TAG: predicato che permette di specificare condizioni sui documenti

XML

QUERY_TAG::= <tag_value> WITHIN <tag_name> |

<attribute_value> WITHIN <tag_name@attribute_name>|

… CONTAINS restituisce un valore maggiore di 0 se la condizione è

verificata

Page 132: XML: eXtensible Markup Language

XML Trieste, 19 April 2023 - slide 135

XML e Oracle 8iXML-enabledsupporta rappresentazione strutturata, non strutturata in campi CLOB e BFILE, e ibridainterrogazione rappresentazione non strutturata tramite Intermedia Context generazione documenti XML a partire dal contenuto DB

Page 133: XML: eXtensible Markup Language

XML Trieste, 19 April 2023 - slide 136

XML e IBM DB2

XML enabledsupporta rappresentazione strutturata, non strutturata in campi ad hoc, e ibridaNuovi tipi di dato:

XMLVARCHAR: documenti XML memorizzati come VARCHAR XMLCLOB: documenti XML memorizzati come CLOB XMLFILE: riferimento ad un documento XML, memorizzato su file

system

interrogazione rappresentazione non strutturata tramite: operatori specifici, che permettono di navigare la struttura del

documento text extender, che supporta funzionalità aggiuntive di analisi del

contenuto (ne parleremo nel contesto Multimedia)

generazione documenti XML a partire dal contenuto DB

Page 134: XML: eXtensible Markup Language

XML Trieste, 19 April 2023 - slide 137

XML e SQL 2008

XML enabledsupporta rappresentazione strutturata, non strutturata in campi ad hoc, e ibridaNuovi tipi di dato:

XML: documenti XML memorizzati sia come VARCHAR che CLOB

interrogazione rappresentazione non strutturata tramite: operatori specifici, che permettono di navigare la struttura del

documento (OPENXML)

generazione documenti XML a partire dal contenuto DB Clausola FOR XML AUTO

Page 135: XML: eXtensible Markup Language

XML Trieste, 19 April 2023 - slide 138

SQL/XMLXmlelmentXmlforestXmlgenXmlconcatXmlaggr

Select I.matr, Xmlelement (name “imp”, Xmlattributes (I.matr, I.nome as “Cognome”)) as Risultatofrom Impiegato I;

Risultato: due colonne costruite dall’operatore xmlelement

Page 136: XML: eXtensible Markup Language

XML Trieste, 19 April 2023 - slide 139

XML Spy

Page 137: XML: eXtensible Markup Language

XML Trieste, 19 April 2023 - slide 140

Fonti: XLM editor

Page 138: XML: eXtensible Markup Language

XML Trieste, 19 April 2023 - slide 141

Fonti: XQuery Editor

Page 139: XML: eXtensible Markup Language

XML Trieste, 19 April 2023 - slide 142