Formati di interscambio



Похожие документы
extensible Markup Language

EXCEL PER WINDOWS95. sfruttare le potenzialità di calcolo dei personal computer. Essi si basano su un area di lavoro, detta foglio di lavoro,

XML (extensible Markup Language)

La Stampa Unione. Individuare la lista indirizzi per la Stampa Unione

La struttura: DTD. Laura Farinetti Dip. Automatica e Informatica Politecnico di Torino. laura.farinetti@polito.it

La sintassi di un DTD si basa principalmente sulla presenza di quattro dichiarazioni:

Excel. A cura di Luigi Labonia. luigi.lab@libero.it

Access. Microsoft Access. Aprire Access. Aprire Access. Aprire un database. Creare un nuovo database

Cos è ACCESS? E un programma di gestione di database (DBMS) Access offre: un ambiente user frendly da usare (ambiente grafico)

UTILIZZO DEL MODULO DATA ENTRY PER L IMPORTAZIONE DEI DOCUMENTI (CICLO PASSIVO)

GUIDA UTENTE PRIMA NOTA SEMPLICE

GESGOLF SMS ONLINE. Manuale per l utente

Database 1 biblioteca universitaria. Testo del quesito

5.3 TABELLE RECORD Inserire, eliminare record in una tabella Aggiungere record Eliminare record

Aprire, preparare un documento da utilizzare come documento principale per una stampa unione.

MANUALE D USO DELLA PIATTAFORMA ITCMS

5.6.1 REPORT, ESPORTAZIONE DI DATI

Per accedere clicca su START o AVVIO (in basso a sinistra sul tuo schermo), poi su PROGRAMMI, ACCESSORI e infine su BLOCCO NOTE.

Mon Ami 3000 Varianti articolo Gestione di varianti articoli

Capitolo 4 Pianificazione e Sviluppo di Web Part

Capitolo 3. L applicazione Java Diagrammi ER. 3.1 La finestra iniziale, il menu e la barra pulsanti

LA CORRISPONDENZA COMMERCIALE

MOBS Flussi informativi sanitari regionali

A destra è delimitata dalla barra di scorrimento verticale, mentre in basso troviamo una riga complessa.

Esame di Informatica CHE COS È UN FOGLIO ELETTRONICO CHE COS È UN FOGLIO ELETTRONICO CHE COS È UN FOGLIO ELETTRONICO. Facoltà di Scienze Motorie

STAMPA UNIONE DI WORD

GUIDA RAPIDA PER LA COMPILAZIONE DELLA SCHEDA CCNL GUIDA RAPIDA PER LA COMPILAZIONE DELLA SCHEDA CCNL

Fogli Elettronici: MS Excel utilizzo avanzato

Guida all uso di Java Diagrammi ER

On-line Corsi d Informatica sul web

per immagini guida avanzata Organizzazione e controllo dei dati Geometra Luigi Amato Guida Avanzata per immagini excel

Figura 1 Le Icone dei file di Excel con e senza macro.

ACCESSO AL SISTEMA HELIOS...

WORD (livello avanzato): Struttura di un Documento Complesso. Struttura di un Documento Complesso

lo PERSONALIZZARE LA FINESTRA DI WORD 2000

NUOVA PROCEDURA COPIA ED INCOLLA PER L INSERIMENTO DELLE CLASSIFICHE NEL SISTEMA INFORMATICO KSPORT.

Word processor funzione Stampa Unione

CREARE UN CODICE SEGRETO CON EXCEL

Pagina 1 di 16. Manuale d uso 626 VISITE MEDICHE

Le query. Lezione 6 a cura di Maria Novella Mosciatti

. A primi passi con microsoft a.ccepss SommarIo: i S 1. aprire e chiudere microsoft access Start (o avvio) l i b tutti i pro- grammi

Costruzione del layout in gino cms

On-line Corsi d Informatica sul Web

PULSANTI E PAGINE Sommario PULSANTI E PAGINE...1

Registratori di Cassa

Università di L Aquila Facoltà di Biotecnologie Agro-alimentari

WORD per WINDOWS95. Un word processor e` come una macchina da scrivere ma. con molte più funzioni. Il testo viene battuto sulla tastiera

Raggruppamenti Conti Movimenti

Che cos'è un modulo? pulsanti di opzione caselle di controllo caselle di riepilogo

NVU Manuale d uso. Cimini Simonelli Testa

2.0 Gli archivi. 2.1 Inserire gli archivi. 2.2 Archivio Clienti, Fornitori, Materiali, Noleggi ed Altri Costi. Impresa Edile Guida all uso

Il foglio elettronico. Excel PARTE

Definire gli attributi dei blocchi

Esercizio data base "Biblioteca"

REALIZZARE UN BUSINESS PLAN CON MICROSOFT EXCEL 2007

MICROSOFT WORD LA STAMPA UNIONE

Strutturazione logica dei dati: i file

GUIDA UTENTE MONEY TRANSFER MANAGER

Concetti fondamentali dei database database Cos'è un database Principali database

connessioni tra i singoli elementi Hanno caratteristiche diverse e sono presentati con modalità diverse Tali relazioni vengono rappresentate QUINDI

MODULO 4: FOGLIO ELETTRONICO (EXCEL)

Cosa è un foglio elettronico

Cos è un word processor

Il foglio elettronico 5/06/2013

Gestione delle informazioni necessarie all attività di validazione degli studi di settore. Trasmissione degli esempi da valutare.

Hub-PA Versione Manuale utente

Il software ideale per la gestione delle prenotazioni GUIDA UTENTE

filrbox Guida all uso dell interfaccia WEB Pag. 1 di 44

Sistema DE.PRO.EM. Istruzioni per il caricamento delle informazioni relative ai prodotti tramite file XML. Versione 1.0

SPECIFICHE E LIMITI DI EXCEL

1 Elenchi clienti e fornitori

XSL: extensible Stylesheet Language

Syllabus (estratto) Foglio elettronico. Excel. Open office - Office. Principio e funzionamento 26/11/2012. A. Ferrari

Centro Acquisti per la Pubblica Amministrazione EmPULIA. Linee guida per gli Enti Aderenti. Procedure Negoziate: Richiesta di Preventivo. Versione 2.

ARCHIVIAZIONE DOCUMENTI

M:\Manuali\VARIE\GENERAZIONE REPORT PARAMETRICI.doc GENERAZIONE REPORT PARAMETRICI

Manuale per i redattori del sito web OttoInforma

Workland CRM. Workland CRM Rel /11/2013. Attività --> FIX. Magazzino --> NEW. Nessuna --> FIX. Ordini --> FIX

Stampa Unione per lettere tipo

XML. XML è contemporaneamente: XML non è:

7. Layer e proprietà degli oggetti

Modulo 3 - Elaborazione Testi 3.6 Preparazione stampa

OSSERVATORIO RIFIUTI SOVRAREGIONALE ~ ~ ~ IMPORTAZIONE AUTOMATICA DELLE IMFORMAZIONI SUI RIFIUTI RITIRATI E PRODOTTI DAGLI IMPIANTI.

SIFORM MANUALE VOUCHER FORMATIVI A DOMANDA AZIENDALE

Moduli (schede compilabili) in Word Esempio: scheda di alimentazione per un degente

Gruppo Buffetti S.p.A. Via F. Antolisei Roma

Alcune regole di base per scrivere un programma in linguaggio C

Appunti di: MICROSOFT EXCEL

LA GESTIONE DELLE VISITE CLIENTI VIA WEB

Portale tirocini. Manuale utente Per la gestione del Progetto Formativo

Gestione Rapporti (Calcolo Aree)

Inserimento dei dati

Lezioni di Laboratorio sui Data Base

Esercizio sui data base "Gestione conti correnti"

CREAZIONE DI UN DATABASE E DI TABELLE IN ACCESS

Транскрипт:

Università degli Studi di Brescia Elementi di informatica e Programmazione Dipartimento di Ingegneria Meccanica e Industriale EXCEL Docente: Marco Sechi E-mail: marco.sechi@unibs.it Vers. 11/10/2015

Formati di interscambio Delimited: csv, tab-text Fixed: larghezza fissa, formattato

Formato dei files Per formato file si intende la modalità di registrazione dell'informazione all'interno di un file. Sono solitamente identificati mediante una sigla. Tra i formati più diffusi abbiamo: JPEG, TIFF, HTML, GIF, DOCX, ODS, TXT, ACCDB, MDB, XLSX, XLS etc. In Windows i formati sono associati all'estensione del nome del file (sequenza di caratteri che appaiono dopo l'ultimo punto nel nome). Ad esempio il nome "Foto.jpg" indica che l'immagine è stata archiviata utilizzando la codifica Jpeg. Il formato predefinito utilizzato da un'applicazione nel salvataggio dei propri documenti si dice formato nativo. E' evidente che ogni applicazione è in grado di leggere il proprio formato nativo. Alcune applicazioni possono avere più formati nativi. Ad esempio Excel 2013 è in grado di aprire o registrare documenti sia in XLSX che XLS. Il contenuto di un file risulta leggibile solo alle applicazioni che conoscono il formato specifico utilizzato nel salvataggio. Pertanto se un file non è registrato in uno dei formati nativi della nostra applicazione è necessario ricorrere ad opportune estensioni (filtri di importazione) che consentano al nostro programma di interpretare correttamente il formato utilizzato. Quando un'applicazione apre un file salvato in un formato non nativo si parla di importazione del file.

Formati dei files Un formato si dice portabile se è leggibile da un ampio numero di programmi e sistemi operativi. Ad esempio il GIF è un formato grafico portabile poiché quasi tutte le applicazioni che hanno a che fare con le immagini (videoscrittura, browser, programmi di grafica etc.) riescono a leggerlo. I formati i cui dettagli implementativi (i.e. progettuali) sono disponibili liberamente sulla rete si dicono aperti. Tale accessibilità favorisce la diffusione del formato per cui sempre più applicazioni sono in grado di interpretarlo. In altre parole i formati aperti diventano solitamente anche portabili. Un formato le cui regole di salvataggio sono non note oppure mantenute segrete si dice chiuso. Un formato che risulta protetto da brevetti o altri diritti viene detto formato proprietario. Generalmente un formato file proprietario risulta leggibile solo alle applicazioni che lo utilizzano come formato nativo oppure tramite particolari tools (generalmente sviluppati dalla stessa software house che ha inventato quel formato) di importazione/esportazione. I formati caratteristici di Internet, per garantire l'apertura verso tutti i sistemi, sono codificati utilizzando formati estremamente portabili. L'uso di formati portabili impedisce che alcuni sistemi possano restare esclusi. Il formato più portabile in assoluto è il formato testo. Tutti i formati non testuali si dicono binari.

Formato Testo I file di testo o Ascii sono sequenze di bit dove ogni byte viene interpretato come carattere Ascii. I formati testuali hanno il vantaggio di essere estremamente portabili ovvero leggibili da qualsiasi programma o sistema operativo. Non a caso i formati HTML, CSS, JS sono registrati proprio utilizzando questa modalità. Oltre ad Internet il formato testo è utilizzato come formato di interscambio di base dati tra 2 differenti sistemi. Ad esempio nel trasferimento dati da un archivio di partenza A ad un altro di destinazione B. Partendo dal formato nativo A, mediante un modulo di esportazione, viene creato un file portabile contenente i dati da trasferire. Programma A Dati salvati nel Formato A Modulo Esportazione File esportato testuale Dati salvati nel Formato B Modulo Importazione Programma B Il modulo di importazione legge i dati esportati (registrati in un formato portabile) e li registra all'interno del file di destinazione nel formato nativo B.

Formati di interscambio I formati testuali utilizzati per trasferire i dati da un archivio ad un altro si dicono formati di interscambio. Esistono diversi formati di interscambio classificati in 2 categorie principali: file delimitati (delimited) file a larghezza fissa (fixed file format) Nei files delimitati ogni record, registrato nel file, viene separato dal successivo mediante un invio (codice ascii 13 + 10 = CrLf carriage return line feed) mentre ogni campo è separato da uno o più caratteri specifici detti "delimitatori". A seconda del "delimitatore" utilizzato abbiamo diversi sottotipi tra cui spiccano per importanza e diffusione il formato CSV e Tab-Text. I file a larghezza fissa sono file testuali dove ogni record, registrato nel file, viene separato con un invio (CrLf) mentre ad ogni campo viene assegnata una lunghezza in caratteri fissa. La fine di ogni campo viene individuata tenendo conto del numero di caratteri che gli sono stati assegnati.

Tab-text E' il formato testuale di interscambio più utilizzato. Si tratta di un file delimitato dove il carattere separatore è il tab (codifica ascii 9). Nell'esempio proposto la prima riga riporta il nome dei campi. In questo caso si dice che il file contiene le intestazioni dei campi. CSV CodiceNominativoDipartimento 1Nove BiancaDIMI 2Rossini GioacchinoDII 3Neri ChiaraDICATAM 4Bianchi BrunaDIMI CSV è un altro formato testuale di interscambio molto diffuso di tipo delimited dove il carattere di separazione è solitamente la virgola (oppure il punto e virgola). Nel file di interscambio l'intestazione dei campi può essere omessa. Codice,Nominativo,Dipartimento,Età 1,"Nove Bianca","DIMI",12 2,"Rossi Gioacchino","DII",21 3,"Neri Chiara","DICATAM",18 4,"Verdi Enrico","DIMI",19

Larghezza Fissa In questo formato ad ogni campo viene riservato un numero fisso di caratteri e questo indipendentemente dal contenuto reale del campo. Pertanto quando i caratteri assegnati sono terminati si passa al campo successivo ed eventualmente il contenuto di quel campo viene troncato. Ogni record è separato dal successivo mediante un invio (Crlf). Nel file di interscambio le intestazione dei campi solitamente vengono essere omesse. La descrizione che per ogni campo indica la posizione del carattere iniziale e di quello finale è detta tracciato del file. La conoscenza del tracciato è indispensabile per importare correttamente i dati. Da A Campo ------------------------ 01 03 Matricola 04 20 Nominativo 21 28 Data di Nascita 29 36 Reddito Da A Campo ------------------------ 37 44 Dipartimento 45 46 Provincia 47 66 Indirizzo 67 68 CrLf

Formattati Rappresenta una tipologia di formato di interscambio mista che possiede sia le caratteristiche tipiche di un file a larghezza fissa che quelle di un file delimitato. In un file formattato vengono utilizzati i trattini (-) e caratteri barra verticale ( ) per disporre i contenuti in una griglia. I record vengono visualizzati come righe e i campi come colonne. Eventualmente i nomi dei campi (intestazioni) vengono aggiunti sulla prima riga. -------------------------------------------- ID Indizzo E-mail -------------------------------------------- 1 nancy@northwindtraders.com -------------------------------------------- 2 andrew@northwindtraders.com -------------------------------------------- 3 jan@northwindtraders.com -------------------------------------------- 4 mariya@northwindtraders.com -------------------------------------------- 5 steven@northwindtraders.com --------------------------------------------

XML XML (extensible Markup Language) è linguaggio marcatore basato su un meccanismo sintattico che consente di definire e controllare il significato degli elementi contenuti in un documento o in un testo. Mentre HTML definisce una grammatica per la descrizione e la formattazione di pagine web (layout) XML è un metalinguaggio utilizzato per descrivere documenti strutturati. Con XML è possibile definire dei propri tag a seconda delle esigenze. XML è utilizzato per: definizione della struttura di documenti scambio di informazioni tra sistemi diversi definizione di formati di dati. L'XML è oggi molto utilizzato anche come mezzo per l'esportazione di dati tra diversi DBMS. La prima riga indica la versione di XML in uso e specifica la codifica UTF-8 per la corretta interpretazione dei dati. <?xml version="1.0" encoding="utf-8"?> <utenti> <utente> <nome>luca</nome> <cognome>cicci</cognome> <indirizzo>milano</indirizzo> </utente> <utente> <nome>max</nome> <cognome>rossi</cognome> <indirizzo>roma</indirizzo> </utente> </utenti>

XML L'XML utilizza dei marcatori, detti tag (etichette), per assegnare una semantica al testo. Ogni tag inizia e finisce con < e > ed ha un corrispondente tag di chiusura riconoscibile per lo / posto dopo il carattere <. I tag possono contenere informazioni in due modi: attraverso degli "attributi" (esempio <studente matricola="0001">) racchiudendo le informazioni tra il tag di apertura e il suo corrispondente tag di chiusura (esempio <matricola>0001</matricola>) Nella stesura di un documento XML occorre rispettare alcune regole: I tag non possono iniziare con numeri o caratteri speciali e non possono contenere spazi; I valori assegnati agli attributi devono essere racchiusi tra doppi apici I tag sono case sensitive (<esito> è diverso da <Esito>) i tag non vuoti devono avere una corrispondente chiusura. Quelli non vuoti possono essere scritti con la cosidetta sintassi minimizzata: <esitoesame></esitoesame> <esitoesame />

XML Per poter essere correttamente interpretato, un documento XML deve essere ben formato, ovvero deve possedere le seguenti caratteristiche: Un prologo, che è la prima istruzione che appare scritta nel documento. Nel nostro esempio: <xml version="1.0" encoding="utf-8">. Un unico elemento radice (ovvero il nodo principale, chiamato root element) che contiene tutti gli altri nodi del documento. Nell'esempio presentato in una slide precedente è: <utenti>. All'interno del documento tutti i tag devono essere bilanciati (ovvero devono essere opportunamente nidificati, cioè i tag di chiusura devono seguire l ordine inverso dei rispettivi tag di apertura) Concretamente, un documento XML è un file di testo che contiene una serie di tag, attributi e testo secondo regole sintattiche ben definite. Un documento XML è caratterizzato da una struttura gerarchica. Esso è composto da componenti denominati elementi. Ciascun elemento rappresenta un componente logico del documento e può contenere altri elementi (sottoelementi) o del testo. Gli elementi possono avere associate altre informazioni che ne descrivono le proprietà. Queste informazioni sono chiamate attributi. <studente matricola="01292"> <nominativo>rossi</nominativo>... </studente>

XML L organizzazione degli elementi segue un ordine gerarchico o arboreo che prevede un elemento principale, chiamato root element o semplicemente root o radice. La radice contiene l insieme degli altri elementi del documento. Possiamo rappresentare graficamente la struttura di un documento XML tramite un albero, generalmente noto come document tree. Per fissare le idee prendiamo in considerazione la rappresentazione di un generico articolo a carattere tecnico e proviamo a rappresentarlo secondo il modello XML, come mostrato in figura Nella figura abbiamo un root element denominato articolo che contiene una lista di elementi che rappresentano i vari paragrafi dell articolo. Ciascun paragrafo a sua volta contiene del testo, degli esempi di codice e delle immagini. La maggior parte degli elementi di questo document tree possiede degli attributi: titolo, tipo, file

XML La struttura gerarchica preedente viene tradotta nel corrispondente documento XML. Il documento XML non è altro che un normale file di testo creato con un qualsiasi editor. La struttura logica di un documento XML dipende dalle scelte progettuali. Siamo noi a decidere come organizzare gli elementi all interno di un documento XML. Non esistono regole universali per l organizzazione logica di un documento se non il buon senso e l esperienza. <?xml version="1.0"?> <articolo titolo="titolo Articolo"> <paragrafo titolo="titolo 1 paragrafo"> <testo> Testo del 1 paragrafo </testo> <immagine file="immagine1.jpg" /> </paragrafo> <paragrafo titolo="titolo 2 paragrafo"> <testo> Testo del 2 paragrafo </testo> <codice> Esempio di codice </codice> <testo> Altro blocco di testo </testo> </paragrafo> <paragrafo tipo="bibliografia"> <testo> Riferimento ad un articolo </testo> </paragrafo> </articolo>

XML Per quanto riguarda il contenuto, un documento XML può contenere potenzialmente qualsiasi carattere dell alfabeto latino, cifre e punteggiatura. Normalmente sono accettati in un documento XML i primi 128 caratteri della codifica ASCII (lettere dell alfabeto latino minuscole e maiuscole, cifre, segni di punteggiatura, etc.). Se un documento contiene caratteri che non rientrano tra questi (es.: lettere accentate, simboli di valuta, ecc.) è necessario specificare lo schema di codifica utilizzato. Lo schema di codifica ed altre informazioni dirette al software incaricato di elaborare il documento XML sono indicate tramite elementi speciali detti direttive di elaborazione o processing instruction. Ad esempio, la seguente direttiva di elaborazione: <?xml version="1.0" encoding="iso-8859-1"?>. abilita l uso del set di caratteri noto come Latin1. contenente le lettere accentate ed altri simboli. Il charset ISO-8859-1 (Latin 1) rappresenta il set di caratteri tipico dell'europa occidentale (tale charset contiene le lettere dell'alfabeto, i numeri, la punteggiatura e vari simboli tipici della nostra lingua e delle altre lingue dell'europa occidentale). Oltre alle direttive di elaborazione, in un documento XML possiamo trovare i commenti, cioè informazioni rivolte agli esseri umani ed ignorate dai software che lo elaborano. I commenti XML seguono la stessa sintassi dell HTML, sono cioè racchiusi tra le sequenze di caratteri <!-- e --> e possono trovarsi in qualsiasi punto del documento

XML Potrebbe essere necessario inserire in un documento XML dei caratteri riservati che potrebbero renderlo non ben formato. Ad esempio, se dobbiamo inserire del testo che contiene il simbolo <, corriamo il rischio che possa venire interpretato come l inizio di un nuovo tag, come nel seguente esempio: <testo> il simbolo < indica minore di </testo> Per evitare situazioni di questo tipo, XML prevede degli oggetti speciali detti entità che consentono di sostituire i caratteri riservati. Cinque entità sono predefinite e consentono l uso di altrettanti caratteri riservati all interno di un documento: Entità & Carattere corrispondente & < < > > " " &apos; ' Ricorrendo alle entità predefinite, l esempio precedente diventa <testo> il simbolo < indica minore di </testo>

XML XML offre la libertà di definire i tag a seconda delle necessità, ma perché non si generi confusione è necessario avere un meccanismo che ne vincoli l utilizzo all interno dei documenti (ad esempio non ha senso definire 2 elementi cognome all'interno dell'elemento studente) In altre parole abbiamo bisogno di definire una grammatica per il linguaggio di markup che abbiamo ideato. Una grammatica è un insieme di regole che indica quali vocaboli (elementi) e come (struttura) possono essere utilizzati. Se un documento XML rispetta le regole definite da una grammatica è detto valido per un particolare linguaggio. Ma come si definisce una grammatica per descrivere un linguaggio di markup? Attualmente esistono due approcci per definire la grammatica associata al linguaggio di markup utilizzato all'interno di un documento XML: Dtd - Document Type Definition XML Schema.

XML Document type definition Da un punto di vista cronologico, il primo approccio per la definizione di grammatiche per documenti XML è rappresentato dai Document Type Definition (DTD). La sintassi di un Dtd si basa principalmente sulla presenza di due dichiarazioni: <!ELEMENT> che definisce gli elementi utilizzabili nel documento e la struttura del documento stesso, <!ATTLIST> che definisce la lista di attributi per ciascun elemento. Ad esempio, la dichiarazione La seguente dichiarazione <!ELEMENT articolo(paragrafo+)> indica che l elemento <articolo> ha come sottoelemento uno o più elementi <paragrafo>. I caratteri speciali +,*,?, scritti dopo il nome del sottoelemento, indicano il tipo di occorrenze dello stesso. In particolare: Carattere Speciale Significato * Zero o più volte + Una o più volte? Zero o una volta

XML Document type definition La seguente dichiarazione <!ELEMENT paragrafo(immagine*, testo+)> indica che l elemento <paragrafo> contiene una sequenza di elementi <immagine> e <testo>. L elemento <immagine> può essere presente zero o più volte, mentre <testo> deve essere presente almeno una volta. Per la definizione dei tag che non contengono sottoelementi dobbiamo distinguere due casi: Quando si tratta di un tag vuoto come <immagine> la definizione è <!ELEMENT immagine EMPTY> Quando gli elementi racchiudono del testo abbiamo: <!ELEMENT testo (#PCDATA)> Elementi, il cui contenuto non è definito a priori, cioè possono essere vuoti o contenere altri elementi, utilizzano la seguente dichiarazione: <!ELEMENT elemento ANY>

XML Document type definition Per la definizione degli attributi di ciascun tag si usa <!ATTLIST>. Ad esempio, la dichiarazione successiva indica che l elemento <articolo> prevede un attributo titolo che può avere come valore una qualsiasi combinazione di caratteri (CDATA). L indicazione #REQUIRED indica che la presenza dell attributo è obbligatoria. <!ATTLIST articolo titolo CDATA #REQUIRED> Valori alternativi a #REQUIRED sono: Carattere Speciale #REQUIRED #IMPLIED #FIXED valore Significato obbligatorio facoltativo Che si tratta di un valore costante Se un attributo prevede una valorizzazione basata su voci predefinite è necessario specificarle come accade per l attributo tipo del tag <paragrafo> <!ATTLIST paragrafo tipo (abstract bibliografia note) #IMPLIED> Con questa dichiarazione l attributo tipo è opzionale e può assumere uno tra i seguenti valori: abstract, bibliografia o note.

XML Document type definition Le seguenti dichiarazioni costituiscono il Dtd completo per il file XML associato al nostro esempio sugli articoli. <!ELEMENT articolo (paragrafo+)> <!ELEMENT paragrafo (immagine*, testo+, codice*)> <!ELEMENT immagine EMPTY> <!ELEMENT testo (#PCDATA)> <!ELEMENT codice (#PCDATA)> <!ATTLIST articolo titolo CDATA #REQUIRED> <!ATTLIST paragrafo titolo CDATA #IMPLIED tipo (abstract bibliografia note) #IMPLIED > <!ATTLIST immagine file CDATA #REQUIRED> <?xml version="1.0"?> <!DOCTYPE articolo[ ]> <articolo titolo="titolo Articolo"> <paragrafo titolo="titolo 1 paragrafo"> <testo> Testo del 1 paragrafo </testo> <immagine file="immagine1.jpg" /> </paragrafo> <paragrafo titolo="titolo 2 paragrafo"> <testo> Testo del 2 paragrafo </testo> <codice> Esempio di codice </codice> <testo> Altro blocco di testo </testo> </paragrafo> <paragrafo tipo="bibliografia"> <testo> Riferimento ad un articolo </testo> </paragrafo> </articolo> Esistono due modi per indicare il Dtd a cui un documento XML fa riferimento. Il primo modo prevede la scrittura del Dtd all interno del documento XML, come si vede nel seguente esempio: La dichiarazione <!DOCTYPE... indica che il documento individuato dall elemento root <articolo> segue le regole definite tra le parentesi quadre.... definizioni dtd... <?xml version= 1.0 > <!DOCTYPE articolo[...definizioni del Dtd... ]> <articolo>...

XML Document type definition Il secondo modo prevede che il Dtd sia definito in un file esterno (solitamente con estensione dtd) e il documento XML abbia al suo interno un riferimento a tale file, come "articolo.dtd" nel seguente esempio: <?xml version="1.0"> <!DOCTYPE articolo SYSTEM "articolo.dtd"> <articolo>... L uso dei Dtd per definire la grammatica presenta alcuni svantaggi: Non rispetta le regole stesse di XML Non consente di specificare un tipo di dato per il valore degli attributi Non consente di specificare il numero minimo o massimo di occorrenze di un tag Excel non lo supporta <!ELEMENT articolo (paragrafo+)> <!ELEMENT paragrafo (immagine*, testo+, codice*)> <!ELEMENT immagine EMPTY> <!ELEMENT testo (#PCDATA)> <!ELEMENT codice (#PCDATA)> <!ATTLIST articolo titolo CDATA #REQUIRED> <!ATTLIST paragrafo titolo CDATA #IMPLIED tipo (abstract bibliografia note) #IMPLIED > <!ATTLIST immagine file CDATA #REQUIRED>

XML XML Schema I limiti del Dtd hanno portato alla definizione di approcci alternativi per definire grammatiche per documenti XML. Tra questi approcci il più noto è XML Schema. A differenza di un Dtd, che utilizza una propria sintassi specifica, XML Schema utilizza la stessa sintassi XML per definire la grammatica di un linguaggio di markup. Quindi un XML Schema è un documento XML che descrive la grammatica di un linguaggio XML. In quanto documento XML, XML Schema ha un suo root element (<xs:schema>) che contiene tutte le regole di definizione della grammatica. <?xml version="1.0"?> <xs:schema xmlns:xs="http://www.w3.org/2001/xmlschema">... Definizione della grammatica... </xs:schema> La scrittura xmlns:xs="http://www.w3.org/2001/xmlschema" indica che in questo documento verranno utilizzati i tag speciali definiti dal namespace standard del W3C. Nel nostro caso questi tag speciali sono caratterizzati dal prefisso xs:. W3C è un consorzio di aziende del settore informatico che si occupa di definire gli standard di riferimento (sistemi e linguaggi per la trasmissione dei dati) per il Web.

XML XML Schema XML Schema prevede il tag <xs:element> per la definizione degli elementi utilizzabili in un documento XML. L'attributo name permette la definizione del nome del tag. All interno di ciascun tag <xs:element> possiamo indicare il tipo di dato attribuito all elemento <xs:element name="testo" type="xs:string" /> <xs:element name="quantita" type="xs:integer" /> XML Schema permette di gestire due categorie di tipi di dato: semplice e complesso. Nella tabella sottostante abbiamo l'elenco dei tipi semplici predefiniti: Tipo di dato xs:string xs:integer xs:decimal xs:boolean xs:date xs:time xs:urireference Descrizione Stringa di caratteri Numero intero Numero decimale Valore booleano (vero/falso) Data Ora URL

XML XML Schema XML Schema prevede anche la possibilità di definire tipi di dato semplici personalizzati, come derivazione di quelli semplici predefiniti. Ad esempio se abbiamo bisogno di limitare l'elemento <quantita> all'interno dell'intervallo dei numeri interi compresi tra 1 a 100, possiamo definirlo nel seguente modo: <xs:element name="quantita"> <xs:simpletype> <xs:restriction base="xs:integer"> <xs:mininclusive value="1" /> <xs:maxinclusive value="100" /> </xs:restriction> </xs:simpletype> </xs:element> I tipi di dato complessi si riferiscono ad elementi che possono contenere a loro volta altri elementi e diversi attributi. Definire un elemento di tipo complesso corrisponde a definire la relativa struttura. Lo schema generale per la definizione di un elemento di tipo complesso è il seguente: <xs:element name="nomeelemento"> <xs:complextype>... Definizione del tipo complesso...... Definizione degli attributi... </xs:complextype> </xs:element>

XML XML Schema Se l elemento è composto da sottoelementi di tipo diverso possiamo definire la sequenza degli elementi che possono stare al suo interno mediante uno dei costruttori di tipi complessi previsti: <xs:sequence> <xs:choice> <xs:all> consente di definire una sequenza ordinata di sottoelementi Consente di definire un elenco di sottoelementi alternativi Consente di definire una sequenza non ordinata di sottoelementi Per ciascuno di questi costruttori e per ciascun elemento è possibile definire il numero di occorrenze previste utilizzando gli attributi minoccurs e maxoccurs. Ad esempio, se l elemento testo può essere presente una o infinite volte all interno di un paragrafo possiamo esprimere questa condizione nel seguente modo: <xs:element name="paragrafo"> <xs:complextype> <xs:element name="testo" minoccurs="1" maxoccurs="unbounded"/> </xs:complextype> </xs:element>

XML XML Schema La definizione degli attributi è basata sull uso del tag <xs:attribute>: <xs:attribute name="cognome" type="xs:string" use="required" /> <xs:attribute name="dipartimento" type="xs:string" use="default" value="dimi" /> L attributo use consente di specificare alcune caratteristiche come la presenza obbligatoria (required) o un valore predefinito (default) in combinazione con l attributo value. Di default gli attributi per i quali non si specifica esplicitamente l obbligatorietà sono da considerarsi opzionali. XML Schema consente la dichiarazione di tipo. In altre parole possiamo definire un tipo complesso, in base al seguente schema, e riutilizzarlo ripetutamente applicato a diversi elementi (si veda l'esempio sottostante). <xs:complextype name="nome_tipo">... </xs:complextype> <xs:element name="nome_elementoa" type="nome_tipo" /> <xs:element name="nome_elementob" type="nome_tipo" />

XML XML Schema Il seguente codice riporta lo schema XML per il linguaggio di descrizione degli articoli visto nelle slide precedenti, riorganizzato alla luce della possibilità di definire tipi di dato. Lo schema XML viene salvato in un file di testo (ad esempio "Articoli.xsd"). <?xml version="1.0"?> <xs:schema xmlns:xs="http://www.w3.org/2001/xmlschema"> <xs:element name="articolo"> <xs:complextype> <xs:sequence> <xs:element name="paragrafo" type="tipo_paragrafo" maxoccurs="unbounded" /> </xs:sequence> <xs:attribute name="titolo" type="xs:string" use="required"/> </xs:complextype> </xs:element> <xs:complextype name="tipo_paragrafo"> <xs:sequence maxoccurs="unbounded"> <xs:element name="testo" minoccurs="1" /> <xs:element name="immagine" type="tipo_immagine" minoccurs="0"/> <xs:element name="codice" minoccurs="0"/> </xs:sequence> <xs:attribute name="titolo" type="xs:string" use="optional"/> <xs:attribute name="tipo" use="optional"> <xs:simpletype> <xs:restriction base="xs:string"> <xs:enumeration value="abstract"/> <xs:enumeration value="bibliografia"/> <xs:enumeration value="note"/> </xs:restriction> </xs:simpletype> </xs:attribute> </xs:complextype> <xs:complextype name="tipo_immagine"> <xs:attribute name="file" use="required"> <xs:simpletype> <xs:restriction base="xs:string"/> </xs:simpletype> </xs:attribute> </xs:complextype> </xs:schema>

XML XML Schema Ci sono diversi modi per indicare lo schema da utilizzare per la validazione di un file XML. Uno di questi consiste nell inserire nel documento XML un riferimento allo schema da utilizzare. Questo riferimento viene inserito nell'elemento root come visibile nel seguente esempio:"articoli.xsd" <?xml version="1.0"?> <articolo titolo="titolo Articolo" xmlns:xsi="http://www.w3.org/2001/xmlschema-instance" xsi:nonamespaceschemalocation="articoli.xsd"> <paragrafo... Il file XML del nostro esempio, importato all'interno di Excel, produce il seguente risultato

Importazione da fonti dati esterne importazione di un delimited Importazione di un fixed format

Importazione di un delimited Vediamo ora come importare un file delimited con Excel. Immaginiamo quindi di voler acquisire il file testuale delimited "calciatori.txt" dove il simbolo di separazione è la pipe ( ) (il file è disponibile sul sito www.brescianet.com). Supponiamo che dell'archivio non ci interessino tutti i campi ma solo una parte: ID, Nominativo e Squadra (1, 3 e 4 colonna).

Importazione di un delimited Prima cosa, dopo aver aperto una cartella di Excel, richiamiamo il ribbon "Dati " (sezione "Carica dati esterni") e cliccare sull'icona "Da testo". Occorre quindi selezionare il file da importare (A) e confermare l'importazione (B)

Importazione di un delimited Successivamente bisogna specificare che si tratta di un delimitato (A) e procedere (B) Indicare eventualmente: - se il file contiene le intestazioni dei campi (1) - Il numero della riga dove iniziano i dati (2) - Eventuale codifica Unicode utilizzata nel file di interscambio (3)

Importazione di un delimited Procedere poi in questo modo: - Specificare il carattere che delimita i singoli campi (A). - Indicare eventualmente se i campi testuali risultano racchiusi tra i doppi apici " (1) - Infine continuare cliccando sul bottone "Avanti >" (C) Se il delimited fosse stato un Tab-text bisognava spuntare il check box "Tabulazione" mentre nel caso di un CSV occorreva spuntare il check box "Punto e virgola" oppure "Virgola" a seconda.

Importazione di un delimited Cliccare sulle intestazioni (1, 2 e 3) ed indicare il formato oppure se si vuole escludere la colonna dalla procedura di importazione (A). E' possibile effettuare la selezione multipla (3) per velocizzare questa operazione. Passare alla schermata successiva cliccando sul bottone "Fine" (B).

Importazione di un delimited Concludere indicando il foglio e la cella di destinazione dei dati importati (A) e finire cliccando sul bottone "OK" (B). Terminata l'importazione ricordarsi di salvare il file in formato xls/xlsx in modo che eventuali formule e modifiche rimangano registrate (se salvo come txt saranno irrimediabilmente perdute!). I dati importati verranno disposti in forma tabellare all'interno di un foglio della cartella di Excel.

Importazione di un fixed format Vediamo ora come importare un file a larghezza fissa all'interno di un foglio di Excel. Consideriamo quindi il file "studentifixformat.txt" disponibile sul sito mio sito. Il tracciato dati del file indicato è il seguente: Da A Campo Dimensione ---+---+--------------------------------+-------- 001 005 Matricola 5 char 006 020 Cognome 15 char 021 035 Nome 15 char 036 040 Classe 5 char 000 000 Sesso 1 char 000 000 Ripetente 2 char 000 000 Bocciato 2 char 000 000 Nr Accessi al Registro WEB 2 char 000 000 Ultimo Accesso al Registro WEB 23 char 000 000 Risultato Finale 75 char ------------------------------------------------- Totale: 145 char Prima cosa, dopo aver aperto una cartella di Excel, richiamiamo il ribbon "Dati " (sezione "Carica dati esterni") e cliccare sull'icona "Da testo".

Importazione di un fixed format Nella finestra di dialogo che compare occorre selezionare il file da importare (A) e confermare l'importazione (B)

Importazione di un fixed format Successivamente bisogna specificare che si tratta di un larghezza fissa (A) e procedere cliccando sul bottone "Avanti >" (B) Indicare eventualmente: - se il file contiene le intestazioni dei campi (1) - Il numero della riga iniziale contenente i dati (2) - Eventuale codifica Unicode utilizzata nel file di interscambio (3)

Importazione di un fixed format Indicare ora i limiti di ogni singolo campo (A): - Eliminando le frecce errate (in grigio) - Aggiungendone delle nuove quando mancanti (in rosso) E' possibile spostare le frecce trascinandole opportunamente. Infine proseguire cliccando sul bottone "Avanti >"

Importazione di un fixed format Concludere indicando il foglio e la cella di destinazione dei dati importati (A) e finire cliccando sul bottone "OK" (B). Terminata l'importazione ricordarsi di salvare il file in formato xls/xlsx in modo che eventuali formule e modifiche rimangano registrate (se salvo come txt saranno irrimediabilmente perdute!). I dati importati verranno disposti in forma tabellare all'interno di un foglio della cartella di Excel.

Importazione di un File XML Per importare un file XML seguire questa procedura: (A) Andare nel ribbon DATI e cliccare sul bottone "Carica dati esterni" (B). Richiamare "Da altre origini" (C) ed infine cliccare sulla voce "Da importazione dati XML" (D)

Importazione di un File XML E) Selezionare quindi il file da importare F) Attenzione! Se appare questo messaggio significa che il documento XML non è corretto

Importazione di un File XML G) Confermare l'assenza di uno schema cliccando su ok I) Al termine i dati contenuti nel file XML verranno visualizzati all'interno del foglio nel seguente modo H) Infine indicare la posizione dove inserire i dati

Importazione di un File XML Per rilevare eventuali errori nel file XML si può A) aprire il documento XML utilizzando il menu Apri di Excel, C) Cliccare su "Dettagli " nella finestra B) Selezionare le di dialogo che appare in caso di errore modalità di apertura Un esempio di errore è rappresentato dall'aver inserito un tag finale che non corrisponde ad alcun tag iniziale. Si rammenta che XML è case sensitive per cui non posso scrivere </Esito> come corrispondente tag di chiusura del tag di apertura <esito>. D) Infine ricercare le motivazioni che hanno portato Excel a scartare il documento XML

Importazione di un File XML In alternativa, per rilevare gli errori, posso utilizzare un editor XML come XML Notepad. Durante il caricamento del file XML il programma avvisa descrivendo l'errore che ha riscontrato. Se il file è corretto l'editor XML mostrerà il contenuto del file in una struttura ad albero. Questo è il file XML utilizzato nelle prove <?xml version="1.0" encoding="utf-8"?> <studenti> <Studente> <matricola>029919</matricola> <nominativo>rossi Mario</nominativo> <insegnamento>geometria</insegnamento> <esito>22</esito> </Studente> <Studente> <matricola>0012</matricola> <nominativo>neri Bruno</nominativo> <insegnamento>metallurgia</insegnamento> <esito>19</esito> </Studente> <Studente> <matricola>000121</matricola> <nominativo>verdi Mara</nominativo> <insegnamento>analisi Matematica B</insegnamento> <esito>29</esito> </Studente> </studenti>