1 linguaggi di codifica. 2 standard generalized markup language: - markup language perché sgml è...

38
1 Linguaggi di codifica

Upload: assunta-mazza

Post on 02-May-2015

214 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 1 Linguaggi di codifica. 2 Standard Generalized Markup Language: - Markup Language perché SGML è un metalinguaggio per la codifica testuale, basato su

1

Linguaggi di codifica

Page 2: 1 Linguaggi di codifica. 2 Standard Generalized Markup Language: - Markup Language perché SGML è un metalinguaggio per la codifica testuale, basato su

2

Standard Generalized Markup Language: - Markup Language perché SGML è un

metalinguaggio per la codifica testuale, basato su un sistema di marche che vengono associate al contenuto di un testo per esplicitarne alcune caratteristiche.

- Generalized perché si tratta di un sistema di codifica dichiarativo fortemente astratto e generalizzato ed al contempo altamente flessibile.

- Standard perché si tratta di uno standard formale sviluppato dalla International Standardization Organization e pubblicato ufficialmente con la sigla ISO 8879:1986.

Page 3: 1 Linguaggi di codifica. 2 Standard Generalized Markup Language: - Markup Language perché SGML è un metalinguaggio per la codifica testuale, basato su

3

Standard Portabile Indipendenza dall’hardware Indipendenza dal software Indipendenza dal sistema di codifica dei

caratteri Indipendenza logica dalle tipologie di

elaborazione

Page 4: 1 Linguaggi di codifica. 2 Standard Generalized Markup Language: - Markup Language perché SGML è un metalinguaggio per la codifica testuale, basato su

4

Metalinguaggio È un linguaggio che serve a descrivere

altri linguaggi

Fornisce regole per la creazione di grammatiche e vocabolari personalizzati

Page 5: 1 Linguaggi di codifica. 2 Standard Generalized Markup Language: - Markup Language perché SGML è un metalinguaggio per la codifica testuale, basato su

5

Regole “filosofiche” di SGML

Separazione del contenuto dalle istruzioni

Cattura del significato strutturale e funzionale degli elementi del testo

Page 6: 1 Linguaggi di codifica. 2 Standard Generalized Markup Language: - Markup Language perché SGML è un metalinguaggio per la codifica testuale, basato su

6

Document Type Definition È obbligatoriamente allegata a un

documento SGML Definisce il markup Definisce i rapporti fra gli elementi del

markup Rende possibile uno stretto controllo sulla

struttura del contenuto Rende possibile un controllo sintattico

automatico: parsing

Page 7: 1 Linguaggi di codifica. 2 Standard Generalized Markup Language: - Markup Language perché SGML è un metalinguaggio per la codifica testuale, basato su

7

Un linguaggio SGML specifica: gli elementi che compongono il markup; il contesto in cui possono ricorrere questi

elementi; quali elementi sono necessari per creare

un documento; i delimitatori del testo che costituiscono i

vari elementi, per distinguerli dal testo vero;

il significato dei vari simboli di markup che saranno utilizzati.

Page 8: 1 Linguaggi di codifica. 2 Standard Generalized Markup Language: - Markup Language perché SGML è un metalinguaggio per la codifica testuale, basato su

8

I “dialetti” SGML: HTML HyperText Markup Language Serve a costruire documenti ipertestuali:

per esempio le pagine web DTD standard Di facile utilizzo

Page 9: 1 Linguaggi di codifica. 2 Standard Generalized Markup Language: - Markup Language perché SGML è un metalinguaggio per la codifica testuale, basato su

9

Documento HTML File di testo Contiene:

Testo Markup

Linguaggio standard e portabile Linguaggio interpretato

Page 10: 1 Linguaggi di codifica. 2 Standard Generalized Markup Language: - Markup Language perché SGML è un metalinguaggio per la codifica testuale, basato su

10

Esempio<html>

<head><title>Benvenuti in HTML</title>

</head><body>

<h1>Ciao da HTML</h1><p>Benvenuti nel vasto e confuso mondo

di HTML</p></body>

</html>

Page 11: 1 Linguaggi di codifica. 2 Standard Generalized Markup Language: - Markup Language perché SGML è un metalinguaggio per la codifica testuale, basato su

11

Un’applicazione “eretica”? Si usa per descrivere l’aspetto di un

documento e non solo la semantica del testo

Non sempre le regole di stile (foglio di stile CSS) vengono tenute separate

Possibilità di overlapping

Page 12: 1 Linguaggi di codifica. 2 Standard Generalized Markup Language: - Markup Language perché SGML è un metalinguaggio per la codifica testuale, basato su

12

HTML e l’interscambio dei dati HTML non è adatto allo scambio dei dati

perché gli elementi sono generici Elementi non definibili dall’utente Elementi non autoreferenziali

Page 13: 1 Linguaggi di codifica. 2 Standard Generalized Markup Language: - Markup Language perché SGML è un metalinguaggio per la codifica testuale, basato su

13

La nuova frontiera di SGML: XML Elaborato dal W3C Scopo: semplificare SGML per farlo

diventare il linguaggio del web Prima bozza: 1996 Prima versione (e per ora ultima): 1998

Page 14: 1 Linguaggi di codifica. 2 Standard Generalized Markup Language: - Markup Language perché SGML è un metalinguaggio per la codifica testuale, basato su

14

XML ≠ SGML Non supporta le regole di minimizzazione

La DTD non è obbligatoria

E’ case sensitive

www.w3.org/TR/NOTE-sgml-xml.

Page 15: 1 Linguaggi di codifica. 2 Standard Generalized Markup Language: - Markup Language perché SGML è un metalinguaggio per la codifica testuale, basato su

15

Caratteristiche Consente la creazione di vocabolari XML in

modo facile e intuitivo È autoesplicativo Può essere usato per documenti text-

oriented Può essere usato per l’interscambio dei

dati

Page 16: 1 Linguaggi di codifica. 2 Standard Generalized Markup Language: - Markup Language perché SGML è un metalinguaggio per la codifica testuale, basato su

16

XML: una famiglia di linguaggi XLink: linguaggio che serve per connettere diversi

documenti XML e non. XPointer: linguaggio che serve a specificare le aree

(locations) a cui si punta all’interno di un documento. XPath: linguaggio con il quale è possibile costruire

espressioni per localizzare informazioni all’interno di un documento XML.

XSL: linguaggi per la costruzioni di fogli di stile per la visualizzazione di documenti XML e per la trasformazione di documenti XML in altri documenti (altri XML, HTML, XHTML, solo testo, ecc.).

XHTML: l’implementazione di HTML basata su XML.

Page 17: 1 Linguaggi di codifica. 2 Standard Generalized Markup Language: - Markup Language perché SGML è un metalinguaggio per la codifica testuale, basato su

17

XML – documenti ben formati

Page 18: 1 Linguaggi di codifica. 2 Standard Generalized Markup Language: - Markup Language perché SGML è un metalinguaggio per la codifica testuale, basato su

18

<elementi> Struttura base di XML

Racchiude una unità testuale considerata come una componente strutturale del documento

XML dichiara solo la struttura relazionale degli elementi non la loro semantica

Page 19: 1 Linguaggi di codifica. 2 Standard Generalized Markup Language: - Markup Language perché SGML è un metalinguaggio per la codifica testuale, basato su

19

Generic Identifier Il nome di un elemento è detto GI

Un elemento è costituito da 1. start tag 2. contenuto 3. end tag

Un elemento può essere vuoto

Page 20: 1 Linguaggi di codifica. 2 Standard Generalized Markup Language: - Markup Language perché SGML è un metalinguaggio per la codifica testuale, basato su

20

Esempi di elementiElementoElemento<p> Questo è un paragrafo </p>

start tag + contenuto + end tag

Elemento vuotoElemento vuoto start tag = contenuto = end tag

<figura /> o <figura></figura>ma non<figura> </figura>

Page 21: 1 Linguaggi di codifica. 2 Standard Generalized Markup Language: - Markup Language perché SGML è un metalinguaggio per la codifica testuale, basato su

21

Struttura dei datiSequenza

<radice><titolo> Questo è un elemento titolo</titolo> <p>Questo è un paragrafo</p><nota>Questa è una nota</nota>

</radice>

Page 22: 1 Linguaggi di codifica. 2 Standard Generalized Markup Language: - Markup Language perché SGML è un metalinguaggio per la codifica testuale, basato su

22

Struttura dei datiAnnidamento

<radice><capitolo>Questo è un capitolo,

<titolo> Questo è un elemento titolo</titolo> <p>Questo è un paragrafo</p>

</capitolo>

</radice>

Page 23: 1 Linguaggi di codifica. 2 Standard Generalized Markup Language: - Markup Language perché SGML è un metalinguaggio per la codifica testuale, basato su

23

Relazioni gerarchiche e ordinaliDati due elementi obbligatori a e b, può

darsi uno solo di questi casi:

a contiene b a è contenuto da b a precede b a segue b

Page 24: 1 Linguaggi di codifica. 2 Standard Generalized Markup Language: - Markup Language perché SGML è un metalinguaggio per la codifica testuale, basato su

24

Esempio di testo

Testo

frontespizio Introduzione Corpo appendice

titolo + paragrafi titolo + capitoli

titolo

+ paragrafi

indice glossario

Page 25: 1 Linguaggi di codifica. 2 Standard Generalized Markup Language: - Markup Language perché SGML è un metalinguaggio per la codifica testuale, basato su

25

Strutture concorrenti<pagina n="1">

<p>Questo è un paragrafo nella pagina 1</p><p> Questo è un altro paragrafo</p><p> Questo paragrafo comincia a pagina 1

</pagina><pagina n="2">

e finisce nella pagina 2</p>

</pagina>

Page 26: 1 Linguaggi di codifica. 2 Standard Generalized Markup Language: - Markup Language perché SGML è un metalinguaggio per la codifica testuale, basato su

26

Milestone<pagina n="1" />

<p>Questo è un paragrafo nella pagina 1</p><p> Questo è un altro paragrafo</p><p> Questo paragrafo comincia a pagina 1

<pagina n="2" />e finisce nella pagina 2</p>

Page 27: 1 Linguaggi di codifica. 2 Standard Generalized Markup Language: - Markup Language perché SGML è un metalinguaggio per la codifica testuale, basato su

27

Esempio<antologia> <poesia><titolo>I</titolo> <stanza>

<verso>Voi ch'ascoltate in rime sparse il suono</verso><verso>di quei sospiri ond'io nudriva 'l core</verso><verso>in sul mio primo giovenile errore</verso><verso>quand'era in parte altr'uom da quel ch'i' sono,</verso>

</stanza> <stanza>

<verso>del vario stile in ch'io piango et ragiono</verso><verso>fra le vane speranze e 'l van dolore</verso><verso>ove sia chi per prova intenda amore</verso><verso>spero trovar pietà, nonché perdono.</verso>

</stanza> </poesia></antologia>

Page 28: 1 Linguaggi di codifica. 2 Standard Generalized Markup Language: - Markup Language perché SGML è un metalinguaggio per la codifica testuale, basato su

28

File ben formati deve esistere un singolo elemento (compreso fra uno start

ed un end tag) che racchiuda l’intero documento: tale elemento assume il nome di root element (<antologia> nel nostro caso);

tutti gli elementi devono essere racchiusi all’interno dell’elemento root o all’interno di elementi a loro volta racchiusi nell’elemento root; gli elementi non possono intrecciarsi gli uni agli altri (overlapping);

il tag che indica l’inizio e la fine dell’elemento deve essere sempre presente

Gli elementi vuoti devono essere correttamente chiusi o tramite uno slash all’interno dell’unico tag (<figura/>), oppure senza introdurre alcun carattere fra lo start-tag e l’end-tag (<figura></figura>).

Page 29: 1 Linguaggi di codifica. 2 Standard Generalized Markup Language: - Markup Language perché SGML è un metalinguaggio per la codifica testuale, basato su

29

Well formedness parsersI più diffusi:

Internet Explorer Netscape Navigator Nell’editor

Esempio Esercizio 1

Page 30: 1 Linguaggi di codifica. 2 Standard Generalized Markup Language: - Markup Language perché SGML è un metalinguaggio per la codifica testuale, basato su

30

CommentiTutto ciò che si trova all’interno di un

commento non viene elaborato

<!-- Commento -->

Page 31: 1 Linguaggi di codifica. 2 Standard Generalized Markup Language: - Markup Language perché SGML è un metalinguaggio per la codifica testuale, basato su

31

File ben formati – aggiunta I commenti devono essere aperti con <!--

e chiusi con --> *Non è ammesso il commento vuoto <!>

(SGML) *Un commento non può essere inserito

dentro un tag o dentro un altro commento

Page 32: 1 Linguaggi di codifica. 2 Standard Generalized Markup Language: - Markup Language perché SGML è un metalinguaggio per la codifica testuale, basato su

32

Attributi<p allineato="centro">Questo è un

paragrafo centrato</p>

<p allineato="sinistra">Questo è un paragrafo allineato a sinistra</p>

Page 33: 1 Linguaggi di codifica. 2 Standard Generalized Markup Language: - Markup Language perché SGML è un metalinguaggio per la codifica testuale, basato su

33

Le virgolette degli attributi

<p allineato="sinistra"> o

<p allineato='sinistra'> e non

<p allineato='sinistra">

Page 34: 1 Linguaggi di codifica. 2 Standard Generalized Markup Language: - Markup Language perché SGML è un metalinguaggio per la codifica testuale, basato su

34

File ben formati - aggiunta I valori degli attributi devono

necessariamente essere espressi fra virgolette semplici o doppie, con obbligo di coerenza

Un attributo non può essere usato due volte all’interno dello stesso elemento

Page 35: 1 Linguaggi di codifica. 2 Standard Generalized Markup Language: - Markup Language perché SGML è un metalinguaggio per la codifica testuale, basato su

35

Combinazione di più attributi

<p allineato="sinistra" n="1">Questo è il primo paragrafo giustificato a sinistra</p>

Page 36: 1 Linguaggi di codifica. 2 Standard Generalized Markup Language: - Markup Language perché SGML è un metalinguaggio per la codifica testuale, basato su

36

Elemento o attributo

Nuova categoria: elemento

Nuova tipologia di una categoria: attributo

Esercizio 2

Page 37: 1 Linguaggi di codifica. 2 Standard Generalized Markup Language: - Markup Language perché SGML è un metalinguaggio per la codifica testuale, basato su

37

Sezioni CDATA Consentono di ignorare una porzione di

markup Iniziano con <![CDATA[ Finiscono con ]]>

Page 38: 1 Linguaggi di codifica. 2 Standard Generalized Markup Language: - Markup Language perché SGML è un metalinguaggio per la codifica testuale, basato su

38

Sezioni CDATA<p>L'elemento <gi>foreign</gi> può

essere usato per marcare una parola in lingua straniera. Per esempio <![CDATA[<p>Noi andiamo spesso in vacanza in un <foreign lang='eng'>camping</foreign>.</p>]]>.</p>