La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

XML Ing. Alberto Massari

Presentazioni simili


Presentazione sul tema: "XML Ing. Alberto Massari"— Transcript della presentazione:

1 XML Ing. Alberto Massari

2 Programma del seminario Origine di XML: SGML & HTML XML Namespaces XSLT XML & Multimedia: VRML, SVG, SMIL

3 Le origini di XML - SGML Tutto comincia nel 1986 con lo sviluppo di SGML, uno standard ISO (ISO 8879:1986) per la definizione formale di documenti SGML significa Standard Generalized Markup Language ; le sue caratteristiche sono i markup ed il fatto che è generalizzato

4 Cosa sono i markup? I markup sono annotazioni associate al testo del documento Consentono di specificare lo scopo del testo, in modo da abilitare lanalisi del testo da parte di processi automatici I markup sono riconoscibili perché racchiusi tra parentesi acute ( )

5 SGML è generalizzato SGML è un metalinguaggio Ogni documento SGML deve essere corredato da una DTD (Document Type Definition) che specifica quali tag sono definiti ed in che ordine possono comparire allinterno del documento

6 Esempio di DTD SGML

7 Esempio di SGML Journal of Medicine …

8 HTML HTML (HyperText Markup Language) è una applicazione SGML Le prime DTD cominciano ad essere scritte nei primi anni 90; la RFC 1886 del Novembre 1995 codifica HTML 2.0 (non è mai esistita HTML 1.0) Sostanzialmente consente di inserire in un testo dei markup che specificano come quel testo deve essere visualizzato (bold, corsivo, font, colore….)

9 Esempio di HTML First Header This is a paragraph. Technically, end tags are not required for paragraphs, although they are allowed. You can include character highlighting in a paragraph. This sentence of the paragraph is emphasized. Note that the </P> end tag has been omitted.

10 Pregi di HTML Consente di pubblicare documenti sul Web in un formato open che non necessita di applicazioni specifiche (Word, PDF,…) E un formato di testo, e può essere indicizzato dai motori di ricerca Consente di collegare con hyperlinks testi collegati Consente di avere testo e grafica

11 Difetti di HTML Estendibile solo attraverso lintroduzione di nuovi tag (comprensibili solo da alcuni browser): es. frame, object La sintassi non è pulita: i tag sono case- insensitive, le virgolette attorno agli attributi sono opzionali, alcuni tag possono non avere il tag di chiusura E decisamente un linguaggio di visualizzazione

12 Usare HTML per visualizzare dati Supponiamo di voler pubblicare una lista di alberghi su un sito web: ad esempio, questa è una pagina di Expedia.it

13 Usare HTML per visualizzare dati (2) La pagina è fruibile solo da un utente umano; ad esempio, la categoria dellalbergo è indicata dalla ripetizione del tag Il costo totale è indicato nella quarta colonna della tabella; non solo, il numero di colonne è variabile in funzione del numero di giorni di permanenza In conclusione, un agente software non potrebbe usare queste informazioni in maniera affidabile serve un HTML per i dati

14 XML Nel 1996 si comincia a parlare di XML (eXtensible Markup Language), e viene ratificato dal W3C nel febbraio 1998 (http://www.w3.org/TR/REC-xml/)http://www.w3.org/TR/REC-xml Sostanzialmente è SGML reso usabile: viene tolta molta della flessibilità di questo linguaggio, rendendo più semplice creare parser ed applicazioni. E disegnato in modo da rendere facile annotare dati; la semantica delle annotazioni (cioè la DTD) è lasciata ad altre specifiche

15 Le regole di XML XML è case-sensitive Gli attributi vanno delimitati da o I tag vanno sempre chiusi (.. oppure se non hanno contenuto) I tag devono essere innestati correttamente ( non è un valido XML) La DTD non è più obbligatoria, ma opzionale I tipi di dati vengono ridotti drasticamente (praticamente resta il tipo stringa, gli ID, i riferimenti ad ID)

16 Esempio di XML The humane interface New directions… Jef Raskin Addison-Wesley

17 I componenti di XML I tag racchiusi tra sono processing instructions; contengono direttive indirizzate allapplicazione che legge il file XML. La direttiva xml è lunica codificata nelle specifiche e serve per indicare la versione di XML usata dal documento, e la codifica dei caratteri (utf-8 è una versione compatta di Unicode; altre codifiche usate sono latin-1, shift-jis, etc…) Le direttive che la applicazione non conosce vanno ignorate

18 Codifica dei caratteri Gli uomini vedono dei simboli grafici e leggono delle parole Il computer vede dei numeri La relazione tra un numero ed un simbolo grafico e stabilita da una codifica La piu nota e la codifica ASCII (1963), che usa numeri a 7 bit (da 0 a 127) per rappresentare lalfabeto occidentale, i numeri arabi e la punteggiatura piu comune

19 La tabella dei codici ASCII

20 E gli altri? La codifica ASCII va bene per la lingua inglese, ma ignora le lettere accentate italiane, i caratteri tedeschi come ß e ë, quelli nordici come Ø, il greco, il russo, lebraico, il giapponese, larabo…. La prima soluzione fu di inventare delle code-page in cui una sequenza di numeri rappresentasse un carattere Come conseguenza, il carattere π e rappresentato dal numero 0xF0 nella code page greca usata sui computer Sun, ma dalla sequenza 0x83 0xCE nella code page usata sui computer Windows Quindi, data una sequenza di numeri, non e possibile sapere con certezza quali caratteri sono codificati, se non viene fornita la tabella di conversione

21 Unicode Il consorzio Unicode e stato formato nel 1991 per codificare una volta per tutte ogni possibile carattere e simbolo di punteggiatura, assegnandogli un numero univoco (chiamato codepoint) La attuale versione, 5.1, definisce codepoints Per codificarli servono 21 bits (da 0x0 a 0x10FFFF); si parla quindi di UTF-32 se ogni codepoint viene rappresentato da 32 bit, UTF-16 se si usano 16 bit (usando sequenze di 2 numeri per i pochi caratteri che hanno i primi 5 bit diversi da 0), UTF-8 se si usano 8 bit per carattere (usando sequenze da 2 a 6 numeri per i caratteri che non appartengono allalfabeto occidentale)

22 I componenti di XML (2) I commenti sono racchiusi tra Al suo interno si può trovare qualsiasi testo, anche su più righe, purchè non contenga --> Il suo contenuto viene ignorato dalla applicazione che legge il file XML Quindi contiene testo indirizzato ad una persona

23 I componenti di XML (3) Un file XML può contenere solo un tag al livello principale (denominato root) La struttura del file è quindi: –Processing instruction xml –Commenti ed altre processing instructions –Root del documento –Altri commenti e processing instructions Il tutto può essere inframezzato con spazi, tab e/o newlines (whitespace)

24 I componenti di XML (4) Il tag è detto elemento Gli elementi devono cominciare con un < seguito subito da una lettera o dal carattere _; può quindi proseguire con lettere, numeri, ed alcuni simboli di punteggiatura come – o. Dopo il nome può seguire uno spazio ed una lista di attributi, definiti da un nome, il simbolo = ed un valore racchiuso tra apici singoli o doppi Se il valore dellattributo contiene lo stesso tipo di apici usati per racchiuderlo, questi vanno codificati usando " e '

25 I componenti di XML (5) Al di fuori dello spazio delimitato da si trova il testo; come per i valori degli attributi, se il testo deve contenere i simboli, questi vanno codificati come < e > Se occorre inserire il carattere &, si deve usare &

26 I componenti di XML (6) Se cè la necessità di scrivere un lungo testo pieno di caratteri speciali, si può racchiuderlo allinterno di una sezione CDATA, delimitata tra Come per i commenti, al suo interno si può scrivere di tutto, tranne la stringa ]]>

27 I componenti di XML (7) I vari ', ", <, >, & sono entity predefinite Un documento XML può contenere anche entità numeriche tipo (per indicare il carattere Unicode 0x20, lo spazio) o se si usa la notazione decimale Altre entità possono essere definite allinterno della DTD, e possono rappresentare sia singoli caratteri (© per il simbolo ©), frammenti di XML (&signature; per Alberto Massari) o interi documenti XML da includere

28 Riassunto XML può quindi essere usato per annotare dati scritti in qualunque lingua ed essere consumato sia da utenti umani che da software La X sottolinea la estensibilità del linguaggio; aggiungere nuovi dati racchiusi in un nuovo tag fa sì che le vecchie applicazioni ignorino quella informazione, mentre le nuove ne beneficiano

29 Namespaces Quasi subito ci si rese conto che non si potevano mischiare files XML codificati da DTD differenti Cioè, una DTD definisce un dominio allinterno del quale è corretto che dentro ad un book ci sia un title, uno o più author e così via Ad esempio, in un altro dominio, title potrebbe venir usato per indicare quale titolo dare ad una persona (Mr, Dott, Avv…)

30 Namespaces (2) Un anno dopo, nel gennaio 1999, il W3C pubblica le specifiche dei Namespaces (http://www.w3.org/TR/REC-xml-names/)http://www.w3.org/TR/REC-xml-names/ Stabilisce che ogni elemento è incluso dentro un namespace, definito da una URI (Uniform Resource Identifier, vedi RFC 2396) Visto che le URL (Uniform Resource Locator) sono URI valide (sostanzialmente sono URI che contengono in sé linformazione sulla locazione dove la risorsa si trova), spesso si usano URL per definire i namespaces

31 Namespaces (3) I namespace vengono dichiarati usando degli attributi speciali, che cominciano con xmlns xmlns:p=http://www.my.com/schema definisce che il namespace associato con il prefisso p è definito dalla URI Se la definizione manca del prefisso (se cioè si usa xmlns=http://www.my.com/schema) si definisce il namespace di default N.B.: la URI è il nome del namespace; non è detto che quellindirizzo esista o che ci si trovi la DTD che lo definisce, anche se questo di solito è quello che succede

32 Namespaces (4) Il carattere : viene dichiarato illegale allinterno dei tag (sia per gli elementi che per gli attributi) ed usato per separare il tag in due parti: un namespace prefix ed un local name Scrivendo si intende dire che questo book vive allinterno del namespace associato con il prefisso p E quindi possibile mischiare allinterno dello stesso file XML dati anche diversi tra di loro senza rischi di ambiguità

33 Esempio di XML con Namespace The humane interface Jef Raskin...

34 XSLT: il cerchio si chiude Abbiamo visto come HTML serva per annotare un testo con informazioni tipografiche Abbiamo visto come XML serva per annotare dei dati con informazioni semantiche Adesso vorremmo prendere dei dati (codificati in XML) e mostrarli su video (usando HTML) Per fare ciò si usa XSLT (eXtensible Stylesheet Language Transformations)

35 XSLT Il W3C pubblica le specifiche per XSLT nel novembre 1999 (http://www.w3.org/TR/xslt)http://www.w3.org/TR/xslt XSLT è solo una parte di un progetto più ampio (XSL) rivolto alla comunità editoriale Unaltra parte importante è XSL-FO (Formatting Objects), che viene usata per specificare il layout di stampa di libri (ad es. un documento XSL-FO può essere convertito in un file PDF, o, se preferite, un file PDF può essere salvato in XSL-FO senza perdita di informazione)

36 T come Trasformazione Uno stylesheet XSLT legge un file XML e a seconda di quale elementi o attributi incontra, decide quale trasformazione effettuare Il risultato viene scritto nel documento finale, quindi si procede ad un altro elemento o attributo

37 Riassunto Alla fine del 1999 lo scenario è quasi completo: esiste uno standard per archiviare/scambiare dati, ed un modo per ottenerne una o più rappresentazioni (completa, compatta, senza immagini per PDAs…) Le ditte possono cominciare a scambiarsi le informazioni come files XML (una volta che si mettono daccordo su quel DTD usare), ed allo stesso tempo usare quegli stessi files per produrre il proprio sito web. E davvero una rivoluzione.

38 Dai un martello ad una persona, ed ogni problema gli sembrerà un chiodo

39 I dialetti di XML XML Schema: DTD++ in formato XML XHTML: la versione XML-friendly di HTML 4.01 XLink/XPointer: collegamenti tra files XML RDF/RSS/OWL: semantica dei contenuti SOAP/ebXML/xBRL/WS-*: web services XPath/XQuery: come cercare dentro dati XML VoiceXML/SALT: text-to-speech WML: lHTML per i telefonini WAP

40 I dialetti di XML (2) MathML: rappresentare matematica ThML: testi teologici RELML: descrizione di case in vendita OFX: informazioni finanziarie XMPP: instant messaging NeuroML/AnaML/GAME: informazioni mediche XCI: trascrizioni dei processi nei tribunali MML/MusicML: musica

41 XML ed il multimedia Il mondo del multimedia non sta a guardare: fioriscono le iniziative che mirano ad usare XML per rappresentare i contenuti Ad esempio: –SVG per la grafica 2D vettoriale –VRML/X3D per la grafica 3D –SMIL per implementare slideshow (MMS) –XMT per descrivere gli oggetti in una scena (MPEG-7)

42 Scalable Vector Graphics Primo esempio di SVG

43 Pregi di SVG E un formato vettoriale: a differenza di JPEG o GIF, il disegno non soffre quando viene scalato E un formato testo: può essere incluso in una pagina HTML senza bisogno di files accessori E un formato testo: può essere generato al volo tramite da un foglio XSLT a partire da un file XML contenente i dati

44 Le forme base Linea: Polilinea: Cerchio: Poligono: Rettangolo: Ellisse:

45 I percorsi Per rappresentare forme irregolari, si usa il comando path La sintassi dellattributo d è formata da: –M x,y vai al punto x,y –L x,y linea dal punto corrente a x,y –Z chiudi la forma –H x linea orizzontale fino a x –V y linea verticale fino a y –C x,y x,y x,y curva di Bezier –S x,y x,y curva di Bezier smussata –Q x,y x,y curva di Bezier quadratica –T x,y curva di Bezier quadratica smussata –A rx,ry… arco Se il comando è minuscolo, i valori di x e y sono relativi

46 Scrivere testo Per inserire frammenti di testo si usa text testo La scritta può contenere elementi tspan per spezzarla su più righe Testo 1 Testo 2 Si possono specificare il font, lallineamento, apice/pedice, la distanza tra le lettere e tra le parole Si può anche forzare il testo a seguire un path irregolare

47 Gli stili Abbiamo visto come tutti gli elementi prevedano un attributo style Il suo valore è una stringa del tipo stile:valore;stile:valore Gli stili possibili sono: –fill il colore di riempimento –opacity il grado di trasparenza (0-1) –fill-rule come riempire aree interne –stroke il colore della linea di bordo –stroke-width lo spessore del bordo –stroke-dasharray lo stile del bordo –stroke-linecap come terminare le linee –stroke-linejoin come disegnare le giunzioni –display se loggetto sarà visualizzato

48 I gruppi Più elementi grafici possono essere riuniti in un gruppo, e manipolati come un elemento unico, usando lelemento g Un gruppo può contenere sottogruppi Oltre a controllare lo stile, un gruppo può effettuare trasformazioni vettoriali

49 Le trasformazioni vettoriali Le trasformazioni sono specificate usando lattributo transform che le elenca nellordine in cui vanno eseguite Sono possibili: –translate(tx,ty) traslazione rigida –scale(sx,sy) zoom –rotate(ra,cx,cy) rotazione di ra gradi –skewX(sa) rotazione del solo asse X –skewY(sa) rotazione del solo asse Y –matrix(a,b,c,d,e,f) trasforma loggetto usando la matrice

50 I link Come in HTML, i link esterni sono creati usando un elemento a attorno alloggetto da cliccare Cliccami Esistono anche i link interni; per realizzarli, loggetto da collegare deve avere un attributo id=nome che verrà collegato con un attributo xlink:href=#nome Un testo su una curva

51 Gradienti e pattern (1) Abbiamo visto che per riempire le forme si usa lattributo style, specificando fill:color o stroke:color Si possono anche definire degli stili di riempimento personalizzati, allinterno di un elemento defs e usarli usando un link interno

52 Gradienti e pattern (2) I gradienti lineari lavorano lungo un vettore 2D (di default orizzontale) I gradienti circolari usano un cerchio ed un punto focale Al loro interno si definiscono due o più stop points che definiscono i colori in certi punti; il resto della figura sarà riempito usando interpolazione I pattern definiscono degli stampini che verranno ripetuti allineati

53 Simboli Allinterno di un elemento defs si possono anche definire dei simboli, usando lelemento symbol testo In seguito si può usare lelemento use per disegnarlo in una posizione specifica

54 Eventi e scripting Si può associare del codice a particolari eventi del mouse o della tastiera che coinvolgano certi oggetti grafici Il codice può accedere alla struttura del file XML e manipolarlo; ad esempio, creando nuovi oggetti, cambiando le proprietà grafiche (es. colore) di quelli esistenti, o la posizione

55 Animazione (1) Visto che ottenere animazioni usando lo scripting è complesso, SVG 1.1 include la parte di SMIL che definisce le animazioni animate è un elemento che, inserito allinterno della definizione di un oggetto, cambia il valore di un attributo in maniera lineare

56 Animazione (2) Altri tipi di animazione sono animateMotion, animateColor e animateTransform ; il primo muove loggetto lungo il percorso indicato, il secondo cambia il colore ed il terzo cambia i parametri di una trasformazione/rotazione/scalamento

57 EyesWeb XMI Il formato per salvare le patch in EyesWeb XMI è XML E un formato aperto, e permetterà a terze parti di creare editor o player su piattaforme attualmente non supportate Consente anche di esaminare e manipolare una patch in modi interessanti…

58 Synchronized Multimedia Integration Language SMIL (si pronuncia come smile) è stato sviluppato per rappresentare presentazioni multimediali interattive SMIL 1.0 è stato ratificato nel Giugno 1998 SMIL 2.0 è stato ratificato nellAgosto 2001 Le cose che sa fare sono: –posizionare oggetti mono-mediali sullo schermo –sincronizzarli –scegliere diversi componenti a seconda di lingua, velocità di connessione, dimensioni schermo…

59 Moduli e profili E suddiviso in moduli separati, in modo che parti di SMIL possano essere integrati in altri linguaggi (es. XHTML+SMIL, SVG) Definisce dei profili che comprendono un numero di moduli obbligatori; ad esempio, definisce un Basic Profile adatto a telefonini, e un Language Profile adatto a player per PC

60 SMIL 2.0 SMIL 1.0 era una specifica di 30 pagine; SMIL 2.0 è 540 pagine Ci sono parecchi player disponibili, e qualche editor; vista la mole delle specifiche, i moduli supportati variano da un software allaltro, per cui se si vogliono creare presentazioni avanzate è meglio sapere come saranno visualizzate…

61 Gli ingredienti Raccogliere i media files/URL (video, audio, immagini) Decidere dove verranno visualizzati sul video Identificare gli elementi opzionali o sostituibili Stabilire il percorso ed i suoi tempi Gestire linterazione con lutente

62 Un esempio: la TV Quando si guarda la TV, si ha limpressione di vedere un unico stream multimediale, ma in realtà possiamo identificare: –Il filmato dellevento (es. un incontro di boxe, il videoclip di una canzone) –Il logo della rete televisiva –La voce fuori campo del presentatore –I sottotitoli per i non udenti –Varie scritte con informazioni (es. statistiche sullevento sportivo, curiosità sul cantante) Piuttosto che preparare un filmato preconfezionato, sarebbe utile mantenere separati i suoi componenti in modo da lasciare allutente la libertà di attivarli o meno

63 Il formato di un file.smil......

64 Definiamo il layout per un filmato di un incontro di boxe

65 Scalamenti Nel caso una immagine o un video non abbiano le stesse dimensioni della regione a cui è stata assegnata, il valore dellattributo fit controlla come viene scalata –fill fa coincidere sia la x che la y (bleah!) –meet espande finché una coordinata coincide –slice espande finché la regione è tutta piena –hidden non fare nulla –scroll mostra un meccanismo per consentire lo scroll

66 La sincronizzazione temporale Sequenza (seq) Parallelo (par) Esclusione (excl)

67 Scriviamo i titoli I titoli di apertura sono rappresentati da due immagini statiche, che vogliamo mostrare in sequenza per 3 secondi 0s t 3s6s

68 I tipi di media Gli elementi che possono venire inseriti allinterno di un elemento di sincronizzazione dipendono dal player; quelli previsti sono –img –video –text –audio –animation –ref

69 Impostare la durata.. I valori temporali sono sempre riferiti ad un istante di tempo predefinito (linizio di par o excl, la fine del blocco precedente in un seq ) Si può usare lattributo dur, che specifica la durata Oppure i due attributi begin e end Se nessun attributo è usato, si usa la durata del clip Il valore di un attributo può essere relativo ad un altro frammento (es. begin=v1.end+2s )

70 ..e la ripetizione Usando repeatCount e repeatDur si può far ripetere un frammento N volte (se cè anche una durata esplicita verrà comunque troncato allo scadere del tempo) o, se hanno il valore indefinite, finché non termina il blocco di sincronizzazione in cui si trova il clip

71 Durata dei blocchi paralleli Un blocco parallelo normalmente termina quando lultimo componente ha finito Specificando termina appena ne termina uno Specificando termina quando termina il clip indicato

72 I blocchi esclusivi I blocchi di tipo excl permettono la visualizzazione di uno solo dei suoi componenti; tipicamente i tag begin di questi conterranno riferimenti ad eventi

73 Mostriamo il video ed i sottotitoli t

74 Gestiamo più lingue..

75 ..e connessioni lente Altri attributi sono system-captions, system-overdub-or-caption, system- required, system-screen-size, system-screen-depth Un clip può specificare più attributi

76 Links (1) Come già visto per HTML e SVG, si possono creare links usando lelemento a Lattributo show può avere il valore –new apri in una nuova finestra –pause metti in pausa questo clip –replace sostituisci questa presentazione con la nuova Se href punta ad un frammento (es. part1.smil#VI) quella presentazione comincia in quel punto, come se si fosse usato fast forward

77 Links (2) Lelemento a può avere anche gli attributi external (apri con un programma esterno) e target (mostra la presentazione in una regione di questa presentazione, cioè picture-in-picture)

78 Links (3) Si possono anche definire link associati a parti (spaziali o temporali) di un video, usando area

79 Aggiungiamo transizioni Le transizioni vanno definite nellheader, assegnandogli un id Esiste un tipo ed un sottotipo di transizione La transizione può essere in avanti o allindietro Si può controllare il colore in cui la transizione sfuma

80 Usiamo le transizioni La transizione si applica usando gli attributi transIn e transOut di un clip, specificando lid della transizione da usare

81 Qualche esempio di transizione barWipe boxWipe fourBoxWipe barnDoorWipe diagonalWipe bowTieWipe miscDiagonalWipe veeWipe barnVeeWipe zigZagWipe barnZigZagWipe irisWipe triangleWipe arrowHeadWipe pentagonWipe hexagonWipe ellipseWipe eyeWipe roundRectWipe starWipe miscShapeWipe clockWipe

82 Animazioni Le animazioni sono realizzate tramite gli elementi animate, animateColor e animateMotion Il loro comportamento lo abbiamo già incontrato in SVG

83 MMS SMIL Un telefonino abilitato alla visione degli MMS dovrebbe essere in grado di comprendere un documento SMIL che abbia istruzioni appartenenti ai seguenti moduli: –BasicContentControl, SkipContentControl, PrefetchControl –BasicLayout (niente regioni innestate, o multiple finestre) –BasicLinking, LinkingAttributes –BasicMedia, MediaClipping, MediaAccessibility, MediaDescription –Metainformation –Structure –BasicInlineTiming, MinMaxTiming, BasicTimeContainers, RepeatTiming, EventTiming (niente excl, o più istanti di inizio/fine, o riferimenti a ore assolute) –BasicTransitions

84 Riferimenti SGML: HTML 2.0: XML: XSLT: SVG: SMIL: RealNetworks Production Guide: ionGuide/HTML/realpgd.htm ionGuide/HTML/realpgd.htm


Scaricare ppt "XML Ing. Alberto Massari"

Presentazioni simili


Annunci Google