XML per documenti e applicazioni transazionali su Internet Alessio Saltarin Progetto XML Factory
PERCORSO ELEMENTI DI XML –Sintassi, DTD, Namespace, Schema XML PER DOCUMENTI –Gestione documentale –Lapproccio Microsoft XML PER DATI –Knowledge Management XML OGGI –Tecnologie correlate
Elementi di XML
Struttura e Sintassi Prologo: – Document Type Declaration (DTD) – Document Element (Root) –
Un primo esempio Acetaldeide ammoniaca RPE 15 mm 61,08 99% (alcalimetrico 95.0C1.5C Acetale RE 20 mm 118,17 98% (GLC) 20/4 = /D = C (b.r. 1.0C)
Nomi di tag XML è case-sensitive –,,, e sono tutti elementi diversi. Devono cominciare con una lettera, un underscore (_), o due punti (:) Possono includere lettere, numeri, punti (.), linee (-), underscore (_), o due punti (:) Non possono cominciare con XML
Primo esempio (reagenti.xml) Parsing in Internet Explorer 5.0 Parsing in Netscape (Mozilla Gecko) Editing con XML Spy
ELEMENTI Rappresentano la struttura LOGICA Libro Titolo Capitolo Paragrafo 1: Era una notte buia e tempestosa... Paragrafo 2: Loscurità portava con sé molti segreti...
ATTRIBUTI Gli elementi possono contenere: –Dati –Attributi A. Saltarin
Utilizzo di attributi Acetaldeide ammoniaca RPE 15 61,08 99% 95.0 Acetale RE ,17 98%
ENTITA Rappresentano la struttura fisica Sono parti di testo che il processore XML inserisce dove sono referenziate Possono essere un solo carattere o un intero libro Possono essere immagini, animazioni, file PDF o record di database
Scrivete a: &MIO ; REFERENZA (reference): DICHIARAZIONE (entità parsabile):
Unparsed Entities e Notazioni Lentità MyImage è un file binario in notazione PNG: La notazione PNG è processata dal programma Viewer.exe:
Document Type Definition (DTD) Definisce Elementi, Attributi, Entità e Notazioni Dichiara quali di questi sono legali nel documento… …e in quale posto sono legali La conformità ad una DTD si dichiara nella sezione DOCTYPE del file XML
XML+DTD = ML DTD Mark-Up Language
Una semplice DTD <!ELEMENT Riga (descrizione+, pezzatura, qualifica, ps, massa_molec, titolo, titolint, densita*, idx_rifrazione*, punto_fusione*, punto_eboll*)>
TIPI FONDAMENTALI #PCDATA (Parsable Character Data) Sono caratteri che possono contenere tags e quindi vanno parsati (questo è anche il tipo di default). #CDATA (Character Data) Sono caratteri che in ogni caso il parser deve ignorare. EMPTY Questo elemento non può contenere dati. ANY Questo elemento può contenere qualsiasi tipo.
ATTRIBUTI GENERICI #REQUIRED Ogni elemento deve specificare il valore di questo attributo. #IMPLIED Attributo opzionale. #FIXED value Il valore value è lunico possibile per lattributo. Può essere implicito o esplicito. default Il valore default è assunto se il documento non ne specifica altri.
Una DTD per ... <!ATTLIST LANGUAGE (Western|Greek|Latin|Universal) "Western" ENCRYPTED CDATA #IMPLIED PRIORITY (NORMAL|LOW|HIGH) "NORMAL"> <!ATTLIST BCC HIDDEN CDATA #FIXED "TRUE">
… e rispettivo MarkUp Language <!DOCTYPE SYSTEM .dtd" [ ]> Utilizziamo il mark-up per le Ciao da &SIGNATURE;. Ti saluto, -&SIGNATURE;
VALIDITA Documenti validi (valid): –Un documento valido rispetta strettamente le regole definite nella DTD Documenti ben formati (well formed): –Un documento ben formato rispetta completamente la specifica XML definita dallente standardizzatore (W3C)
PARSER VALIDANTI Lo sono quelli che non permettono di parsare documenti che non rispettino le regole contenute nella DTD (es.:MSXML, XMLSpy) Parser non validanti non effettuano alcun controllo di validità del documento (es.: IE5).
NAMESPACE Qualificano gli elementi in maniera unica su tutto il Web. Permettono agli sviluppatori di utilizzare mark-up provenienti da schema o DTD diverse. I componenti schema sono riutilizzabili.
Esempio di Namespace <ec:Order xmlns:ec=" xmlns:dsig=" xmlns:df= Petti Carlo <bk:BOOK xmlns:bk=" TITLE="Number, the Language of Science" AUTHOR="Dantzig, Tobias"/> <bk:BOOK xmlns:bk=" TITLE="Introduction to Objectivist Epistemology" AUTHOR="Rand, Ayn"/>
XML-Data (Schema) Cosa che cè che non va in DTD? Ha una sintassi difficile e non xml-like Non supporta i tipi (intero, stringa) Non supporta specificamente i Namespace Non permette lereditarietà fra componenti
Esempio di Schema <AttributeType name="type" dt:type="enumeration" dt:values="rain snow" default="rain"/>
XML per Documenti
FRAMEWORK ODB (RDB) XMLFactory File System LaTeX CSS/XSL PDF Carta Web CDROM
DocFlow XML Factory Lobiettivo è avere uno strumento in grado di: offrire rappresentazioni automatiche e molteplici di uno stesso flusso di dati (es: cataloghi elettronici, e-commerce, report aziendali) validare il dato prima di presentarlo creare on the fly cataloghi personalizzati su carta, su Web oppure su CDROM
Documenti Ricchi HTML è abbastanza potente per formattare pagine Web, ma non lo è per pagine da stampare su carta. Con XML e un appropriato foglio di stile possono essere definiti linguaggi di markup con riferimenti specifici alla carta.
Un esempio di markup per la carta Alice nel paese delle meraviglie Lewis Carrol <formato pagina=A4 vedove=sì orfani=no numpagina=basso a destra num_sulla_prima_pagina=no sillabazione=no margine_alto=15mm margine_basso=15mm margine_destro=20mm margine_sinistro=20mm rilegatura=no/>
Documenti XML su carta Documento XML Processore XML2TEX Processore XML2PS TEX PostScript
APPROCCIO MICROSOFT E possibile visualizzare un documento XML ben formato che contenga tag HTML in qualsiasi browser. Documenti che contengano tag XML di formattazione possono essere utilizzati da word-processor e visualizzati nel browser senza perdere informazioni, né di formato, né di contorno (autore, soggetto, data).
Linee guida Microsoft XML –E usata estensivamente nei siti MS (esempio) –E la tecnologia Web in Office2000 Parser XML –E implementato nativamente in IE5 Tecnologie supportate –XML attraverso W3C –XSL, Schema (CDF)
MS Word 2000 <html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns="-//W3C//DTD HTML 4.0//EN"> MS Word 2000 e XML Alessio Saltarin T07:17:00Z 1 14
Output di Word 2000 Su carta –utilizza gli attributi definiti nelle tag xml e Su Web –utilizza CSS 2.0 standard
XML per i dati
Due Approcci... Ad oggetti –permette di mantenere la struttura gerarchica del dato e di associarvi contenuto attivo attraverso i metodi. Relazionale –compatibilità con lesistente –interoperabilità tra vari formati
… un solo obiettivo: far viaggiare i dati ODB (RDB) XML Factory LaeX PDF CDROM ODB (RDB)
Esempi Data Source Object (DSO) –XML come Access, SQL Server, Oracle… –Esempio: Booklist Ricercare dati –Data Scripting con Data Islands –Esempio: Datascripting
XML Oggi
Document Object Model (DOM) E un API per HTML e XML Definisce la struttura logica dei documenti (gerarchia) Definisce il modo in cui un documento è acceduto e manipolato XML presenta il dato… … e DOM lo manipola. E attualmente implementabile in Java, JavaScript e IDL. E concepito per essere cross-platform.
DOM: Utilizzo della metafora dei nodi // Iterazione fra tutti i nodi di un documento objThisNode.childNodes.reset(); objCurrentNode = objThisNode.childNodes.nextNode(); do { // Faccio qualcosa con il nodo corrente objCurrentNode = objThisNode.childNodes.nextNode(); } while (objCurrentNode != null);
XSL E usato per applicare stili a XML Discende direttamente da DSSSL Applica gli stili seguendo un pattern-matching Può contenere script Javascript - vantaggio rispetto alla soluzione CSS Difficile… esempi Pro: Microsoft, IBM, Adobe...
Contro XSL: CSS+DOM (Michael Leventhal - mozilla.org) XSL non aggiunge funzionalità che non siano già presenti nelle specifiche CSS e DOM Non supporta documenti interattivi XSL è difficile, contorto e non verrà accettato dalla comunità Web Contribuisce alla creazione di nuovi standard che minano quelli esistenti Docflow: a differenza di DSSSL non serve per andare su carta! Contro XSL: Netscape, Sun.
XLL (Xlink) Descrive i collegamenti tra diverse sorgenti XML Funzionalità –Collegamento con URL HTTP –Link semplici: di HTML –Link estesi: reverse linking, multipoint linking. XPointer : collega parti dello stesso documento.
XQL Query: //cliente Risultato: Wile E. Coyote, Death Valley, CA Camp Mertz
XML Data Islands XML in una pagina HTML Sono isole di XML ben formato in documenti HTML Devono istanziare un processore XML Sono identificate da un ID Esempio: Brian Travis Architag University
STRUMENTI Ecco una lista esauriente di strumenti disponibili sul mercato che rispettano completamente le direttive/proposte W3C: OraProssimo Futuro XSL0? XLink0? XQL0? DOM0? Namespace0? Schema0?
COSA FARE? Cominciare a strutturare i propri documenti Utilizzare XML Utilizzare le tecnologie di supporto standard (CSS) Scrivere le proprie applicazioni (utilizzando i comuni linguaggi: Basic, C++, Java)
RIFERIMENTI ( ) news://comp.text.xml (faq)
BIBLIOGRAFIA ESSENZIALE Goldfarb-Prescod THE XML HANDBOOK (Prentice Hall) Homer XML IE5 (Wrox) Megginson STRUCTURING XML DOCUMENTS (Prentice Hall) Boumphrey - DiRenzo - Graf XML APPLICATIONS (Wrox) McGrath XML BY EXAMPLE (Prentice Hall)
Q&A