XML JSON ì 2 Argomenti ì Linguaggiperladefinizioneeloscambiodidati strutturati,semi-strutturati,nonstrutturati ì XMLDataModel ì JSON Giorgio Giacinto 2015 3 ì XML Giorgio Giacinto 2015 4 XML eXtensible Markup Language ì ModellodidatiXML Natodall’esigenzadiconiugare ì imodellididatideidatabaseusaticomefontedi datiperleapplicazioniweb ì HTML,linguaggioperspecificarecontenutoe formattazionedellepagineweb Giorgio Giacinto 2015 5 Dati Strutturati Dati Semi-Strutturati ì DatiStrutturati ì Rappresentatiusandounformatoconregoleben definite ì esempio,ilmodellorelazionale ì DatiSemi-Strutturati ì Posseggonoparzialmenteunastruttura ì Nontuttal’informazionepuòessererappresentata conlamedesimastruttura ì Ciascunoggettopotrebbeaverenecessitàdialcuni attributidiversi Giorgio Giacinto 2015 6 Dati Semi Strutturati ì Datiauto-descrittivi ì Informazionirelativealloschemamescolateconle informazionirelativeaivalori ì Possonoessererappresentaticonungrafoorientato ì Label etag sulgrafoorientatorappresentano ì Nomiappartenentialloschema ì Nomidiattributi ì Tipidioggettoodientitàoclassi ì Associazioni Giorgio Giacinto 2015 7 Rappresentazione di Dati Semi-Strutturati Giorgio Giacinto 2015 8 Dati Non Strutturati ì Icasiincuiidatisonoinseritiinundocumentoma lalorostrutturanonèspecificata ì AdesempioinundocumentoHTMLitagracchiusi fra <...>inizio </...>fine indicanoicriteridiformattazionediunapaginama nonilsignificatodeidatipresentineldocumento Giorgio Giacinto 2015 9 Giorgio Giacinto 2015 10 XML Data Model ì Rappresentazionebasatasualberigerarchici ì Elementicomplessi ì Costruitiapartiredaaltrielementidellagerarchia ì Elementisemplici ì Contengonovalori ì XMLtag ì Descrivonoilsignificatodeidatineldocumento <...></...> Giorgio Giacinto 2015 11 Giorgio Giacinto 2015 12 XML Modello Gerarchico ad Albero ì PrincipalitipologiedidocumentiXML ì DocumentiXMLdata-centric ì relativiadatistrutturati,spessoestrattidadatabase ì DocumentiXMLDocument-centric ì prevalentementecostitutidatesto ì DocumentiXMLibridi ì contengonosiadatistrutturati,siadatinonstrutturati, siatesto ì DocumentiXMLsenzaschema ì Nonseguonounoschemapredefinito ì relativamenteainomideglielementi ì relativamenteallacorrispondentestrutturaadalbero Giorgio Giacinto 2015 13 Sintassi XML ì UndocumentoXMLsidicebenformato seseguele regolesintattiche ì Nell’intestazione ì laversioneXMLusata ì altriattributirilevantiperlacomprensionedel documento ì Tuttiglielementidevonoavereunacoppiaditag che indicanol’inizioelafinedell’elemento Giorgio Giacinto 2015 14 Interpretazione XML ì DOM(Document ObjectModel) ì Modellocheconsentediconvertireildocumentonel corrispondentealberogerarchico ì Consentelamanipolazionedeglielementiattraversoun insiemediAPI ì Ildocumentodeveessereesaminatoperinteroprimadi effettuarelaconversione ì SAX(SimpleAPIforXML) ì IdocumentiXMLsonoelaborati“alvolo”. Utileneicasidi ì Documentidigrandidimensioni ì streaming Giorgio Giacinto 2015 15 XML DTD Document Type Definition ì UndocumentoXMLèdettovalido sesegueunoschema XMLdefinitoinunaltroXML ì ì DTD XMLSchema ì DTD (Document Type Definition) ì IlDTDsegueunasintassispecificaper ì definizionedeitag ì definizioneproprietàdeglielementirelativiaciascuno deitag ì IntestazioneXMLconformeaunDTD <?xml version=“1.0” standalone=“no”?> <!DOCTYPE Projects SYSTEM “proj.dtd”> Giorgio Giacinto 2015 16 Esempi di DTD Projects Giorgio Giacinto 2015 17 Esempio DTD Company Giorgio Giacinto 2015 18 XML Schema ì XMLschemalanguage ì Standardperlaspecificadellastrutturadi documentiXML ì UtilizzalastessasintassiusataperidocumentiXML ì Modellodidatiadalbero ì Elementieattributi ì Utilizzaconcettiproprideldominiodellebasididati ì chiavi ì riferimenti ì identificatori Giorgio Giacinto 2015 19 Figure13.5 AnXMLschemafilecalledcompany Giorgio Giacinto 2015 20 Figure13.5(continued) AnXMLschemafilecalledcompany. Giorgio Giacinto 2015 21 Figure13.5(continued) AnXMLschemafilecalledcompany. Giorgio Giacinto 2015 22 Elementi presenti nel XML Schema Giorgio Giacinto 2015 ì XMLnamespace ì Definiscel’insiemedicomandi(nomi)delXMLSchemache possonoessereusati ì Dichiaratoattraversounalocazioneweb ì Annotazioni,documentazione,linguaggio ì Elementietipidielementi ì Elementodiprimolivello ì type,minOccurs,andmaxOccurs ì Chiaviprimarieevincolidiintegritàreferenziale ì Strutturadielementicomplessi ì Attributicomposti 23 Altri linguaggi e protocolli legati a XML ì Extensible Stylesheet Language(XSL) ì DefinisceilmodoincuiunapaginaHTMLviene visualizzatadaunwebbrowser ì Extensible Stylesheet LanguageforTransformations (XSLT) ì Trasformaunastrutturainun’altrastruttura ì WebServicesDescription Language(WSDL) ì DescrizionediWebServicesinXML Giorgio Giacinto 2015 24 Altri linguaggi e protocolli legati a XML ì SimpleObjectAccessProtocol (SOAP) ì Protocolloindipendentedallapiattaformaedal linguaggiodiprogrammazioneperloscambiodi messaggiel’esecuzionediremoteprocedurecalls ì ResourceDescription Framework(RDF) ì Linguaggiestrumentiperloscambioe l’elaborazioneattraversoilWebdidescrizioniedi specifichedimetadati Giorgio Giacinto 2015 25 ì JSON http://json.org Giorgio Giacinto 2015 26 Origine ì JSON- TheJavaScriptObjectNotation dataformat ì JSONèunsottoinsiemedellinguaggioJavaScript ì JSONnonèunlinguaggiodiprogrammazionemaun formatoperl’interscambiodidati frabrowsere serverofraservereserver ì SuccessodiJSONlegatoallasemplicitàdellasua grammatica ì formatoidoneoperl’interoperabilità Giorgio Giacinto 2015 27 Storia ì LacreazionediJSONèattribuitaaDouglasCrockford ì Hadatoilnome ì HaformalizzatolagrammaticanellaRFC4627(2006) ì registered Internetmediatype application/json ì fileextension .json ì JSONèstatoufficialmenteinseritofraglistandardECMA (Dicembre2009) ì Esisteun’altraformalizzazionediJSONdapartediIETF (InternetEngineering TaskForce)- RFC7159 ì Iduestandarddifferiscononelmodoconcuiuntesto JSONpuòessereconsideratovalido. Giorgio Giacinto 2015 28 Grammatica JSON ì JSONèunarappresentazionetestualedidati strutturati ì LespecificheJSONprevedonocheidatipossono esserestrutturatisecondounadelledueseguenti modalitàdicomposizione ì Unacollezionedicoppienome/valore ì Unalistaordinatadivalori Giorgio Giacinto 2015 29 Elementi della grammatica JSON Coppia stringa/valore Giorgio Giacinto 2015 30 Elementi della grammatica JSON Lista Ordinata Giorgio Giacinto 2015 31 Esempio di documento JSON Giorgio Giacinto 2015 32 Lo stesso documento in XML Giorgio Giacinto 2015