# XML/Cocoon

XML
Copertina Tutti i moduli · Sviluppo
PrefazioneXML/Prefazione
* IntroduzioneXML/Introduzione
* Entità singoleXML/Entità singole
* Strutture dati di baseXML/Strutture dati di base
* Relazione uno-moltiXML/Relazione uno-molti
* Relazione uno-unoXML/Relazione uno-uno
* Relazione molti-moltiXML/Relazione molti-molti
* Relazioni ricorsiveXML/Relazioni ricorsive
* Schemi di datiXML/Schemi di dati
* Document Type Definition (DTD)XML/DTD
* XHTMLXML/XHTML
* XPathXML/XPath
* XLinkXML/XLink
* CSSXML/CSS
* XSLT e fogli di stileXML/XSLT e fogli di stile
* CocoonXML/Cocoon
* Parsing di file XMLXML/Parsing di file XML
* XULXML/XUL
* Asynchronous JavaScript and XML (AJAX)XML/AJAX
* Web serviceXML/Web service
* XMLHttpRequestXML/XMLHttpRequest
* Database e XMLXML/Database e XML
* SVGXML/SVG
* VoiceXMLXML/VoiceXML
* DocBookXML/DocBook
* SMILXML/SMIL
* XBRLXML/XBRL
* WDDX
* RPCXML/RPC
* RDFXML/RDF - Resource Description Framework
* RSSXML/RSS
* NamespaceXML/Namespace
* Gestire XML con MySQL
* XML EncryptionXML/XML Encryption
* XQueryXML/XQuery
* XML e JDBC
* XFormsXML/XForms
* OpenOffice.org e l'OpenDocument FormatXML/OpenOffice.org e l'OpenDocument Format
* KML e Google EarthXML/KML
* Lo standard ACORD - XML nel settore delle assicurazioniXML/ACORD
Modifica il sommario
Obiettivi di apprendimento
* Comprendere la funzione di Cocoon
* Creare una sitemap funzionante
* Rendere disponibile un documento XML formattato in fogli di stile
* Creare un semplice form di Cocoon
* Creare un semplice XSP
Cocoon è un prodotto di Apache Software Foundation. È un potente server basato principalmente su tecnologia Java e XML. Sebbene abbia un'interfaccia a riga di comando, la maggior parte degli utenti sarà in grado di fare tutto ciò di cui ha bisogno semplicemente modificando attentamente alcuni file di configurazione, formattati come documenti XML.
Se vuoi vedere alcuni esempi di ciò che Cocoon può fare, vai a http://MIST5730.terry.uga.edu:8080/cocoon/

## Presupposti

Questo tutorial è pensato per un utente che abbia accesso a un'installazione di Cocoon sul server Blaze di Terry. Se non si dispone di questo accesso, è sufficiente sostituire le posizioni dei file e i metodi di accesso con quelli forniti dall'amministratore del server. Alcuni programmi descritti potrebbero funzionare solo su Windows; dovrai trovare un sostituto adatto se sei un utente Macintosh o Linux, sebbene queste utility siano spesso incluse nel sistema operativo. JEdit è un editor di testo libero in grado di leggere e salvare i file su un server FTP o SFTP con la stessa facilità con cui salverebbe su un disco rigido, e con i plugin appropriati può manipolare correttamente molti tipi diversi di file. È disponibile per Windows, Macintosh, per alcune distribuzioni Linux e come applicazione Java indipendente dalla piattaforma http://www.jedit.org/

## La Sitemap

Il principale file Cocoon di cui occuparsi è sitemap.xmap, che si trova nella directory radice di Cocoon. Usa tag XML per definire cose come i diversi modi di presentare i dati, la posizione dei file importanti, l'identificazione dei browser e, aspetto più importante, le pipeline. L'xmap di default andrà bene per i nostri scopi, e avremo solo bisogno di guardare le ultime righe di esso, dove sono definite le corrispondenze (matches) della pipeline. Questa sezione inizia con il tag <map:pipeline>. Una pipeline match si presenta così:
Diamo un'occhiata a ciò che fa ogni linea. La prima riga dice a Cocoon di guardare se qualcuno sta navigando su http://blaze.terry.uga.edu:8080/cocoon/otc/test . Quando ciò accade, hanno luogo le azioni sulle tre linee successive. Cocoon preleva le informazioni dal file test.xml all'interno della directory del contenuto e applica il foglio di stile test.xslt dalla directory dei fogli di stile. Formatta quindi questo risultato come una pagina HTML, come specificato nella quarta riga. Cocoon può utilizzare diversi serializzatori per formattare i dati come pagine HTML o XHTML, oggetti flash, pdf o persino documenti OpenOffice. A differenza di quando si lavora con XML per altri scopi, non è necessario uno schema XSD: basta creare e compilare i campi necessari nel file XML.

## I form di Cocoon

I form Cocoon, o CForms, sono un modo per usare la struttura XML per creare oggetti di campo form di validazione e poi sistemarli in un template per l'uso. Il vantaggio principale di CForm rispetto all'utilizzo dei form HTML è che i campi possono essere convalidati sia con funzionalità integrate sia con semplici attributi XML. Per questo sono necessari diversi elementi. Un file XML di definizione che contiene i campi, chiamato "widget":
Un file template XML richiama questi widget, aggiungendo il codice HTML per aiutare con l'aspetto grafico:
Un file Javascript che controlla il flusso di dati da un file al successivo:
Pipiline nella sitemap che controllano anche il flusso:
Un XSP può essere utilizzato in questo flusso per trasferire le presentazioni a un database.

## XSP

Gli XSP funzionano in modo simile alle servlet e alle JSP (JavaServer Pages): sono applicazioni lato server in grado di supportare più utenti contemporaneamente. A differenza delle JSP e delle servlet, gli XSP possono utilizzare i tag XML per realizzare gran parte delle loro funzionalità, sebbene possano anche utilizzare il codice Java tra i tag <xsp:logic></xsp:logic>. Un buon uso per XSP è il passaggio di informazioni a un database o il richiamo e la visualizzazione di dati memorizzati. Mentre JSP e servlet devono chiamare un connettore di database specifico o contenere tutto il codice per collegarsi al loro interno, Cocoon ha un file di configurazione che contiene queste informazioni, e gli XSP chiamano semplicemente il nome del database come specificato in WEB-INF/cocoon.xconf:
Il codice XSP per inserire dati da un form potrebbe assomigliare a questo: