FileMaker Server 11 ® Pubblicazione Web personalizzata con XML e XSLT © 2007–2010 FileMaker, Inc. tutti i diritti riservati. FileMaker, Inc. 5201 Patrick Henry Drive Santa Clara, California 95054 FileMaker è un marchio di FileMaker, Inc. registrato negli Stati Uniti e in altri Paesi. Il logo della cartella dei file è un marchio di FileMaker, Inc. Tutti gli altri marchi appartengono ai rispettivi proprietari. La documentazione di FileMaker è protetta da copyright. Non è permesso fare copie o distribuire questa documentazione senza previa autorizzazione scritta di FileMaker. È possibile utilizzare la presente documentazione soltanto unitamente a una copia del software FileMaker concessa in licenza. Tutte le persone, le società, gli indirizzi e-mail e gli URL elencati negli esempi sono fittizi e ogni riferimento a persone, società, indirizzi e-mail o URL esistenti è puramente casuale. Gli autori sono elencati nei documenti Riconoscimenti forniti insieme con questo software. I prodotti di terze parti e gli URL sono citati unicamente a scopo informativo e non costituiscono obbligo o raccomandazione. FileMaker, Inc. non si assume alcuna responsabilità nei confronti delle prestazioni di questi prodotti. Per ulteriori informazioni, visitate il nostro sito Web all'indirizzo www.filemaker.com/it. Edizione: 01 Sommario Informazioni su questa guida 9 Capitolo 1 Introduzione alla Pubblicazione Web personalizzata Motore per la Pubblicazione Web Modalità di elaborazione di una richiesta del Motore per la Pubblicazione Web Pubblicazione Web personalizzata con PHP Pubblicazione Web personalizzata con XML e XSLT Confronto tra PHP e XML e XSLT Motivi per scegliere PHP Motivi per scegliere XML e XSLT 12 12 13 13 14 14 14 Capitolo 2 Informazioni su Pubblicazione Web personalizzata con XML e XSLT Creazione di siti Web dinamici con il Motore per la Pubblicazione Web Pubblicazione Web personalizzata con XML Pubblicazione Web personalizzata con XSLT Sviluppo di fogli di stile XSLT Caratteristiche principali della Pubblicazione Web personalizzata con XML e XSLT Requisiti per la pubblicazione sul Web Requisiti per la pubblicazione di un database mediante Pubblicazione Web personalizzata Cosa si richiede agli utenti Web per accedere alla soluzione di Pubblicazione Web personalizzata Connessione a Internet o ad una rete intranet Operazioni successive 15 15 16 16 16 17 17 17 18 18 Capitolo 3 Preparazione dei database per la Pubblicazione Web personalizzata Attivazione della Pubblicazione Web personalizzata in un database Accesso ad un database protetto Protezione dei database pubblicati Supporto Web server per tipi di supporto Internet (MIME) Pubblicazione del contenuto di campi Contenitore sul Web Pubblicazione di oggetti di campo Contenitore memorizzati in un database Pubblicazione di oggetti di campo Contenitore memorizzati come riferimento file Modalità di visualizzazione dei dati dei campi Contenitore 19 19 20 21 21 21 21 22 4 Pubblicazione Web personalizzata con XML e XSLT di FileMaker Server Script di FileMaker e Pubblicazione Web personalizzata Suggerimenti e considerazioni sugli script Comportamento degli script nelle soluzioni di Pubblicazione Web personalizzata Trigger degli script e soluzioni di Pubblicazione Web personalizzata 22 22 24 24 Capitolo 4 Introduzione alla Pubblicazione Web personalizzata con XSLT Informazioni sui fogli di stile XSLT FileMaker Esempi di utilizzo dei fogli di stile XSLT FileMaker Uso della Pubblicazione Web personalizzata con XSLT Come il Motore per la Pubblicazione Web genera le pagine in base ai dati XML e ai fogli di stile XSLT Operazioni generali per utilizzare la Pubblicazione Web personalizzata con XSLT Utilizzo di XSLT Site Assistant FileMaker Site per generare fogli di stile XSLT FileMaker Prima di utilizzare XSLT Site Assistant Avvio di XSLT Site Assistant Utilizzo di XSLT Site Assistant Informazioni sui fogli di stile generati da XSLT Site Assistant Utilizzo dei fogli di stile FileMaker XSLT in un sito Web o in un programma Risoluzione dei problemi dei fogli di stile XSLT 25 25 26 26 27 28 28 29 29 29 30 31 Capitolo 5 Accesso a dati XML con Motore per la Pubblicazione Web Uso di Pubblicazione Web personalizzata con il linguaggio XML Differenze di importazione/esportazione XML tra Motore per la Pubblicazione Web e FileMaker Pro Come il Motore per la Pubblicazione Web genera dati XML da una richiesta Procedura generale per accedere a dati XML dal Motore per la Pubblicazione Web Sintassi URL per dati XML e oggetti Contenitore Sintassi URL per dati XML Sintassi URL per oggetti Contenitore FileMaker in soluzioni XML Codifica testo URL Accesso a dati XML attraverso il Motore per la Pubblicazione Web Nome spazio per XML FileMaker Codici di errore dei database FileMaker Recupero di DTD per le grammatiche FileMaker Utilizzo della grammatica fmsresultset Descrizione degli elementi della grammatica fmresultset Esempio di dati XML con la grammatica fmresultset 33 33 34 35 35 36 37 37 38 38 39 39 39 40 42 | Utilizzo di altre grammatiche XML di FileMaker Descrizione degli elementi della grammatica FMPXMLRESULT Esempio di dati XML con la grammatica FMPXMLRESULT Descrizione degli elementi della grammatica FMPXMLLAYOUT Esempio di dati XML con la grammatica FMPXMLLAYOUT Dati codificati nel formato UTF-8 Utilizzo di stringhe query FileMaker per richiedere dati XML Applicazione dei formati per una risposta XML Elaborazione delle richieste XML Uso dell'elaborazione lato server e lato client dei fogli di stile Risoluzione dei problemi di accesso a documenti XML Sommario 5 43 43 44 44 46 47 47 49 50 50 51 Capitolo 6 Sviluppo di fogli di stile XSLT FileMaker Utilizzo dei fogli di stile XSLT con il Motore per la Pubblicazione Web Funzioni di estensione XSLT FileMaker Soluzione pronta per l'uso FileMaker XSLT Sintassi URL per i fogli di stile XSLT FileMaker Sintassi URL per oggetti Contenitore FileMaker in soluzioni XSLT Utilizzo di stringhe di query nei fogli di stile XSLT FileMaker Specifica di una grammatica XML per un foglio di stile XSLT FileMaker namespace e prefissi per i fogli di stile XSLT FileMaker Utilizzo di comandi query e parametri query definiti staticamente Impostazioni della codifica di testo per le richieste Impostazione del metodo di output e della codifica Codifica dei fogli di stile XSLT Elaborazione di richieste XSLT che non eseguono query su FileMaker Server Utilizzo di token per scambiare informazioni tra i fogli di stile Utilizzo dei parametri e delle funzioni di estensione XSLT FileMaker Parametri XSLT specifici di FileMaker impostati dal Motore per la Pubblicazione Web Accesso alle informazioni sulle query in una richiesta Recupero di informazioni sul client Utilizzo del parametro URI di base del Motore per la Pubblicazione Web Utilizzo del parametro URI di base autenticato Caricamento di altri documenti Utilizzo delle informazioni sui formati del database in un foglio di stile Utilizzo del buffering del contenuto Utilizzo delle sessioni del Motore per la Pubblicazione Web per memorizzare le informazioni tra le richieste Utilizzo delle funzioni di estensione delle sessioni Invio di messaggi di posta elettronica dal Motore per la Pubblicazione Web 53 54 54 55 56 57 57 58 58 59 60 61 61 62 62 62 63 64 64 64 65 65 66 67 67 69 6 Pubblicazione Web personalizzata con XML e XSLT di FileMaker Server Utilizzo delle funzioni di intestazione Utilizzo delle funzioni di estensione dei cookie Utilizzo delle funzioni di estensione per la manipolazione delle stringhe Confronto delle stringhe mediante espressioni regolari Perl 5 Controllo dei valori in un campo formattato come casella di controllo Utilizzo delle funzioni di estensione data, ora e giorno Controllo dello stato di errore delle funzioni di estensione Utilizzo della registrazione Utilizzo dell'elaborazione lato server dei linguaggi di scripting Definizione di una funzione di estensione Un esempio di funzione di estensione 71 72 73 74 74 75 79 79 79 80 81 Capitolo 7 Preparazione, test e monitoraggio di un sito Preparazione di un sito Pubblicazione Web personalizzata Test di un sito Pubblicazione Web personalizzata Esempi di fogli di stile per testare l'output XML Monitoraggio di un sito Uso dei registri degli accessi e degli errori del server Web Utilizzo del registro dell'applicazione Motore per la Pubblicazione Web Utilizzo del registro errori del Modulo Server Web Uso dei registri degli accessi interni Web Publishing Core 83 84 85 86 86 86 87 87 Appendice A Nomi validi usati nelle stringhe delle query Comandi e parametri delle query Linee guida per l'uso dei comandi e dei parametri delle query Guida di riferimento stringhe query FileMaker Sintassi di un nome di campo completamente qualificato Utilizzo dei comandi di query con campi portale Sintassi per specificare un campo globale Riferimento comando query Comando query –dbnames (Nomi database) Comando query –delete (Elimina record) Comando query –dup (Duplica il record) Comando query –edit (Modifica il record) –find, –findall o –findany (record Trova) comandi della query Comando query –findquery (ricerca composta) Comando query –layoutnames (Nomi formati) Comando query –new (Nuovo record) –process (Elabora fogli di stile XSLT) Comando query –scriptnames (Nomi di script) Comando query –view (Visualizza le informazioni sul formato) 89 90 91 91 91 93 93 93 93 94 94 94 95 95 95 96 96 96 | Riferimento parametro query Parametro query –db (Nome database) parametro query –delete.related (Elimina record portale) Parametro query –encoding (Codifica richiesta XSLT) Parametro query –field (Nome campo Contenitore) Parametro query nome campo (Nome campo non Contenitore) parametro query fieldname.op (Operatore di confronto) Parametro query –grammar (Grammatica per fogli di stile XSLT) Parametro query –lay (Formato) Parametro query –lay.response (Applicazione del formato per la risposta) Parametro query –lop (Operatore logico) Parametro query –max (Record max) Parametro query –modid (ID modifica) Parametro query –query (richiesta di ricerca composta) Parametro query –recid (ID record) Parametro query–relatedsets.filter (Filtra record portale) Parametro query –relatedsets.max (Limita record portale) Parametro query –script (Script) Parametro query –script.param (Trasferisci parametro a script) Parametro query –script.prefind (Script prima di trovare) Parametro query –script.prefind.param (Trasefrisci parametro a Script prima di trovare) Parametro query –script.presort (Script prima di ordinare) Parametro query –script.presort.param (Trasefrisci parametro a Script prima di ordinare) Parametro query –skip (Salta record) Parametro query –sortfield (Campo ordinamento) Parametro query –sortorder (Ordinamento) Parametro query –stylehref (HREF stile) Parametro query –styletype (Tipo di stile) Parametro query –token.[stringa] (Scambio di valori tra fogli di stile XSLT) Sommario 7 96 96 97 97 97 97 98 99 99 99 100 100 100 100 101 102 102 103 103 103 103 104 104 105 105 105 106 106 107 Appendice B Codici di errore per Pubblicazione Web personalizzata Codici di errore per database FileMaker Codici di errore per il Motore per la Pubblicazione Web Codici di errore per le funzioni di estensione XSLT FileMaker 109 116 118 Indice 121 8 Pubblicazione Web personalizzata con XML e XSLT di FileMaker Server Prefazione Informazioni su questa guida Si suppone che il lettore di questa guida abbia esperienza con XML e XSLT, sappia sviluppare siti Web e utilizzare FileMaker® Pro per creare database. È necessario comprendere le nozioni di base sulla progettazione dei database con FileMaker Pro e i concetti di campo, relazione, formato, portale e contenitore. Questa guida fornisce le seguenti informazioni sulla Pubblicazione Web personalizzata con XML e XSLT su FileMaker Server: 1 1 1 1 come sviluppare una soluzione di Pubblicazione Web personalizzata con XML o XSLT come pubblicare i database con XML o XSLT cosa è richiesto agli utenti Web per accedere a Pubblicazione Web personalizzata come ottenere dati XML dai database ospitati da FileMaker Server. 1 come sviluppare i fogli di stile FileMaker XSLT Importante È possibile scaricare la documentazione di FileMaker in formato PDF all'indirizzo http://www.filemaker.com/it/support/index.html. Eventuali aggiornamenti a questo documento sono disponibili anche sul sito web. La documentazione di FileMaker Server comprende le seguenti informazioni: Per informazioni sui seguenti argomenti: Vedere Installazione e configurazione di FileMaker Server Guida introduttiva di FileMaker Server Guida di FileMaker Server Pubblicazione Web Immediata Guida di Pubblicazione Web Immediata di FileMaker Pubblicazione Web personalizzata con PHP Pubblicazione Web personalizzata con PHP di FileMaker Server Utilizzo di PHP Site Assistant Guida di PHP Site Assistant Pubblicazione Web personalizzata con XML e XSLT Pubblicazione Web personalizzata con XML e XSLT di FileMaker Server (questo manule) Utilizzo di XSLT Site Assistant Guida di XSLT Site Assistant Installazione e configurazione dei driver ODBC e JDBC drivers, e utilizzo di ODBJ e JDBC Guida ODBC e JDBC FileMaker Modalità con cui l'aggiornamento automatico di Guida all'aggiornamento dei plug-in di FileMaker Server FileMaker Server può scaricare i plug-in più recenti sui computer client dei database di FileMaker Pro 10 Pubblicazione Web personalizzata con XML e XSLT di FileMaker Server Capitolo 1 Introduzione alla Pubblicazione Web personalizzata Con FileMaker Server, è possibile pubblicare i database FileMaker su Internet o su una rete intranet nei seguenti modi. Pubblicazione Web Immediata: Con Pubblicazione Web Immediata è possibile pubblicare un database sul Web in modo rapido e semplice. Non è necessario modificare i file di database o installare altri software–chiunque disponga di un browser Web compatibile e abbia accesso ad Internet o ad una rete intranet può connettersi al database per visualizzare, modificare, ordinare o eseguire ricerche all'interno dei record, a condizione disponga dei privilegi di accesso necessari. Con la Pubblicazione Web Immediata, è necessario che sul computer host siano in esecuzione FileMaker Pro o FileMaker Server. L'interfaccia utente è simile all'applicazione desktop FileMaker Pro. Le pagine Web e i moduli con cui l'utente interagisce dipendono dai formati e dalle visualizzazioni definite nel database FileMaker Pro. Per ulteriori informazioni, vedere Guida di Pubblicazione Web Immediata di FileMaker. Pubblicazione statica: Se i dati vengono modificati di rado oppure se non si desidera che gli utenti si connettano dinamicamente al database, è possibile ricorrere alla pubblicazione statica. La pubblicazione statica consente di esportare i dati dal database FileMaker Pro per creare una pagina Web personalizzabile con HTML. La pagina Web non riflette le modifiche apportate alle informazioni nel database e gli utenti non si connettono al database. (quando si utilizza la Pubblicazione Web Immediata, i dati vengono aggiornati nella finestra del browser Web ogni volta che il browser invia una richiesta a FileMaker Server). Per ulteriori informazioni, vedere Guida di Pubblicazione Web Immediata di FileMaker. Pubblicazione Web personalizzata: Per disporre di un maggiore controllo sull'aspetto e sulle funzionalità del database pubblicato, utilizzare le funzioni di Pubblicazione Web personalizzata disponibili in FileMaker Server. FileMaker Server, che ospita i database pubblicati, non richiede che FileMaker Pro sia installato o sia in esecuzione per rendere disponibile la Pubblicazione Web personalizzata. Con la Pubblicazione Web personalizzata è possibile: 1 Integrare un database in un sito Web 1 Determinare il modo in cui gli utenti interagiscono con i dati 1 Controllare il modo in cui i dati vengono visualizzati nel browser Web FileMaker Server provvede due tecnologie di Pubblicazione Web personalizzata: 1 Pubblicazione Web personalizzata con PHP: utilizzare FileMaker API per PHP, che fornisce un'interfaccia PHP con il database FileMaker orientata agli oggetti, per integrare i dati FileMaker in un'applicazione Web PHP. PHP Site Assistant può essere utilizzato per creare un sito Web PHP completo o codificare pagine Web PHP. 1 Pubblicazione Web personalizzata con XML e XSLT: 1 Utilizzare la pubblicazione di dati XML per scambiare dati FileMaker con altri siti Web e applicazioni. 1 Utilizzare fogli di stile XSLT elaborati dal server per integrare sottogruppi di dati FileMaker in altri siti Web e con altre applicazioni personalizzate e middleware. XSLT Site Assistant può essere utilizzato per creare fogli di stile XSLT o codificare i fogli di stile. 12 Pubblicazione Web personalizzata con XML e XSLT di FileMaker Server Motore per la Pubblicazione Web Per supportare Pubblicazione Web Immediata e Pubblicazione Web personalizzata, FileMaker Server usa un insieme di componenti software definiti Motore per la Pubblicazione Web di FileMaker Server. Il Motore per la Pubblicazione Web gestisce le interazioni tra il browser di un utente Web, il server Web e FileMaker Server. Pubblicazione Web personalizzata con XML e XSLT: il Motore per la Pubblicazione Web funziona come un processore XSLT e fornisce output come HTML, XML o testo (come vCards) al server Web, che a sua volta fornisce l'output al browser Web. Gli utenti Web accedono alla soluzione di Pubblicazione Web personalizzata facendo clic su un collegamento HREF oppure introducendo un URL (Uniform Resource Locator) che indica l'indirizzo del server Web e una richiesta di stringa query FileMaker. L'URL può accedere ai dati XML oppure fare riferimento ad un foglio di stile XSLT. Il Motore per la Pubblicazione Web restituisce i dati XML specificati nella richiesta di stringa query, oppure i risultati del foglio di stile XSLT a cui si è fatto riferimento. Pubblicazione Web personalizzata con PHP: quando un utente Web accede alla soluzione di Pubblicazione Web personalizzata, PHP su FileMaker Server si collega con il Motore per la Pubblicazione Web e risponde attraverso FileMaker API per PHP. Uso del Motore per la Pubblicazione Web di FileMaker Server per la Pubblicazione Web personalizzata con XML o XSLT 1 2 Server Web Web Browser Prodotti.fp7 Clienti.fp7 Motore per la Pubblicazione Web Modulo Server Web Database Server Codice FM API e PHP 6 3 Fogli di stile XSLT 5 4 Modalità di elaborazione di una richiesta del Motore per la Pubblicazione Web 1. Una richiesta viene inviata da un'applicazione o da un browser Web al server Web. 2. Il server Web invia la richiesta attraverso il Modulo Server Web di FileMaker al Motore per la Pubblicazione Web. 3. Il Motore per la Pubblicazione Web richiede i dati al database ospitato dal server Database. 4. FileMaker Server invia i dati FileMaker richiesti al Motore per la Pubblicazione Web. Capitolo 1 | Introduzione alla Pubblicazione Web personalizzata 13 5. Il Motore per la Pubblicazione Web converte i dati FileMaker per rispondere alla richiesta. 1 Per richieste PHP, il Motore per la Pubblicazione Web risponde alla richiesta API. 1 Per le richieste XML, il Motore per la Pubblicazione Web invia i dati XML direttamente al server Web. 1 Per le richieste XSLT, il Motore per la Pubblicazione Web utilizza un foglio di stile XSLT per formattare o trasformare i dati XML, e genera output come pagine HTML, un documento XML, o testo per il server Web. 6. Il server Web invia l'output al browser Web o al programma che lo richiedono. Importante Quando si pubblicano dati sul Web si deve prestare attenzione alla sicurezza. Consultare le linee guida per la sicurezza contenute nella Guida per l'utente di FileMaker Pro disponibili in formato PDF sul sito http://www.filemaker.com/it/support/index.html. Pubblicazione Web personalizzata con PHP FileMaker API per PHP fornisce un'interfaccia PHP con il database FileMaker orientata agli oggetti. FileMaker API per PHP consente di accedere ai dati e alla logica memorizzati in un database FileMaker Pro e di pubblicarli sul web o di esportarli in altre applicazioni. API supporta anche comandi di ricerca complessi e composti per estrarre e filtrare i dati memorizzati nei database FileMaker Pro. Progettato inizialmente come linguaggio di programmazione procedurale, PHP è stato migliorato come linguaggio di sviluppo web orientato agli oggetti. PHP fornisce le funzioni del linguaggio di programmazione per costruire virtualmente ogni tipo di logica in una pagina web. Ad esempio è possibile utilizzare costrutti di logica condizionale per controllare la creazione di pagine, il percorso dei dati o il flusso di lavoro. PHP fornisce anche l'amministrazione e la sicurezza del sito. Inoltre, FileMaker PHP Site Assistant può essere utilizzato per creare un codice PHP che contiene tutti i prerequisiti e le funzioni necessarie per accedere correttamente ai dati di un database FileMaker Pro. PHP Site Assistant genera siti web con più pagine che consentono agli utenti web di ricercare database, visualizzare una lista di record, sfogliare, riordinare, aggiugnere, modificare, duplicare ed eliminare i record e visualizzare resoconti riassunto. Gli sviluppatori di FileMaker con una discreta conoscenza di PHP possono utilizzare PHP Site Assistant per creare un sito Web PHP completo. Gli sviluppatori PHP con una discreta conoscenza di FileMaker possono utilizzare PHP Site Assistant per comprendere gli oggetti ed i metodi FileMaker API per PHP. Pubblicazione Web personalizzata con XML e XSLT La Pubblicazione Web personalizzata XSLT di FileMaker consente di inviare richieste query a un database FileMaker Pro ospitato da FileMaker Server e visualizzare, modificare o trattare i dati risultanti. Utilizzando una richiesta HTTP con i parametri e i comandi di query appropriati, è possibile recuperare i dati FileMaker come documento XML. È possibile esportare i dati XML possono in altre applicazioni oppure applicare un foglio di stile XSLT ai dati XML. La Pubblicazione Web personalizzata di FileMaker con XSLT consente di trasformare, filtrare o formattare i dati XML per i browser Web o altre applicazioni. È possibile: 1 Utilizzare un foglio di stile XSLT per trasformare i dati da una grammatica XML FileMaker ad un'altra grammatica XML da usare in altre applicazioni o in altri database. 1 Filtrare i dati controllando quali campi del database vengono pubblicati dal foglio di stile. 1 Formattare i dati nel modo in cui si presentano in una pagina web e controllare come l'utente web interagisce con i dati. 14 Pubblicazione Web personalizzata con XML e XSLT di FileMaker Server Il Motore per la Pubblicazione Web fa uso dei fogli di stile per ottenere i dati da un databsae FileMaker ogni volta che un utente Web invia una richiesta HTTP e un URL a cui fa riferimento ad uno dei fogli di stile XSLT. Il Motore per la Pubblicazione Web fa uso di un foglio di stile per trasformare e formattare i dati XML e genera la pagina HTML con cui può lavorare l'utente Web. Inoltre, è possibile utilizzare FileMaker XSLT Site Assistant per creare fogli di stile XSLT di base come punto di partenza per l'uso della Pubblicazione Web personalizzata con XSLT. XSLT Site Assistant genera fogli di stile per pagine con cui si ricercano database, si sfogliano i record uno alla volta, si elencano i record nel database, si ordinano, si aggiungono, si modificano, si duplicano e si eliminano i record e si visualizzano resoconti riassunto. Confronto tra PHP e XML e XSLT Le seguenti sezioni forniscono alcune direttive per stabilire la soluzione più adeguata per un determinato sito. Motivi per scegliere PHP 1 PHP è un linguaggio di scripting procedurale più efficace e orientato agli oggetti e, nello stesso tempo, relativamente facile da apparendere. Offre molte risorse per l'apprendimento, lo sviluppo e il supporto. 1 FileMaker API per PHP consente di accedere ai dati e alla logica memorizzati in un database FileMaker Pro e di pubblicarli sul web o di esportarli in altre applicazioni. 1 1 1 1 1 PHP consente di utilizzare una logica condizionale per controllare la costruizione o il flusso delle pagine. PHP fornisce le funzioni del linguaggio di programmazione per costruire vari tipi di logica in una pagina web. PHP è uno dei linguaggi di scripting Web più conosciuti. PHP è un linguaggio open source, disponibile sul sito http://php.net. PHP consente di accedere ad una grande quantità di componenti di terze parti che possono essere integrati nelle proprie soluzioni. Nota Per ulteriori informazioni sulla Pubblicazione Web con PHP, vedere la Pubblicazione Web personalizzata di FileMaker Server con PHP. Motivi per scegliere XML e XSLT 1 La sintassi dei parametri delle richiesta XML FileMaker è progettata per interagire con i database, semplificando lo sviluppo della soluzione. 1 XML e XSLT sono standard W3C. 1 XML è un formato leggibile dall'uomo e dalla macchina che supporta Unicode, in grado abilitare i dati per la comunicazione con ogni tipo di linguaggio scritto. 1 1 1 1 1 XML è particolarmente adatto per la presentazione di record, liste e dati con struttura ad albero. XSLT consente di trasformare l'output XML in documenti di testo come RSS, RTF, vCard. XSLT può essere utilizzato per trasformare l'output XML da una grammatica all'altra. I modelli semplificano l'applicazione di una formattazione condizionale a dati variabili. È possibile utilizzare i fogli di stile FMPXMLRESULT per la Pubblicazione Web personalizzata per l'esportazione XML dai database FileMaker Pro. 1 FileMaker Server gestisce l'elaborazione dei fogli di stile XSLT FileMaker, impedendo l'accesso non autorizzato ai dati che possono essere privi di protezione utilizzando fogli di stile XSLT lato client. Capitolo 2 Informazioni su Pubblicazione Web personalizzata con XML e XSLT Creazione di siti Web dinamici con il Motore per la Pubblicazione Web Il Motore per la Pubblicazione Web offre la Pubblicazione Web personalizzata per FileMaker Server con la pubblicazione dati XML e i fogli di stile XSLT elaborati dal server. La Pubblicazione Web personalizzata offre diversi vantaggi: 1 Personalizzazione: Si può stabilire in che modo gli utenti Web interagiscono con i dati FileMaker, e in che modo i dati vengono visualizzati nei browser Web. 1 Scambio dati: Utilizzando XML FileMaker, è possibile scambiare i dati FileMaker con altri siti Web e applicazioni. 1 Integrazione dati: Utilizzando i fogli di stile XSLT FileMaker, è possibile integrare i dati FileMaker in altri siti Web e con altre applicazioni personalizzate e middleware. Si può fare in modo che i dati sembrino appartenere ad un altro sito Web invece di visualizzare un intero formato FileMaker nel browser Web. 1 Sicurezza: L'amministratore di FileMaker Server può attivare o disattivare le singole applicazioni Pubblicazione Web Immediata, Pubblicazione Web XML o Pubblicazione Web XSLT per tutti i database ospitati dal server. In qualità di proprietario del database FileMaker, è possibile controllare l'accesso degli utenti a Pubblicazione Web Immediata, Pubblicazione Web XML o Pubblicazione Web XSLT per ciascun database. 1 Fogli di stile lato server: L'elaborazione dei fogli di stile XSLT lato server impedisce che informazioni di database confidenziali possano essere esaminate senza autorizzazione; questo potrebbe invece essere possibile con fogli di stile lato client. 1 Controllo e filtraggio dei dati pubblicati: Mediante i fogli di stile XSLT, è possibile controllare e filtrare i dati e le informazioni sul tipo di database che si desidera pubblicare, evitando in tal modo un uso non autorizzato del database. Si possono anche nascondere i metadati, come i nomi di campi e di database. 1 Uso di standard aperti: Questo permette di avere maggiore accesso a strumenti, a risorse e a personale esperto per la realizzazione di soluzioni di Pubblicazione Web personalizzata. Se si conoscono XML o XSLT standard, è possibile partire immediatamente con lo sviluppo di soluzioni dopo avere appreso poche nozioni di base sulla Pubblicazione Web personalizzata con XML, come la sintassi URL e i parametri query da utilizzare. Pubblicazione Web personalizzata con XML La Pubblicazione Web personalizzata con XML permette di recuperare i dati dai database FileMaker e di utilizzare facilmente i dati in altri formati di uscita. Utilizzando una richiesta HTTP con i parametri e i comandi di query appropriati, è possibile recuperare i dati FileMaker come documento XML. In seguito i dati XML possono essere utilizzati in altre applicazioni, oppure si può applicare ad essi un foglio di stile XSLT. Vedere capitolo 5, "Accesso a dati XML con Motore per la Pubblicazione Web". 16 Pubblicazione Web personalizzata con XML e XSLT di FileMaker Server Pubblicazione Web personalizzata con XSLT Pubblicazione Web personalizzata con XSLT permette di trasformare, filtrare o formattare i dati XML per utilizzarli in un browser Web o in altre applicazioni. Si può utilizzare un foglio di stile XSLT per trasformare i dati da una grammatica XML FileMaker ad un'altra grammatica XML da usare in un'altra applicazione o in un altro database. Si possono filtrare i dati controllando quali campi del database vengono pubblicati dal foglio di stile. È possibile formattare i dati nel modo in cui si presentano in una pagina web e controllare come l'utente web interagisce con i dati. Vedere capitolo 4, "Introduzione alla Pubblicazione Web personalizzata con XSLT". Il Motore per la Pubblicazione Web fa uso dei fogli di stile per ottenere dinamicamente i dati da un databsae FileMaker ogni volta che un utente Web invia una richiesta HTTP e un URL riferito ad uno dei fogli di stile XSLT. Il Motore per la Pubblicazione Web fa uso di un foglio di stile per trasformare e formattare i dati XML e genera la pagina HTML con cui può lavorare l'utente Web. Per ulteriori informazioni sull'uso di Pubblicazione Web personalizzata FileMaker Server con XML e XSLT, visitare il sito http://www.filemaker.com/it/support/index.html. Sviluppo di fogli di stile XSLT FileMaker Server comprende uno strumento per lo sviluppo di fogli di stile XSLT. XSLT Site Assistant FileMaker è un'applicazione che può essere utilizzzata per creare fogli di stile XSLT di base come punto di partenza per la Pubblicazione Web personalizzata con XSLT. XSLT Site Assistant permette di apprendere in che modo vengono realizzati i fogli di stile XSLT FileMaker. È quindi possibile utilizzare gli strumenti di authoring di fogli di stile XSLT per modificare i fogli di stile in base alle proprie necessità. Vedere "Utilizzo di XSLT Site Assistant FileMaker Site per generare fogli di stile XSLT FileMaker" a pagina 28. Nota FileMaker Server supporta XSLT 1.0 definito da World Wide Web Consortium. Gli strumenti di authoring XSLT utilizzati devono essere conformi agli standard XSLT 1.0. Caratteristiche principali della Pubblicazione Web personalizzata con XML e XSLT la Pubblicazione Web personalizzata con XML e XSLT di FileMaker Server offre molte importanti funzioni: 1 I database sono ospitati da FileMaker Server, e non è necessario che FileMaker Pro sia in esecuzione. 1 Ora è possibile usare l'elaborazione dei fogli di stile XSLT lato server, e questa procedura è più sicura rispetto all'elaborazione dei fogli di stile lato client. 1 È possibile utilizzare l'elaborazione lato server di Javascript in fogli di stile XSLT. Per informazioni vedere "Utilizzo dell'elaborazione lato server dei linguaggi di scripting" a pagina 79. 1 Si può impedire l'uso non autorizzato dei comandi e dei parametri di query con il foglio di stile XSLT FileMaker definendo in modo statico i comandi, i parametri e i valori di query che si desidera utilizzare quando si richiedono dati XML. Vedere "Utilizzo di comandi query e parametri query definiti staticamente" a pagina 58. 1 Come in FileMaker Pro, l'accesso ai dati, ai formati e ai campi dipende dalle impostazioni degli account utente definite nei privilegi di accesso del database. Per il Motore per la Pubblicazione Web sono stati inoltre introdotti altri miglioramenti per la sicurezza. Vedere "Protezione dei database pubblicati" a pagina 20. 1 Gli utenti Web possono eseguire script complessi, a più istruzioni. FileMaker supporta circa 70 istruzioni di script in Pubblicazione Web personalizzata. Vedere la sezione "Script di FileMaker e Pubblicazione Web personalizzata" a pagina 22. Capitolo 2 | Informazioni su Pubblicazione Web personalizzata con XML e XSLT 17 1 È possibile trasferire un valore di parametro ad uno script FileMaker. Per ulteriori informazioni, vedere "Parametro query –script.param (Trasferisci parametro a script)" a pagina 103, "Parametro query –script.prefind.param (Trasefrisci parametro a Script prima di trovare)" a pagina 103 e "Parametro query –script.presort.param (Trasefrisci parametro a Script prima di ordinare)" a pagina 104. 1 La nuova grammatica XML fmresultset permette di accedere ai campi per nome e di gestire i dati dei set collegati (portale). 1 Utilizzando le funzioni di sessione in un foglio di stile XSLT, si possono memorizzare le transazioni e le informazioni dell'utente Web nelle sessioni mantenute dal server. 1 Per accedere ai dati in un database, è necessario specificate il formato. Vedere appendice A, "Nomi validi usati nelle stringhe delle query". 1 Ogni utente Web può avere un unico valore di campo globale che rimane finché la sessione è attiva. Per informazioni generali sui campi globali, consultare la Guida di FileMaker Pro. Per informazioni sull'uso dei campi globali con Pubblicazione Web personalizzata, vedere "Sintassi per specificare un campo globale" a pagina 93. Requisiti per la pubblicazione sul Web Requisiti per la pubblicazione di un database mediante Pubblicazione Web personalizzata Per pubblicare i database che utilizzano la Pubblicazione Web personalizzata con XML o XSLT, è necessario: 1 una distribuzione FileMaker Server che comprende 1 un server Web, Microsoft IIS (Windows) o Apache (Mac OS X) 1 il server database FileMaker abilitato per la Pubblicazione Web personalizzata 1 il Motore per la Pubblicazione Web, installato e configurato 1 uno o più database FileMaker Pro ospitati da FileMaker Server 1 indirizzo IP o nome di dominio dell'host del server Web. 1 un browser Web e la possibilità di accedere al server Web per sviluppare e controllare la soluzione di Pubblicazione Web personalizzata Per ulteriori informazioni, vedere Guida introduttiva di FileMaker Server. Cosa si richiede agli utenti Web per accedere alla soluzione di Pubblicazione Web personalizzata Per accedere alla soluzione di Pubblicazione Web personalizzata che fa uso di XML o XSLT, gli utenti Web devono disporre di: 1 un browser Web 1 accesso a Internet o a una rete intranet e al server Web 1 indirizzo IP o nome di dominio dell'host del server Web. Se il database è protetto da password, gli utenti Web devono anche introdurre un nome utente e una password per l'account database. 18 Pubblicazione Web personalizzata con XML e XSLT di FileMaker Server Connessione a Internet o ad una rete intranet Quando si pubblicano database su Internet o su una rete intranet, è necessario che FileMaker Server sia in esecuzione sul computer host e che i database che si desidera condividere siano ospitati e disponibili. Inoltre: 1 Pubblicare il database su un computer con una connessione continua a Internet o a un'intranet. È possibile pubblicare database anche in assenza di una connessione continua, ma in tal caso i database risulteranno disponibili agli utenti solo quando il computer che li ospita è connesso a Internet o alla rete intranet. 1 Il computer host del server web, che fa parte dello sviluppo di FileMaker Server, deve avere un nome di dominio o un indirizzo IPstatico (permanente) dedicato. Se la connessione a Internet viene effettuata tramite un provider di servizi Internet (ISP), l’indirizzo IP potrebbe essere allocato in modo dinamico (ossia cambiare ad ogni connessione). L'utilizzo di un indirizzo IP dinamico rende più difficoltosa l'individuazione dei database da parte degli utenti. Se non si è certi del tipo di accesso di cui si dispone, contattare il provider di servizi Internet o l'amministratore della rete. Operazioni successive Di seguito vengono offerti alcuni suggerimenti per iniziare a sviluppare le soluzioni di Pubblicazione Web personalizzata: 1 Se già non è stato fatto, utilizzare Admin Console FileMaker Server per attivare la Pubblicazione Web personalizzata. Vedere la Guida di FileMaker Server e la Guida introduttiva di FileMaker Server. 1 In FileMaker Pro, aprire il database FileMaker che si desidera pubblicare e assicurarsi che il database abbia i privilegi estesi appropriati abilitati per la Pubblicazione Web personalizzata. Vedere "Attivazione della Pubblicazione Web personalizzata in un database" a pagina 19. 1 Per sapere come accedere ai dati nei database FileMaker con XML, vedere capitolo 5, "Accesso a dati XML con Motore per la Pubblicazione Web". 1 Per sapere come iniziare a sviluppare fogli di stile XSLT FileMaker, vedere capitolo 4, "Introduzione alla Pubblicazione Web personalizzata con XSLT". Capitolo 3 Preparazione dei database per la Pubblicazione Web personalizzata Prima di utilizzare la Pubblicazione Web personalizzata con un database, è necessario preparare il database e proteggerlo da accessi non autorizzati. Attivazione della Pubblicazione Web personalizzata in un database La Pubblicazione Web personalizzata deve essere attivata in tutti i database che si desidera pubblicare. In ciascun database si possono attivare singolarmente la Pubblicazione Web personalizzata con XML o la Pubblicazione Web personalizzata con XSLT, oppure entrambe. Se una o entrambe queste tecnologie non vengono attivate nel database, gli utenti Web non saranno in grado di usare la Pubblicazione Web personalizzata per accedere al database anche se questo è ospitato da FileMaker Server che è configurato per supportare un Motore per la Pubblicazione Web. Per attivare la Pubblicazione Web personalizzata per un database: 1. In FileMaker Pro, aprire il database che si desidera pubblicare utilizzando un account che dispone del set di privilegi Accesso completo. In alternativa, si può aprire il database utilizzando un account che dispone dei privilegi di accesso Gestisci privilegi estesi. 2. Assegnare uno o entrambi i privilegi estesi ad uno o più set di privilegi: 1 Per consentire la Pubblicazione Web personalizzata con XML, digitare la parola chiave: fmxml 1 Per consentire la Pubblicazione Web personalizzata con XSLT, digitare la parola chiave: fmxslt Da FileMaker Pro 8, le parole chiave fmxml e fmxslt sono indicatenella scheda Privilegi estesi. 3. Assegnare il(i) set di privilegi che comprendono il privilegio esteso di Pubblicazione Web personalizzata a uno o più account, o all'account Admin o Ospite. Nota Quando si definiscono i nomi utente e le password per la Pubblicazione Web personalizzata, si possono usare solo caratteri ASCII stampabili, ad esempio a-z, A-Z e 0-9. Per conferire maggiore sicurezza ai nomi account e password, inserire caratteri di punteggiatura come "!" e "%, ma non i due punti. Per ulteriori informazioni sull'impostazione degli account, vedere la Guida di FileMaker Pro. Accesso ad un database protetto Quando si usa una soluzione Pubblicazione Web personalizzata per accedere ad un database, agli utenti Web possono essere richiesti i dati sull'account (nome utente e password). Se l'account Ospite per il database è disattivato o non ha un set di privilegi attivato che includa il privilegio esteso di Pubblicazione Web personalizzata, il Motore per la Pubblicazione Web usa l'autenticazione di base HTTP per richiedere l'autenticazione agli utenti Web. Il browser dell'utente Web visualizza la finestra di dialogo di autenticazione di base HTTP in cui l'utente può digitare il nome utente e la password per un account che dispone del privilegio esteso di Pubblicazione Web personalizzata. 20 Pubblicazione Web personalizzata con XML e XSLT di FileMaker Server I seguenti punti riassumono il processo che si verifica quando un utente Web utilizza una soluzione di Pubblicazione Web personalizzata per accedere ad un database: 1 Se per un account non è stata assegnata nessuna password, gli utenti Web specificano soltanto il nome utente. 1 Se l’account Ospite è disattivato, agli utenti verrà richiesto il nome utente e la password quando accedono al database. per l'account deve essere attivato il privilegio esteso di Pubblicazione Web personalizzata. 1 Se l’account Ospite è attivato con il set di privilegi che comprende il privilegio esteso di Pubblicazione Web personalizzata, tutti gli utenti Web aprono automaticamente il database con i privilegi di accesso assegnati all’account Ospite. Se all’account Ospite è assegnato il privilegio esteso Pubblicazione Web personalizzata: 1 Agli utenti Web non viene richiesto il nome utente e la password quando aprono un file. 1 Tutti gli utenti Web accedono automaticamente con l’account Ospite e assumono i privilegi dell’account Ospite. È possibile permettere agli utenti di cambiare i propri account di accesso da un browser Web con l'istruzione di script Nuovo accesso (ad esempio, per passare da un account Ospite ad un account con più privilegi). 1 Il set di privilegi predefinito per gli account Ospite fornisce accesso di sola lettura. È possibile cambiare i privilegi predefiniti, compresi i privilegi estesi, per questo account. Vedere la Guida di FileMaker Pro. Nota Per impostazione predefinita, gli utenti Web non possono modificare la loro password da un browser Web. Questa funzione può essere inserita in un database con l'istruzione di script password Modifica password che permette agli utenti Web di modificare le password dal browser. Vedere la Guida di FileMaker Pro. Protezione dei database pubblicati Quando si usa Pubblicazione Web personalizzata con XML o XSLT, è possibile definire chi può accedere ai database pubblicati. 1 Assegnare delle password agli account del database che vengono usati per la Pubblicazione Web personalizzata. 1 Attivare la Pubblicazione Web personalizzata con XML o XSLT solo nei set di privilegi degli account a cui si desidera consentire l'accesso ai database pubblicati. 1 Per attivare o disattivare un tipo di tecnologia di Pubblicazione Web personalizzata per un singolo database, impostare il privilegio esteso. 1 Attivare o disattivare un tipo di tecnologia di Pubblicazione Web personalizzata per tutte le soluzioni di Pubblicazione Web personalizzata nel Motore per la Pubblicazione Web utilizzando Admin Console. Vedere la Guida di FileMaker Server. Capitolo 3 | Preparazione dei database per la Pubblicazione Web personalizzata 21 1 Configurare il server Web per limitare gli indirizzi IP che possono accedere ai database attarverso il Motore per la Pubblicazione Web. Ad esempio, è possibile specificare che l'accesso ai database sia consentito esclusivamente agli utenti Web con l’indirizzo IP 192.168.100.101. Per informazioni sulla limitazione degli indirizzi IP, vedere la documentazione del server Web. 1 Utilizzare la crittografia Secure Sockets Layer (SSL) per la comunicazione tra i browser degli utenti Web e il server Web. La crittografia SSL converte le informazioni scambiate tra i server e i client in dati incomprensibili utilizzando formule matematiche note come algoritmi di crittografia. Questi messaggi cifrati sono utilizzati per riconvertire le informazioni in dati comprensibili tramite le chiavi di cifratura. Per informazioni su come abilitare e configurare SSL, consultare la documentazione del server Web. Per ulteriori informazioni sulla protezione del database, consultare la Guida per l'utente di FileMaker Pro, disponibile come file PDF all'indirizzo http://www.filemaker.com/it/support/index.html. Supporto Web server per tipi di supporto Internet (MIME) Il server Web determina il supporto per i tipi MIME (Multipurpose Internet Mail Extensions) correnti registrati per Internet. Il Motore per la Pubblicazione Web non cambia il supporto del server Web per MIME. Per ulteriori informazioni, vedere la documentazione del server Web. Pubblicazione del contenuto di campi Contenitore sul Web I contenuti di un campo Contenitore, come un file immagine, possono essere memorizzati in un database FileMaker, oppure come riferimento ad un file con il relativo percorso. Nota Il Motore per la Pubblicazione Web non supporta lo streaming dei filmati. Gli utenti Web devono scaricare un intero file di filmato prima di essere in grado di visualizzarlo. Pubblicazione di oggetti di campo Contenitore memorizzati in un database Se nei campi Contenitore vengono memorizzati i file effettivi del database FileMaker, non è necessario eseguire nessun'operazione con i campi Contenitore se il file di database è ospitato nella posizione appropriata ed è accessibile su FileMaker Server. Vedere "Sintassi URL per oggetti Contenitore FileMaker in soluzioni XML" a pagina 37, e "Sintassi URL per oggetti Contenitore FileMaker in soluzioni XSLT" a pagina 56. Pubblicazione di oggetti di campo Contenitore memorizzati come riferimento file Se un campo Contenitore memorizza i riferimenti ai file invece dei file effettivi, occorre eseguire la seguente procedura per pubblicare gli oggetti del campo Contenitore. Nota Tutti i filmati QuickTime vengono memorizzati in un campo Contenitore come riferimenti. Per pubblicare gli oggetti dei campi Contenitore memorizzati come riferimenti ai file: 1. Memorizzare file dell'oggetto Contenitore nella cartella Web nella cartella FileMaker Pro. 2. In FileMaker Pro, inserire gli oggetti nel campo Contenitore e selezionare l'opzione Memorizza solo un riferimento al file. 22 Pubblicazione Web personalizzata con XML e XSLT di FileMaker Server 3. Copiare o spostare i file dell'oggetto a cui si fa riferimento nella cartella Web nella stessa posizione relativa nella cartella principale del software del server Web. 1 Per IIS, spostare i file in: <unità>:\Inetpub\wwwroot 1 Per Apache, spostare i file in: /Libreria/WebServer/Documents Nota Per gli oggetti Contenitore memorizzati come riferimenti ai file, il server Web deve essere configurato per supportare i tipi MIME per i file da gestire, come i filmati. Per ulteriori informazioni, vedere la documentazione del server Web. Modalità di visualizzazione dei dati dei campi Contenitore Quando si pubblica un database sul Web tramite il Motore per la Pubblicazione Web, gli utenti Web possono utilizzare i dati contenuti nei campi Contenitore in modo limitato: 1 Gli utenti Web non possono ascoltare suoni o visualizzare oggetti OLE in un campo Contenitore; al loro posto viene visualizzata un’immagine. 1 Gli utenti Web non possono modificare o fare aggiunte al contenuto di un campo Contenitore. Gli utenti Web non possono utilizzare un campo Contenitore per caricare dati nel database. 1 Se il database contiene immagini che non sono in formato GIF o JPEG, quando l'immagine viene richiesta da un browser Web, il Motore per la Pubblicazione Web crea un'immagine JPEG temporanea. Script di FileMaker e Pubblicazione Web personalizzata La funzione Gestisci script in FileMaker Pro consente di combinare varie attività e di automatizzare quelle eseguite più di frequente. Quando sono utilizzati con Pubblicazione Web personalizzata, gli script di FileMaker permettono agli utenti Web di eseguire altre operazioni o una serie di operazioni. FileMaker supporta più di 75 istruzioni di script nella Pubblicazione Web personalizzata. Gli utenti Web possono eseguire diverse operazioni automatizzate quando si usano gli script in una stringa di query per un URL o in un'istruzione di elaborazione <?xslt–cwp–query?> in un foglio di stile XSLT. Per vedere le istruzioni di script non supportate, selezionare Pubblicazione Web dalla lista Indica compatibilità nella finestra Modifica script di FileMaker Pro. Le istruzioni di script di colore grigio non sono supportate sul Web. Per informazioni sulla creazione degli script vedere la Guida di FileMaker Pro. Suggerimenti e considerazioni sugli script Anche se molte istruzioni di script funzionano allo stesso modo sul Web, alcune hanno un funzionamento diverso. Vedere "Comportamento degli script nelle soluzioni di Pubblicazione Web personalizzata" a pagina 24. prima di condividere il database, testare tutti gli script che saranno eseguiti da un browser Web. Effettuare l’accesso con account diversi per assicurarsi che questi funzionino nel modo previsto per tutti i client. Controllare nel file registro dell'applicazione Motore per la Pubblicazione Web (pe_application_log.txt gli eventuali errori relativi agli script; per ulteriori informazioni, vedere "Utilizzo del registro dell'applicazione Motore per la Pubblicazione Web" a pagina 86. Tenere presente quanto segue: 1 Usare account e privilegi per limitare il set di script eseguibili da un utente Web. Verificare che gli script contengano soltanto istruzioni di script compatibili con il Web e offrire accesso soltanto agli script che possono essere usati da un browser Web. Capitolo 3 | Preparazione dei database per la Pubblicazione Web personalizzata 23 1 Considerare inoltre gli effetti collaterali degli script che eseguono una combinazione di istruzioni controllate dai privilegi di accesso. Ad esempio, se uno script contiene un’istruzione per eliminare record e l’utente Web non accede con un account che autorizza tale operazione, essa non verrà eseguita. Tuttavia, l’esecuzione dello script potrebbe continuare, provocando risultati imprevisti. 1 Nella finestra Modifica script, selezionare Esegui script con privilegi di accesso completo per permettere agli script di eseguire operazioni non eseguibili da parte dei singoli utenti. Ad esempio, è possibile impedire agli utenti di eliminare record con i rispettivi account e privilegi, ma nello stesso tempo è possibile consentire loro di eseguire uno script che elimini determinati tipi di record alle condizioni predefinite all’interno di uno script. 1 Se lo script contiene istruzioni non supportate, come ad esempio istruzioni non compatibili con il Web, usare l’istruzione di script Consenti interruzione utente per determinare il modo in cui sono gestite le istruzioni successive. 1 Se l'opzione Consenti interruzione utente è attivata, le istruzioni di script non supportate interrompono l'esecuzione dello script. 1 Se l'opzione Consenti interruzione utente è disattivata, le istruzioni di script non supportate vengono saltate e l'esecuzione dello script continua. 1 Se questa istruzione di script non è inclusa, gli script vengono eseguiti come se la funzione fosse attivata, facendo in modo che le istruzioni di script non supportate interrompano gli script. 1 Alcuni script che usano un'istruzione di un client FileMaker Pro potrebbero necessitare di un'ulteriore istruzione Salva Record/Richieste per salvare i dati sull'host. Poiché gli utenti Web non hanno una connessione diretta con l'host, non ricevono notifica delle variazioni dei dati. Ad esempio, le funzioni come le liste valori condizionali non sono così immediate per gli utenti Web perché i dati devono essere salvati sull'host prima che i loro effetti vengano visualizzati nel campo lista valori. 1 Gli script che modificano i dati devono comprendere l'istruzione Salva Record/Richieste, perché le modifiche apportate ai dati non sono visibili nel browser finché i dati non vengono salvati o "inviati" al server. Alcuni esempi sono le istruzioni di script Taglia, Copia, Incolla, ecc. Molte azioni ad istruzione singola devono essere convertite in script per includere l’istruzione Salva Record/Richieste. Per creare script da eseguire da un browser Web includere l'istruzione Salva Record/Richieste alla fine dello script per assicurarsi che tutte le modifiche vengano salvate. 1 Per creare script condizionali basati sul tipo di client, usare la funzione Get(VersioneApplicazione). Se il valore restituito comprende "Motore per la Pubblicazione Web" significa che l'utente sta accedendo al database con Pubblicazione Web personalizzata. Per ulteriori informazioni sulle funzioni consultare la Guida di FileMaker Pro. 1 Se si sta usando uno script in un foglio di stile XSLT che imposta o modifica uno stato, utilizzare Admin Console di FileMaker Server per attivare l'opzione Sessioni di database XSLT per il Motore per la Pubblicazione Web. Altrimenti non vengono mantenuti gli stati tra le richieste. Vedere la Guida di FileMaker Server. 24 Pubblicazione Web personalizzata con XML e XSLT di FileMaker Server Comportamento degli script nelle soluzioni di Pubblicazione Web personalizzata Le istruzioni di script che seguono funzionano in modo diverso sul Web rispetto a FileMaker Pro. Per informazioni su tutte le istruzioni di script vedere la Guida di FileMaker Pro. Istruzione di script Comportamento nelle soluzioni di Pubblicazione Web personalizzata Esegui script Gli script non possono essere eseguiti in altri file, a meno che i file siano ospitati su FileMaker Server e che la Pubblicazione Web personalizzata sia attivata negli altri file. Esci dall'applicazione Disconnette gli utenti Web, chiude tutte le finestre ma non chiude l'applicazione del browser Web. Consenti interruzione utente Determina il modo in cui vengono gestite le istruzioni di script non supportate. Viene attivata per bloccare l'esecuzione degli script, viene disattivata per saltare le istruzioni non supportate. Per ulteriori dettagli vedere "Suggerimenti e considerazioni sugli script" a pagina 22. Gli utenti Web non possono interrompere gli script della Pubblicazione Web personalizzata, ma questa opzione fa in modo che le istruzioni di script non supportate interrompano l'esecuzione dello script. Imposta cattura errori Questa istruzione è sempre attivata in Pubblicazione Web personalizzata. Gli utenti Web non possono interrompere gli script della Pubblicazione Web personalizzata. Pausa/continua lo script Anche se questo script è supportato in Pubblicazione Web personalizzata, si consiglia di non utilizzarlo. Quando si esegue un'istruzione di pausa, l'esecuzione dello script si arresta. Solo gli script che contengono l'istruzione per riprendere l'esecuzione possono ripartire. Se lo script rimane nello stato di pausa fino alla fine della sessione, esso non viene completato. Ordina i record Salvare un criterio di ordinamento con l'istruzione di script Ordina record da eseguire in Pubblicazione Web personalizzata. Apri URL Questa istruzione di script non produce effetti in una soluzione di Pubblicazione Web personalizzata. Vai al campo Non è possibile usare Vai al campo per attivare un particolare campo nel browser Web, ma è possibile usare questa istruzione di script insieme con altre per eseguire delle operazioni. Ad esempio è possibile passare in un campo, copiarne il contenuto, passare ad un altro campo e incollare il valore. Per vederne gli effetti sul browser è necessario salvare il record con l’istruzione di script Salva record. Salva Record/Richieste Invia il record al database. Trigger degli script e soluzioni di Pubblicazione Web personalizzata In FileMaker Pro, i trigger degli script possono essere attivati sia dagli script che dalle operazioni dell'utente (come ad esempio facendo clic su un campo). In Pubblicazione Web personalizzata, invece, solo gli script possono attivare i trigger degli script. Ad esempio, se un utente della Pubblicazione Web personalizzata fa clic su un campo che ha un trigger di script SuEntrataOggetto, il trigger non è attivato. Tuttavia, se uno script fa in modo che il fuoco si sposti sul campo, il trigger di script SuEntrataOggetto viene attivato. Per ulteriori informazioni sui trigger degli script, vedere la Guida di FileMaker Pro. Capitolo 4 Introduzione alla Pubblicazione Web personalizzata con XSLT È possibile utilizzare i fogli di stile XSLT FileMaker per trasformare, filtrare o formattare i dati XML per l'uso in un browser Web oppure in altri programmi e applicazioni. Questo capitolo introduce i fogli di stile FileMaker XSLT e uno strumento di supporto per iniziare a creare i fogli di stile XSLT—XSLT Site Assistant FileMaker. Per informazioni più dettagliate su come vengono costruiti i fogli di stile XSLT FileMaker, vedere capitolo 6, "Sviluppo di fogli di stile XSLT FileMaker". Informazioni sui fogli di stile XSLT FileMaker È possibile utilizzare i fogli di stile XSLT FileMaker per: 1 filtrare i dati di FileMaker controllando quali campi del database sono pubblicati dal foglio di stile 1 nascondere i metadata, come i nomi dei database e dei campi 1 formattare i dati nel modo in cui si presentano in una pagina web e controllare come l'utente interagisce con i dati 1 restituire i dati di formato HTML oppure testo, come vCards o valori separati da una virgola 1 trasformare i dati da una grammatica XML FileMaker ad una diversa grammatica XML da utilizzare in un altro database o applicazione, di formato SVG (Scalable Vector Graphics) 1 integrare qualsiasi sottoinsieme di dati FileMaker in altri siti web, e con altre applicazioni middleware e personalizzate che sono potenzialmente molto diverse dal database FileMaker 1 cambiare i nomi dei campi pubblicati per impedire l'uso non autorizzato delle informazioni relative al database Nota La Pubblicazione Web personalizzata con XSLT per FileMaker Server si basa sui suggerimenti W3C per XSLT 1.0. Per informazioni su XSLT 1.0, vedere www.w3.org. Le funzionalità aggiuntive quali la gestione della sessione, l'invio di e-mail e l'accesso ai cookie e alle intestazioni sono fornite dalle funzioni di estensione XSLT di FileMaker. Per informazioni, vedere "Utilizzo dei parametri e delle funzioni di estensione XSLT FileMaker" a pagina 62. Il Motore per la Pubblicazione Web non supporta XSL Formatting Objects (XSL-FO). Esempi di utilizzo dei fogli di stile XSLT FileMaker Qui vengono riportati alcuni esempi di utilizzo dei fogli di stile XSLT FileMaker: 1 È possibile inserire una tabella in una pagina Web per consentire agli utenti del Web di sfogliare un sottoinsieme di dati da un database FileMaker. Ad esempio, la tabella potrebbe contenere i nomi delle persone e gli indirizzi, ma non i loro numeri di telefono. Per impedire l'accesso non autorizzato, la pagina Web può mostrare le etichette generiche dei dati (come "CAP") invece dei nomi effettivi dei campi nel database FileMaker, come "codice_postale". 1 È possibile creare una pagina Web o un'applicazione che integra i dati da un portale FileMaker con le informazioni da altre origini dati. 26 Pubblicazione Web personalizzata con XML e XSLT di FileMaker Server 1 È possibile aggiungere un pulsante su una pagina Web che crea una vCard dalle informazioni di contatto della persona in un database FileMaker. 1 È possibile trasformare i dati XML da un database FileMaker a una grammatica XML in modo che possano essere aperti da un foglio elettronico o da un'applicazione del database. Uso della Pubblicazione Web personalizzata con XSLT Se si conosce il linguaggio XML e XSLT standard, è possibile cominciare subito ad usare il Motore per la Pubblicazione Web dopo aver appreso alcuni dettagli sulla pubblicazione XML e XSLT di FileMaker, ad esempio su come utilizzare le funzioni di estensione XSLT specifiche di FileMaker e i comandi e i parametri di query. XSLT Site Assistant è uno strumento di supporto per creare fogli di stile e apprendere come sono costruiti. Quindi è possibile utilizzare gli strumenti per la creazione XML e XSLT preferiti per migliorare ulteriormente il foglio di stile. Come il Motore per la Pubblicazione Web genera le pagine in base ai dati XML e ai fogli di stile XSLT Dopo l'invio al server Web di una richiesta XSLT-CWP (Pubblicazione Web personalizzata XSLT), il Motore per la Pubblicazione Web esegue una query del database FileMaker in base ai comandi e ai parametri di query che sono definiti nel foglio di stile e nell'URL, e quindi restituisce i dati secondo le istruzioni nel foglio di stile XSLT. Web Browser 1. La richiesta XSLT-CWP viene inviata dal browser o dal programma Web al server Web. Motore per la Pubblicazione Web di FileMaker Server Server Web Modulo Server Web 3. CWPE richiede i dati XML dal Web Publishing Core in base ai comandi e ai parametri di query. 4. Web Publishing Core richiede dati al database ospitato dal server database FileMaker. Database FileMaker Server Web Publishing Core Motore per la Pubblicazione Web Prodotti.fp7 Clienti.fp7 Ordini.fp7 Catalogo.fp7 2. Il server Web invia la richiesta XSLTCWP a CWPE. La richiesta XSLT-CWP viene inviata dal browser Web o dal programma a FileMaker Server I dati vengono reinviati dal server database e il Motore per la Pubblicazione Web utilizza il foglio di stile XSLT per trasformare e formattare i dati Web Browser 8. Il server Web invia l'output al browser Web o al programma. Motore per la Pubblicazione Web di FileMaker Server Server Web Modulo Server Web 6. Web Publishing Core converte i dati in formato XML e li invia a CWPE. Web Publishing Core Motore per la Pubblicazione Web 7. CWPE utilizza il foglio di stile XSLT per formattare o trasformare i dati XML e invia l'output come pagine HTML, documento XML o testo per il server Web. 5. Il server database FileMaker invia i dati richiesti a Web Publishing Core. Capitolo 4 | Introduzione alla Pubblicazione Web personalizzata con XSLT 27 Operazioni generali per utilizzare la Pubblicazione Web personalizzata con XSLT Qui di seguito viene riportato un riepilogo delle operazioni per utilizzare la Pubblicazione Web personalizzata con XSLT: 1. In Admin Console, assicurarsi che Pubblicazione XSLT sia abilitata. Vedere la Guida di FileMaker Server. 2. Utilizzando FileMaker Pro, aprire ogni database FileMaker da pubblicare e assicurarsi che il database abbia attivato il privilegio esteso fmxslt per la Pubblicazione Web personalizzata con XSLT. Vedere "Attivazione della Pubblicazione Web personalizzata in un database" a pagina 19. Nota Assicurarsi di utilizzare il set di privilegi del database FileMaker equivalente quando si sviluppano i fogli di stile che saranno dati all'utente finale. In caso contrario, si potrebbe avere l'accesso a formati e funzioni nel database FileMaker che non sarà disponibile all'utente finale, provocando un comportamento incoerente. 3. Creare i fogli di stile XSLT che comprendono le funzioni di estensione XSLT specifiche di FileMaker e i comandi e i parametri della query per formattare o trasformare i dati XML da un database FileMaker. È possibile utilizzare lo strumento FileMaker Site Assistant per creare uno o più fogli di stile XSLT di base, come punto di partenza per il sito. Vedere la sezione successiva, "Utilizzo di XSLT Site Assistant FileMaker Site per generare fogli di stile XSLT FileMaker". È anche possibile usare i propri strumenti di modifica testo o di authoring per modificare i fogli di stile XSLT, se necessario, o per sviluppare il foglio di stile ex novo. Vedere capitolo 6, "Sviluppo di fogli di stile XSLT FileMaker". 4. Copiare o inserire i fogli di stile XSLT nella cartella xslt-template-files, situata all'interno della cartella Pubblicazione Web dentro la cartella FileMaker Server sul computer host in cui è installato il Motore per la Pubblicazione Web. I fogli di stile possono essere inseriti anche in un'altra cartella o nell'albero di cartelle all'interno della cartella dei xslt-template-files. 5. Mettere eventuali file statici sul server Web. Vedere "Utilizzo dei fogli di stile FileMaker XSLT in un sito Web o in un programma" a pagina 30. 6. Creare o modificare un sito web o un programma che utilizza i fogli di stile XSLT. Ad esempio è possibile utilizzare una pagina statica, come index.html, per il sito web che auto-inoltra gli utenti Web ad un foglio di stile XSLT o che ha un collegamento al foglio di stile XSLT. 7. Assicurarsi che i meccanismi della sicurezza per il sito o per il programma siano a posto. 8. Esaminare il sito o il programma con il foglio di stile XSLT, utilizzando gli stessi account e privilegi che sono definiti per gli utenti Web. 9. Rendere il sito o il programma disponibile e conosciuto per gli utenti. 28 Pubblicazione Web personalizzata con XML e XSLT di FileMaker Server Utilizzo di XSLT Site Assistant FileMaker Site per generare fogli di stile XSLT FileMaker XSLT Site Assistant FileMaker è un'applicazione che può essere utilizzzata per creare fogli di stile XSLT di base come punto di partenza per la Pubblicazione Web personalizzata con XSLT. XSLT Site Assistant permette di apprendere in che modo vengono realizzati i fogli di stile XSLT FileMaker. È quindi possibile utilizzare gli strumenti di modifica testo o di authoring di fogli di stile XSLT per modificare i fogli di stile in base alle proprie necessità. Non è possibile utilizzare XSLT Site Assistant per modificare o aggiornare fogli di stile esistenti, ma lo si può usare per creare i fogli di stile iniziali per un intero sito, o un singolo foglio di stile per aggiungere funzioni di base (come la modifica dei record) ad un sito esistente. È possibile utilizzare XSLT Site Assistant per generare fogli di stile XSLT per tutti i tipi di pagine utili per lavorare con i database FileMaker attraverso la Pubblicazione Web personalizzata. A seconda delle opzioni che si scelgono in XSLT Site Assistant, è possibile creare un sito che permette agli utenti di: 1 sfogliare un solo record alla volta 1 visualizzare una lista di tutti i record nel database 1 cercare il database e visualizzare i risultati in una lista 1 ordinare i record 1 1 1 1 aggiungere i record modificare e duplicare i record eliminare i record visualizzare un resoconto di un riassunto È anche possibile creare una home page opzionale, collegata alle altre pagine di fogli di stile XSLT generate. Il Motore per la Pubblicazione Web fa uso di tutti i fogli di stile per ottenere dinamicamente i dati da un database FileMaker ogni volta che un utente Web invia una richiesta HTTP e un URL riferito ad uno dei fogli di stile XSLT. Il Motore per la Pubblicazione Web fa uso di un foglio di stile per trasformare e formattare i dati XML e genera la pagina HTML con cui può lavorare l'utente Web. Nota Nei fogli di stile di XSLT Site Assistant i dati XML di FileMaker vengono trasformati in pagine HTML sulla base della grammatica XML fmresultset che rende i fogli di stile incompatibili per altri usi dei dati XML, come ad esempio l'esportazione XML in FileMaker Pro . Prima di utilizzare XSLT Site Assistant Prima di utilizzare XSLT Site Assistant per generare fogli di stile XSLT per un database: 1 Impostare il privilegio esteso fmxslt nel database. Quando si esegue XSLT Site Assistant, utilizzare i set di privilegi equivalenti a quelli forniti agli utenti Web. Vedere "Attivazione della Pubblicazione Web personalizzata in un database" a pagina 19. 1 Aprire e ospitare il database sul componente server database di FileMaker Server. Vedere la Guida di FileMaker Server. 1 Assicurarsi che il componente server Web di FileMaker Server sia attivo. 1 Assicurarsi che il componente Motore per la Pubblicazione Web di FileMaker server sia attivo. 1 Attivare la Pubblicazione XSLT nel Motore per la Pubblicazione Web per utilizzare e controllare i fogli di stile XSLT. Vedere la Guida di FileMaker Server. Capitolo 4 | Introduzione alla Pubblicazione Web personalizzata con XSLT 29 Avvio di XSLT Site Assistant Nota Per usare XSLT Site Assistant, bisogna aver installato l'ambiente runtime Java 5 o 6. Per avviare XSLT Site Assistant: 1. Aprire un browser alla pagina strumenti Pubblicazione Web FileMaker Server Web. Andare al seguente URL: http://<server>:16000/tools In cui <server> è la macchina in cui risiede FileMaker Server. 2. Fare clic su Strumenti PHP Site Assistant e XSLT Site Assistant per andare alla pagina strumenti Pubblicazione Web FileMaker Server Web. 3. Fare clic su Avvia XSLT Site Assistant. FileMaker Server installa i file JAR richiesti sulla macchina locale, visualizzando la finestra di dialogo di avanzamento fino a quando la procedura è completata. 4. (Opzionalmente) Dopo aver installato i file, è possibile scegliere se installare un icona di XSLT Site Assistant sul desktop. Fare clic su OK per installare l'icona. A questo punto è possibile iniziare ad utilizzare XSLT Site Assistant. Utilizzo di XSLT Site Assistant Per informazioni dettagliate e procedure passo dopo passo sull'utilizzo di XSLT Site Assistant, vedere la Guida di XSLT Site Assistant. Per informazioni sull'utilizzo dei fogli di stile generati da XSLT Site Assistant, consultare "Utilizzo dei fogli di stile FileMaker XSLT in un sito Web o in un programma" a pagina 30. Importante Quando si utilizza XSLT Site Assistant, se si seleziona un database che contiene più tabelle, assicurarsi di selezionare i formati che sono associati con la stessa tabella o altrimenti il sito generato restituisce risultati non previsti. Ad esempio, un database potrebbe contenere una tabella Prodotti e una tabella Clienti. Se si selezionano i formati per una pagina Ricerca, una pagina Modifica record, e una pagina Aggiungi record, assicurarsi che i formati siano tutti associati alla stessa tabella. Informazioni sui fogli di stile generati da XSLT Site Assistant I fogli di stile XSLT generati da XSLT Site Assistant comprendono varie istruzioni di elaborazione, elementi e parametri specifici di FileMaker. Seguono alcuni esempi di ciò che è compreso: 1 L'istruzione di elaborazione <?xslt-cwp-query params="query string-fragment"?>specifica la grammatica XML da utilizzare e definisce staticamente il nome del database da scegliere in XSLT Site Assistant. Vedere "Utilizzo di comandi query e parametri query definiti staticamente" a pagina 58. 1 L'elemento <xsl:param name="request-query"/> è utilizzato per accedere alle informazioni delle query nei dati di una richiesta o di un modulo HTML. Ad esempio, questo elemento può essere utilizzato nei fogli di stile XSLT Site Assistant per accedere alle informazioni per le query delle richieste correnti per determinare la posizione attuale in un gruppo trovato di record e per creare i collegamenti al record precedente o successivo. Vedere "Accesso alle informazioni sulle query in una richiesta" a pagina 63. 30 Pubblicazione Web personalizzata con XML e XSLT di FileMaker Server 1 L'elemento <xsl:param name="authenticated-xml-base-uri"/>, non sempre compreso, è utilizzato per accedere a un URI di base autenticato in una richiesta quando si necessita di più dati XML nella richiesta. Vedere "Utilizzo del parametro URI di base autenticato" a pagina 64. XSLT Site Assistant genera anche il foglio di stile utilities.xsl per definire gli errori e i modelli comuni XSLT richiamati da vari fogli di stile di XSLT Site Assistant. Per informazioni sulle altre sezioni dei fogli di stile XSLT Site Assistant, vedere capitolo 6, "Sviluppo di fogli di stile XSLT FileMaker". Utilizzo dei fogli di stile FileMaker XSLT in un sito Web o in un programma Se si è utilizzato XSLT Site Assistant per generare fogli di stile XSLT o si sono creati da zero dei fogli di stile, i passi per utilizzarli in un sito web o in un programma con il Motore per la Pubblicazione Web sono gli stessi. Per utilizzare i fogli di stile XSLT FileMaker in un sito web o in un programma: 1. Copiare o inserire i fogli di stile XSLT nella cartella xslt-template-files, situata all'interno della cartella Pubblicazione Web dentro la cartella FileMaker Server sul computer host in cui è installato il Motore per la Pubblicazione Web. I fogli di stile possono essere inseriti anche in un'altra cartella o nell'albero di cartelle all'interno della cartella dei xslt-template-files. 2. Se i fogli di stile XSLT fanno riferimento a file statici, quali file di immagine o HTML statici, mettere i file statici nel loro albero di cartelle originale all'interno della cartella principale sul server Web. Assicurarsi che venga conservato il percorso relativo. Ad esempio, si supponga che un foglio di stile XSLT si riferisca a un file di immagine chiamato logo.jpg utilizzando il tag HTML <img src="logo.jpg">. Il file logo.jpg deve essere disposto nella posizione seguente del server Web: <cartella principale>/fmi/xsl/logo.jpg 3. Se un campo Contenitore del database contiene un riferimento al file anziché il file reale, l'oggetto Contenitore di riferimento deve essere memorizzato nella cartella FileMaker Pro Web quando il record viene creato o modificato e quindi copiato o spostato in una cartella con la stessa posizione relativa del software server Web nella cartella principale. Vedere "Pubblicazione del contenuto di campi Contenitore sul Web" a pagina 21. Nota Se nei campi Contenitore vengono memorizzati i file effettivi del database FileMaker, non è necessario fare nulla con i campi Contenitore se il file di database è ospitato nella posizione appropriata e accessibile su FileMaker Server. Capitolo 4 | Introduzione alla Pubblicazione Web personalizzata con XSLT 31 4. Per richiedere ed elaborare un foglio di stile XSLT, utilizzare la seguente sintassi URL: <scheme>://<host>[:<port>]/fmi/xsl/<folder>/<stylesheet>.xsl[?<query string>] Vedere "Sintassi URL per i fogli di stile XSLT FileMaker" a pagina 55. Nota Per i siti Web, è buona norma comprendere un foglio di stile XSLT, come una home page che non richiede agli utenti di inserire una stringa query per accedervi. XSLT Site Assistant può creare un file home.xsl che non richiede una stringa query perché utilizza l'istruzione di elaborazione <?xslt-cwp-query?>. Ad esempio, se i fogli di stile (che comprendono un foglio di stile home.xsl) sono stati copiati nella cartella my_templates all'interno della cartella xslt-template-files, si può usare il seguente URL per richiedere ed elaborare i fogli di stile: http://192.168.123.101/fmi/xsl/my_templates/home.xsl Importante Il Motore per la Pubblicazione Web non consente agli utenti Web di visualizzare l'origine dei fogli di stile XSLT installati nella cartella xslt-template-files. Quando gli utenti Web inviano una richiesta di elaborazione di un foglio di stile, il Motore per la Pubblicazione Web invia solo il risultato della trasformazione del foglio di stile al browser Web o al programma. Risoluzione dei problemi dei fogli di stile XSLT Se si hanno problemi utilizzando i fogli di stile XSLT, verificare che: 1 I privilegi estesi nel database siano impostati per la Pubblicazione Web personalizzata con XSLT e assegnati a un account utente. Vedere "Attivazione della Pubblicazione Web personalizzata in un database" a pagina 19. 1 Il database è ospitato e aperto sul componente server database di FileMaker Server. Vedere la Guida di FileMaker Server. 1 1 1 1 Gli eventuali nomi utente e password utilizzati per il database siano corretti. Il componente server Web di FileMaker Server è attivo. Il componente Motore per la Pubblicazione Web di FileMaker server è attivo. La pubblicazione XSLT sia abilitata nel Motore per la Pubblicazione Web. 1 Aprire la pagina relativa alle prove tecniche di FileMaker Server: http://<server>:16000/test In cui <server> è la macchina in cui risiede FileMaker Server. 1 Fare clic sul link collegare Test Pubblicazione Web personalizzata XSLT per aprire una pagina XSLT con accesso al database di test FMServer_Sample. Per ulteriori informazioni, vedere Guida introduttiva di FileMaker Server e la Guida di FileMaker Server. 32 Pubblicazione Web personalizzata con XML e XSLT di FileMaker Server Capitolo 5 Accesso a dati XML con Motore per la Pubblicazione Web È possibile ottenere e aggiornare dati FileMaker in formato XML (Extensible Markup Language) usando il Motore per la Pubblicazione Web. Così come l'HTML è diventato il linguaggio standard di visualizzazione per le comunicazioni sul Web, XML è diventato il linguaggio standard per lo scambio di dati strutturati. Numerosi utenti, organizzazioni e aziende utilizzano XML per trasferire informazioni sui prodotti, dati di transazioni, inventari e altri dati di carattere professionale. Uso di Pubblicazione Web personalizzata con il linguaggio XML Se si conosce il linguaggio XML standard, è possibile cominciare subito ad usare il Motore per la Pubblicazione Web dopo aver appreso i dettagli sulla Pubblicazione Web personalizzata con XML, come ad esempio la sintassi URL e i parametri delle query da usare. Utilizzando richieste HTTP URL con comandi e parametri di query specifici FileMaker, è possibile eseguire query su un database ospitato da FileMaker Server e scaricare i dati risultanti in formato XML. Ad esempio è possibile eseguire query in un database per tutti i record compresi in un certo codice postale, e usare i dati XML risultanti nel modo desiderato. È anche possibile usare i fogli di stile XSLT lato server del Motore per la Pubblicazione Web per filtrare i dati XML, riformattare i dati in HTML o in formato testo come ad esempio vCards, oppure trasformare i dati in altre grammatiche XML quale SVG (Scalable Vector Graphics). Vedere capitolo 4, "Introduzione alla Pubblicazione Web personalizzata con XSLT" e capitolo 6, "Sviluppo di fogli di stile XSLT FileMaker". Per informazioni più generali sul linguaggio XML, altri esempi d'uso del linguaggio XML e collegamenti a risorse XML, visitare il sito Web FileMaker all'indirizzo www.filemaker.com/it. Nota Il Motore per la Pubblicazione Web genera dati XML corretti e compatibili con la specifica XML 1.0. Per ulteriori dettagli su come creare dati XML corretti vedere le specifiche XML, disponibili all'indirizzo www.w3.org. Differenze di importazione/esportazione XML tra Motore per la Pubblicazione Web e FileMaker Pro Il Motore per la Pubblicazione Web e FileMaker Pro consentono entrambi di usare dati XML con database FileMaker. Tuttavia, esistono alcune differenze significative tra i due metodi: 1 Per accedere ai dati XML e alla pubblicazione XSLT sul Web, il Motore per la Pubblicazione Web supporta le grammatiche fmresultset, FMPXMLRESULT e FMPXMLLAYOUT. Per l'importazione XML, FileMaker Pro usa la grammatica FMPXMLRESULT; per l'esportazione, usa le grammatiche FMPXMLRESULT o FMPDSORESULT. Vedere "Accesso a dati XML attraverso il Motore per la Pubblicazione Web" a pagina 38. 1 Per accedere a dati XML con il Motore per la Pubblicazione Web, usare una stringa di query Motore per la Pubblicazione Web in un URL. Per importare ed esportare dati XML con FileMaker Pro, si usano i comandi dei menu o gli script di FileMaker Pro. 1 Il Motore per la Pubblicazione Web è basato sul server e può essere installato sullo stesso host o su un host diverso da FileMaker Server. L'importazione e l'esportazione di dati XML di FileMaker Pro è basata sul desktop. 34 Pubblicazione Web personalizzata con XML e XSLT di FileMaker Server 1 È possibile accedere in modo dinamico ai dati XML dai database FileMaker utilizzando le richieste URL con il Motore per la Pubblicazione Web. La funzione di esportazione XML di FileMaker Pro genera un file di dati XML predefinito. 1 Lavorare con dati XML attraverso il Motore per la Pubblicazione Web è un'operazione interattiva. L'importazione e l'esportazione XML da FileMaker Pro è un operazione batch. 1 Il Motore per la Pubblicazione Web può accedere ai dati XML da un portale FileMaker; FileMaker Pro no. 1 Il Motore per la Pubblicazione Web può accedere ai dati dei campi Contenitore; FileMaker Pro no. 1 Il Motore per la Pubblicazione Web fornisce un accesso in tempo reale ai dati FileMaker via HTTP o HTTPS; FileMaker Pro no. Nota Per informazioni su come usare FileMaker Pro per importare ed esportare dati in formato XML, vedere la Guida di FileMaker Pro. Come il Motore per la Pubblicazione Web genera dati XML da una richiesta Quando una richiesta di dati XML viene inviata al server Web, il Motore per la Pubblicazione Web esegue una query al database FileMaker e restituisce i dati sotto forma di documento XML. Web Browser 1. La richiesta HTTP o HTTPS di dati XML viene inviata dal browser Web o dal programma al server Web. 2. Il server Web invia la richiesta al Web Publishing Core. Motore per la Pubblicazione Web di FileMaker Server 3. Web Publishing Core richiede dati al database ospitato dal server database FileMaker. Database FileMaker Server Web Publishing Core Server Web Modulo Server Web Motore per la Pubblicazione Web Prodotti.fp7 Clienti.fp7 Ordini.fp7 Catalogo.fp7 La richiesta di dati XML viene inviata dal browser Web o dal programma al server database I dati XML vengono reinviati dal server database FileMaker al browser Web o al programma Web Browser 6. Il server Web invia l'output al browser Web o al programma. 5. Web Publishing Core converte i dati in formato XML e li invia al server Web. Motore per la Pubblicazione Web di FileMaker Server Web Publishing Core Server Web Modulo Server Web Motore per la Pubblicazione Web 4. Il server database FileMaker invia i dati richiesti a Web Publishing Core. Capitolo 5 | Accesso a dati XML con Motore per la Pubblicazione Web 35 Procedura generale per accedere a dati XML dal Motore per la Pubblicazione Web Di seguito vi è una descrizione della procedura da seguire per usare il Motore per la Pubblicazione Web per accedere a dati XML da un database FileMaker: 1. In Admin Console di FileMaker Server, assicurarsi che la Pubblicazione XML sia attivata. Vedere la Guida di FileMaker Server. 2. In FileMaker Pro, aprire ogni database FileMaker da pubblicare e assicurarsi che il database abbia attivato il privilegio esteso fmxml per la Pubblicazione Web personalizzata XML. Vedere "Attivazione della Pubblicazione Web personalizzata in un database" a pagina 19. Per accedere ai dati XML di un portale, impostare la visualizzazione per il formato del database su Visualizza come modulo oppure Visualizza come lista. Se un utente o uno script cambia la visualizzazione del formato del database in Visualizza come tabella, soltanto il primo record correlato (prima riga del portale) è accessibile come dati XML. I dati XML vengono restituiti in un ordine corrispondente a quello in cui gli oggetti dei campi erano stati aggiunti al formato. Se si vuole che l'ordine dei dati XML corrisponda a quello in cui i campi appaiono sullo schermo (dall'alto in basso, da sinistra verso destra), selezionare tutti i campi, raggrupparli e quindi separarli. Questa procedura permette di ripristinare l'ordine del formato in modo che corrisponda a quello dello schermo. 3. Inviare una richiesta HTTP o HTTPS, sotto forma di un URL che specifichi la grammatica XML FileMaker, un comando di query e uno o più parametri di query FileMaker, al Motore per la Pubblicazione Web attraverso un modulo HTML, un collegamento HREF o uno script nel proprio programma o nella propria pagina Web. È anche possibile digitare l'URL in un browser Web. Per informazioni su come specificare l'URL, vedere la sezione seguente, "Sintassi URL per dati XML e oggetti Contenitore". Per informazioni sui comandi e i parametri delle query, vedere "Utilizzo di stringhe query FileMaker per richiedere dati XML" a pagina 47, e appendice A, "Nomi validi usati nelle stringhe delle query". 4. Il Motore per la Pubblicazione Web usa la grammatica specificata nell'URL per generare dati XML che contengono i risultati della richiesta, come ad esempio un set di record dal database, e li restituisce al programma o al browser Web. 5. Il browser Web, se ha un parser XML, visualizza i dati, oppure il programma usa i dati nel modo specificato. Se è stato specificato un foglio di stile lato client, il parser del browser Web applica le istruzioni del foglio di stile. Vedere "Uso dell'elaborazione lato server e lato client dei fogli di stile" a pagina 50. Sintassi URL per dati XML e oggetti Contenitore Questa sezione descrive la sintassi URL per utilizzare il Motore per la Pubblicazione Web per accedere ai dati XML e agli oggetti Contenitore da database FileMaker. La sintassi URL per l'uso dei fogli di stile XSLT è diversa da XML. Vedere "Sintassi URL per i fogli di stile XSLT FileMaker" a pagina 55 e "Sintassi URL per oggetti Contenitore FileMaker in soluzioni XSLT" a pagina 56. 36 Pubblicazione Web personalizzata con XML e XSLT di FileMaker Server Sintassi URL per dati XML La sintassi URL per utilizzare il Motore per la Pubblicazione Web per accedere a dati XML da database FileMaker è: <scheme>://<host>[:<port>]/fmi/xml/<xml_grammar>.xml[?<query string>] dove: 1 <scheme> può essere il protocollo HTTP o HTTPS. 1 <host> è l'indirizzo IP o il nome di dominio dell'host su cui è installato il server Web. 1 <port> è opzionale e indica la porta che il server Web sta usando. Se non è specificata nessuna porta, viene utilizzata la porta predefinita del protocollo (porta 80 per HTTP o porta 443 per HTTPS). 1 <xml_grammar> è il nome della grammatica XML FileMaker. I valori possibili sono fmresultset.xml, FMPXMLRESULT.xml, FMPXMLLAYOUT.xml o FMPDSORESULT.xml. Vedere le sezioni "Utilizzo della grammatica fmsresultset" a pagina 39 e "Utilizzo di altre grammatiche XML di FileMaker" a pagina 43. 1 <query string> è una combinazione di un comando di query e di uno o più parametri di query per la Pubblicazione XML FileMaker. (il comando –dbnames non richiede alcun parametro). Vedere "Utilizzo di stringhe query FileMaker per richiedere dati XML" a pagina 47, e appendice A, "Nomi validi usati nelle stringhe delle query". Nota La sintassi URL, compresi i nomi dei comandi e dei parametri di query, fa distinzione tra maiuscole e minuscole, eccetto per parti della stringa di query. La maggioranza dell'URL è in minuscolo, ad eccezione dei tre nomi delle grammatiche, che sono in maiuscolo: FMPXMLRESULT, FMPXMLLAYOUT e FMPDSORESULT. Per informazioni sulle regole per le maiuscole/minuscole della stringa query, vedere "Linee guida per l'uso dei comandi e dei parametri delle query" a pagina 90. Ecco due esempi di URL per accedere a dati XML attraverso il Motore per la Pubblicazione Web: http://server.company.com/fmi/xml/fmresultset.xml?–db=products&–lay=sales&–findall http://192.168.123.101/fmi/xml/FMPXMLRESULT.xml?–db=products&–lay=sales&–findall Capitolo 5 | Accesso a dati XML con Motore per la Pubblicazione Web 37 Sintassi URL per oggetti Contenitore FileMaker in soluzioni XML In un documento XML generato per una soluzione XML, la sintassi usata per fare riferimento ad un oggetto Contenitore è diversa per i campi Contenitore che memorizzano l'oggetto effettivo nel database; al contrario, i campi Contenitore memorizzano un riferimento all'oggetto. 1 Se un campo Contenitore memorizza l'oggetto effettivo nel database, l'elemento <data> del campo Contenitore usa la seguente sintassi URL relativa per fare riferimento all'oggetto: <data>/fmi/xml/cnt/data.<extension>?<query string></data> dove <extension> è l'estensione del nome del file che identifica il tipo di oggetto, come ad esempio .jpg. L'estensione del file imposta il tipo MIME per consentire al browser Web di identificare correttamente i dati Contenitore. Per informazioni su <query string>, vedere la sezione precedente, "Sintassi URL per dati XML". Ad esempio: <data>/fmi/xml/cnt/data.jpg?–db=products&–lay=sales&–field=product_image(1)&–recid=2</data> Nota Nell'XML generato per un campo Contenitore, il valore del parametro di query –field è un nome di campo completamente qualificato Il numero tra parentesi indica il numero di ripetizioni per il campo Contenitore, ed è generato sia per i campi multipli sia per quelli non multipli. Vedere "Sintassi di un nome di campo completamente qualificato" a pagina 91. Per recuperare i dati Contenitore dal database, utilizzare la seguente sintassi: <scheme>://<host>[:<port>]/fmi/xml/cnt/data.<extension>?<query string> Per informazioni su <scheme>, <host>, o <port>, vedere la sezione precedente, "Sintassi URL per dati XML". Ad esempio: http://www.company.com/fmi/xml/cnt/data.jpg?–db=products&–lay=sales&–field=product_image(1)&–recid=2 1 Se un campo Contenitore memorizza un riferimento al file invece di un oggetto effettivo, l'elemento <data> del campo Contenitore contiene un percorso relativo che si riferisce all'oggetto. Ad esempio: <data>/images/logo.jpg</data> Nota L'oggetto Contenitore di riferimento deve essere memorizzato nella cartella Web di FileMaker Proquando il record viene creato o modificato, e quindi copiato o spostato in una cartella con la stessa posizione relativa nella cartella principale del software del server Web. Vedere "Pubblicazione del contenuto di campi Contenitore sul Web" a pagina 21. 1 Se un campo Contenitore è vuoto, l'elemento <data> del campo Contenitore è vuoto. Nota La sintassi degli oggetti Contenitore che usano XML è diversa dalla sintassi degli oggetti Contenitore che usano XSLT. Vedere "Sintassi URL per oggetti Contenitore FileMaker in soluzioni XSLT" a pagina 56. Codifica testo URL L'URL per accedere ai dati XML e agli oggetti Contenitore deve essere codificato in formato UTF-8 (Unicode Transformation 8 Bit). Vedere la sezione "Dati codificati nel formato UTF-8" a pagina 47. Ad esempio, per impostare il valore del campo info in fiancée, è possibile usare il seguente URL: http://server.company.com/fmi/xml/fmresultset.xml?–db=members&–lay=relationships&–recid=2 &info= fianc%C3%A9e&–edit In questo URL di esempio, %C3 %A9 è la rappresentazione UTF-8 codificata URL del carattere é. Per ulteriori informazioni sulla codifica testo URL, vedere la specifica URL, disponibile all'indirizzo www.w3.org. 38 Pubblicazione Web personalizzata con XML e XSLT di FileMaker Server Accesso a dati XML attraverso il Motore per la Pubblicazione Web Per accedere a dati XML attraverso il Motore per la Pubblicazione Web si utilizza un URL che specifica il nome della grammatica FileMaker da usare, un comando di query FileMaker e uno o più parametri query FileMaker. Il Motore per la Pubblicazione Web genera dati XML dal database formattato da uno dei seguenti tipi di grammatica XML: 1 fmresultset: È la grammatica consigliata per il Motore per la Pubblicazione Web. È flessibile e ottimizzata per la creazione di fogli di stile XSLT con accesso più semplice ai campi per nome e manipolazione più semplice di dati relatedset (portale). Questa grammatica è anche collegata più direttamente alla terminologia FileMaker e alle funzioni come le opzioni di memorizzazione globale e all'identificazione dei campi Riassunto e Calcolo. È possibile utilizzare questa grammatica per accedere a dati XML e per i fogli di stile XSLT. Per facilitare la pubblicazione sul Web, questa grammatica è stata progettata in modo da essere più dettagliata della grammatica FMPXMLRESULT. Vedere "Utilizzo della grammatica fmsresultset" a pagina 39. 1 FMPXMLRESULT e FMPXMLLAYOUT: È anche possibile usare le grammatiche FMPXMLRESULT e FMPXMLLAYOUT con il Motore per la Pubblicazione Web per accedere a dati XML e a fogli di stile XSLT. Per utilizzare lo stesso foglio di stile sia per l'esportazione XML sia per la Pubblicazione Web personalizzata, è necessario usare la grammatica FMPXMLRESULT. Per accedere alle liste valori e alle informazioni sulla visualizzazione dei campi nei formati è necessario usare la grammatica FMPXMLLAYOUT. Vedere "Utilizzo di altre grammatiche XML di FileMaker" a pagina 43. 1 FMPDSORESULT: La grammatica FMPDSORESULT, supportata da FileMaker Pro per l'esportazione XML, è obsoleta per accedere a dati XML attraverso il Motore per la Pubblicazione Web. La grammatica FMPDSORESULT non è supportata per i fogli di stile XSLT. Per informazioni sulla grammatica FMPDSORESULT, vedere la Guida di FileMaker Pro. A seconda della grammatica specificata nella richiesta URL, il Motore per la Pubblicazione Web genera un documento XML usando una di queste grammatiche. Ogni documento XML contiene una dichiarazione namespace XML predefinita per la grammatica. Vedere la sezione successiva, "Nome spazio per XML FileMaker". Usare una di queste grammatiche nel proprio documento o pagina Web per visualizzare e lavorare con dati FileMaker in formato XML. Nota I dati XML generati dal Motore per la Pubblicazione Web sono codificati in formato UTF-8 (Unicode Transformation Format 8). Vedere "Dati codificati nel formato UTF-8" a pagina 47. Nome spazio per XML FileMaker I namespace XML unici servono per distinguere i tag XML dall'applicazione per cui sono stati progettati. Ad esempio, se il documento XML contiene due elementi <DATABASE>, uno per i dati XML di FileMaker e un altro per i dati XML di Oracle, i namespace identificano l'elemento <DATABASE> di ognuno. Il Motore per la Pubblicazione Web genera un namespace predefinito per ogni grammatica. Per questa grammatica Viene generato questo namespace predefinito fmresultset xmlns="http://www.filemaker.com/xml/fmresultset" FMPXMLRESULT xmlns="http://www.filemaker.com/fmpxmlresult" FMPXMLLAYOUT xmlns="http://www.filemaker.com/fmpxmllayout" Capitolo 5 | Accesso a dati XML con Motore per la Pubblicazione Web 39 Codici di errore dei database FileMaker Il Motore per la Pubblicazione Web restituisce un codice di errore negli elementi del codice di errore all'inizio di ogni documento XML che rappresenta l'errore, se presente, nell'esecuzione dell'ultimo comando di query eseguito. Nel caso non vi siano errori, viene restituito il valore zero (0). Per questa grammatica Viene utilizzata questa sintassi fmresultset <error code="0"></error> FMPXMLRESULT <ERRORCODE>0</ERRORCODE> FMPDSORESULT <ERRORCODE>0</ERRORCODE> L'elemento del codice di errore nel documento XML indica gli errori relativi al database e alle stringhe della query. Per i fogli di stile XSLT possono verificarsi errori di altro tipo, che sono gestiti diversamente. Vedere appendice B, "Codici di errore per Pubblicazione Web personalizzata". Recupero di DTD per le grammatiche FileMaker È possibile recuperare le DTD (definizioni tipo documento) delle grammatiche FileMaker usando una richiesta HTTP. Per questa grammatica Utilizzare questa richiesta HTTP fmresultset http://<host>[:<port]/fmi/xml/fmresultset.dtd FMPXMLRESULT http://<host>[:<port]/fmi/xml/FMPXMLRESULT.dtd FMPXMLLAYOUT http://<host>[:<port]/fmi/xml/FMPXMLLAYOUT.dtd FMPDSORESULT http://<host>[:<port]/fmi/xml/FMPDSORESULT.dtd?–db=<database>&–lay=<layout> Utilizzo della grammatica fmsresultset I nomi degli elementi XML in questa grammatica usano la terminologia FileMaker, e la memorizzazione dei campi è separata dal tipo di campo. La grammatica comprende anche la capacità di identificare i campi Riassunto, Calcolo e Globali. Per usare la grammatica fmresultset, specificare il nome indicato di seguito della grammatica fmresultset nell'URL che richiede il documento XML dal Motore per la Pubblicazione Web: fmresultset.xml Ad esempio: http://192.168.123.101/fmi/xml/fmresultset.xml?–db=employees&–lay=family&–findall Nota Usare caratteri minuscoli per specificare la grammatica fmresultset. Il Motore per la Pubblicazione Web genera un documento XML usando la grammatica fmresultset. Nel documento XML, il Motore per la Pubblicazione Web fa riferimento alla DTD della grammatica fmresultset nell'istruzione <!DOCTYPE> nella seconda riga del documento, subito dopo l'istruzione <?xml...?>. L'istruzione <!DOCTYPE> specifica l'URL per scaricare la DTD per la grammatica fmresultset. 40 Pubblicazione Web personalizzata con XML e XSLT di FileMaker Server Descrizione degli elementi della grammatica fmresultset La grammatica fmresultset è costituita fondamentalmente dagli elementi <datasource>, <metadata> e <resultset>. <datasource> elemento Nella grammatica fmresultset, l'elemento <datasource> contiene gli attributi tabella, formato, formato ora, formato data, formato indicatore data e ora, numero totale e database. 1 L'attributo del formato della data dell'elemento <origine dati> specifica il formato delle date nel documento XML: MM/gg/aaaa dove: 1 MM sono le 2 cifre del mese (da 01 a 12, dove 01 è Gennaio e 12 è Dicembre) 1 gg sono le 2 cifre del giorno del mese (da 00 a 31) 1 aaaa sono le 4 cifre dell'anno 1 L'attributo del formato dell'ora dell'elemento <originedati> specifica il formato delle ore nel documento XML: hh:mm:ss dove: 1 hh sono le due cifre indicanti l'ora (da 00 a 23, nel formato a 24 ore) 1 mm sono le due cifre indicanti i minuti (da 00 a 59) 1 ss sono le 2 cifre indicanti i secondi (da 00 a 59) 1 L'attributo del formato dell'indicatore data/ora dell'elemento <origine dati> combina il formato della data con quello dell'ora in un indicatore data ora. MM/gg/aaaa hh:mm:ss Capitolo 5 | Accesso a dati XML con Motore per la Pubblicazione Web 41 <metadata > elemento L'elemento <metadata> della grammatica fmresultset contiene uno o più elementi <field-definition> e <relatedset-definition>, ognuno contiene attributi per uno dei campi del gruppo di risultati. Gli attributi di <field-definition> specificano: 1 1 1 1 1 1 1 1 1 1 1 Se il campo è di tipo auto-enter ("yes" o "no") Se il campo è di tipo four-digit-year ("yes" o "no") Se è un campo globale ("yes" o "no") il numero massimo di valori multipli (attributo max-repeat) il numero massimo consentito di caratteri (max-charactersattributo) Se è un campo not-empty ("yes" o "no") Se è per soli dati di tipo numerico ("yes" o "no") Risultato("text", "number", "date", "time", "timestamp", o "container") Se è un campo time-of-day ("yes" o "no") Tipo ("normal", "calculation" o "summary") e il nome del campo (completamente qualificato, come necessario) L'elemento <relatedset-definition> rappresenta un portale. Ogni campo correlato in un portale è rappresentato dall'elemento <field-definition> contenuto nell'elemento <relatedset-definition>. Se in un portale vi sono più campi correlati, le definizioni dei campi correlati vengono raggruppate in un unico elemento <relatedset-definition>. <resultset > elemento L'elemento <resultset> contiene tutti gli elementi <record> restituiti come risultato di una query e un attributo per il numero totale di record trovati. Ogni elemento <record> contiene i dati dei campi di un record nel gruppo di risultati—, compresi gli attributi mod-id e record-id del record, e l'elemento <data> che contiene i dati di un campo del record. Ogni record in un portale è rappresentato da un elemento <record> all'interno dell'elemento <relatedset>. L'attributo di conteggio dell'elemento <relatedset> indica il numero di record nel portale e l'attributo della tabella specifica la tabella associata al portale. 42 Pubblicazione Web personalizzata con XML e XSLT di FileMaker Server Esempio di dati XML con la grammatica fmresultset Di seguito è riportato un esempio di dati XML generati con la grammatica fmresultset. <?xml version="1.0" encoding="UTF-8" standalone="no"?> <!DOCTYPE fmresultset PUBLIC "-//FMI//DTD fmresultset//EN" ""http://localhost:16014/fmi/xml/fmresultset.dtd"> <fmresultset xmlns="http://www.filemaker.com/xml/fmresultset" version="1.0"> <error code="0"/> <product build="12/31/2012" name="FileMaker Web Publishing Engine" version="0.0.0.0" /> <datasource database="art" date-format="MM/dd/yyyy" layout="web3" table="art" time-format="HH:mm:ss" timestampformat="MM/dd/yyyy HH:mm:ss" total-count="12" /> <metadata> <field-definition auto-enter="no" four-digit-year="no" global="no" max-repeat="1" name="Title" not-empty="no" numericonly="no" result="text" time-of-day="no" type="normal" /> <field-definition auto-enter="no" four-digit-year="no" global="no" max-repeat="1" name="Artist" not-empty="no" numeric-only="no" result="text" time-of-day="no" type="normal" /> <relatedset-definition table="artlocations"> <field-definition auto-enter="no" four-digit-year="no" global="no" max-repeat="1" name="artlocations::Location" notempty="no" numeric-only="no" result="text" time-of-day="no" type="normal" /> <field-definition auto-enter="no" four-digit-year="no" global="no" max-repeat="1" name="artlocations::Date" notempty="no" numeric-only="no" result="date" time-of-day="no" type="normal" /> </relatedset-definition> <field-definition auto-enter="no" four-digit-year="no" global="no" max-repeat="1" name="Style" not-empty="no" numeric-only="no" result="text" time-of-day="no" type="normal" /> <field-definition auto-enter="no" four-digit-year="no" global="no" max-repeat="1" name="length" not-empty="no" numeric-only="no" result="number" time-of-day="no" type="calculation" /> </metadata> <resultset count="1" fetch-size="1"> <record" mod-id="6" record-id="14"> <field name="Title"> <data>Spring in Giverny 3</data> </field> <field name="Artist"> <data>Claude Monet</data> </field> <relatedset count="0" table="artlocations"/> <field name="Style"> <data/> </field> <field name="length"> <data>19</data> </field> </record> </resultset> </fmresultset> Capitolo 5 | Accesso a dati XML con Motore per la Pubblicazione Web 43 Utilizzo di altre grammatiche XML di FileMaker Le altre grammatiche XML FileMaker contengono informazioni sui tipi di campi, liste valori e formati. Dal punto di vista funzionale FMPXMLRESULT è equivalente a fmresultset. Per accedere alle liste valori e alle informazioni sulla visualizzazione dei campi nei formati è necessario usare la grammatica FMPXMLLAYOUT. Le grammatiche FMPXMLRESULT e FMPXMLLAYOUT sono più compatte per lo scambio dei dati. Per utilizzare la grammatica FMPXMLRESULT, specificare il seguente nome di grammatica nell'URL che richiede il documento XML dal Motore per la Pubblicazione Web: FMPXMLRESULT.xml Ad esempio: http://192.168.123.101/fmi/xml/FMPXMLRESULT.xml?–db=employees&–lay=family&–findall Per utilizzare la grammatica FMPXMLLAYOUT, specificare il seguente nome di grammatica con il comando di query –view nell'URL che richiede il documento XML dal Motore per la Pubblicazione Web: FMPXMLLAYOUT.xml Ad esempio: http://192.168.123.101/fmi/xml/FMPXMLLAYOUT.xml?–db=employees&–lay=family&–view Nota I nomi delle grammatiche FMPXMLRESULT e FMPXMLLAYOUT devono essere in maiuscolo. Nel documento XML generato, il Motore per la Pubblicazione Web fa riferimento alla DTD della grammatica nell'istruzione <!DOCTYPE> nella seconda riga del documento, subito dopo l'istruzione <?xml...?>. L'istruzione <!DOCTYPE> specifica l'URL per scaricare la DTD per la grammatica. Descrizione degli elementi della grammatica FMPXMLRESULT Nella grammatica FMPXMLRESULT, l'elemento <DATABASE> contiene gli attributi NAME, RECORDS, DATEFORMAT, LAYOUT e TIMEFORMAT. L'attributo DATEFORMAT dell'elemento <DATABASE> specifica il formato della data nel documento XML. L'attributo TIMEFORMAT dell'elemento <DATABASE> specifica il formato dell'ora nel documento XML. I formati della data e dell'ora delle grammatiche FMPXMLRESULT e fmresultset sono gli stessi. Vedere le tabelle in "Descrizione degli elementi della grammatica fmresultset" a pagina 40. L'elemento <METADATA> della grammatica FMPXMLRESULT contiene uno o più elementi <FIELD>, ognuno dei quali contiene informazioni su uno dei campi/colonne del gruppo di risultati, compresi il nome del campo definito nel database, il tipo di campo, l'autorizzazione Yes o No per i campi vuoti (attributo EMPTYOK) e il numero massimo di valori multipli (attributo MAXREPEAT). I valori validi per i tipi di campo sono TEXT, NUMBER, DATE, TIME, TIMESTAMP e CONTAINER. L'elemento <RESULTSET> contiene tutti gli elementi <ROW> restituiti come risultato di una query e un attributo per il numero totale di record trovati. Ogni elemento <ROW> contiene i dati del campo o della colonna di una riga nel gruppo di risultati. Questi dati comprendono RECORDID e MODID per la riga (vedere "Parametro query –modid (ID modifica)" a pagina 100) e l'elemento <COL>. L'elemento <COL> contiene i dati di un campo/colonna della riga in cui più elementi <DATA> rappresentano uno dei valori in un campo multiplo o portale. 44 Pubblicazione Web personalizzata con XML e XSLT di FileMaker Server Esempio di dati XML con la grammatica FMPXMLRESULT Di seguito è riportato un esempio di dati XML generati con la grammatica FMRESULTSET. <?xml version="1.0" encoding="UTF-8" standalone="no"?> <!DOCTYPE FMPXMLRESULT PUBLIC "-//FMI//DTD FMPXMLRESULT//EN" ""http://localhost:16014/fmi/xml/ FMPXMLRESULT.dtd"> <FMPXMLRESULT xmlns="http://www.filemaker.com/fmpxmlresult"> <ERRORCODE>0</ERRORCODE> <PRODUCT BUILD="12/31/2012" NAME="FileMaker Web Publishing Engine" VERSION="0.0.0.0" /> <DATABASE DATEFORMAT="MM/dd/yyyy" LAYOUT="web" NAME="art" RECORDS="12" TIMEFORMAT="HH:mm:ss" /> <METADATA> <FIELD EMPTYOK="YES" MAXREPEAT="1" NAME="Title" TYPE="TEXT" /> <FIELD EMPTYOK="YES" MAXREPEAT="1" NAME="Artist" TYPE="TEXT" /> <FIELD EMPTYOK="YES" MAXREPEAT="1" NAME="Image" TYPE="CONTAINER" /> </METADATA> <RESULTSET FOUND="1"> <ROW MODID="6" RECORDID="15"> <COL> <DATA>Spring in Giverny 4</DATA> </COL> <COL> <DATA>Claude Monet</DATA> </COL> <COL> <DATA>/fmi/xml/cnt/data.jpg?-db=art&-lay=web&-recid=15&-field=Image(1)</DATA> </COL> </ROW> </RESULTSET> </FMPXMLRESULT> L'ordine degli elementi <COL> corrisponde all'ordine degli elementi <FIELD> nell'elemento <METADATA>— ad esempio, dove i campi "Title" e "Artist" sono elencati nell'elemento <METADATA>, "Village market" e quindi "Camille Pissarro" sono elencati nello stesso ordine negli elementi <RESULTSET> e <ROW>. Descrizione degli elementi della grammatica FMPXMLLAYOUT Nella grammatica FMPXMLLAYOUT, l'elemento <LAYOUT> contiene il nome del formato, il nome del database e gli elementi <FIELD> di ogni campo trovato nel formato corrispondente nel database. Ogni elemento <FIELD> descrive il tipo di stile del campo, e contiene l'attributo VALUELIST per qualsiasi lista valori associata del campo. L'elemento <VALUELISTS> contiene uno o più elementi <VALUELIST> per ogni lista valori trovata nel formato; ognuno comprende il nome della lista valori e un elemento <VALUE> per ogni valore nella lista. A seconda delle opzioni selezionate nella finestra di dialogo Specifica i campi per la lista valori nel database FileMaker, l'elemento <VALUE> contiene un attributo DISPLAY che contiene il valore solo nel primo campo, solo nel secondo o in entrambi i campi di una lista valori. Ad esempio, si supponga che il primo campo della lista valori contenga il numero ID dello stile artistico (come "100") e il secondo campo visualizzi il nome associato allo stile artistico (come "Impressionismo"). Di seguito è visualizzato un riepilogo dei contenuti dell'attributo DISPLAY quando le varie combinazioni delle opzioni sono selezionate nella finestra di dialogo Specifica i campi per la lista valori: Capitolo 5 | Accesso a dati XML con Motore per la Pubblicazione Web 45 1 Se Visualizza anche i valori secondo campo non è selezionato, l'attributo DISPLAY contiene solo il valore del primo campo della lista valori. Nel seguente esempio di dati XML l'attributo DISPLAY contiene solo il numero ID dello stile artistico: <VALUELISTS> <VALUELIST NAME="style"> < VALUE DISPLAY="100">100</VALUE> < VALUE DISPLAY="101">101</VALUE> < VALUE DISPLAY="102">102</VALUE> </VALUELIST> </VALUELISTS> 1 Se Visualizza anche i valori secondo campo e Mostra valori solo dal secondo campo sono entrambi selezionati, l'attributo DISPLAY contiene solo il valore del secondo campo. Nel seguente esempio di dati XML l'attributo DISPLAY contiene solo il nome dello stile artistico: <VALUELISTS> <VALUELIST NAME="style"> < VALUE DISPLAY="Impressionism"> 100 </VALUE> < VALUE DISPLAY="Cubism"> 101 </VALUE> < VALUE DISPLAY="Abstract" > 102 </VALUE> </VALUELIST> </VALUELISTS> 1 Se Visualizza anche i valori secondo campo è selezionato e Mostra valori solo dal secondo campo non è selezionato, l'attributo DISPLAY contiene i valori di entrambi i campi di una lista valori. Nel seguente esempio di dati XML, l'attributo DISPLAY contiene sia il numero ID dello stile artistico che il nome dello stile artistico: <VALUELISTS> <VALUELIST NAME="style"> < VALUE DISPLAY="100 Impressionism"> 100 </VALUE> < VALUE DISPLAY="101 Cubism"> 101 </VALUE> < VALUE DISPLAY="102 Abstract"> 102 </VALUE> </VALUELIST> </VALUELISTS> Per i campi data, ora, e indicatore data e ora, i dati per le liste valori sono formattati con il formato "fm" per quel tipo di campo. I formati "fm" sono MM/gg/aaaa per la data, HH:mm:ss per l'ora e MM/gg/aaaa HH:mm:ss per l'Indicatore data e ora. Vedere "Utilizzo delle funzioni di estensione data, ora e giorno" a pagina 75. Ad esempio, se la lista valori "birthdays" è utilizzata per il menu a discesa di un campo "birthdate" di un formato, e il campo "birthdate" è di tipo data, i valori risultanti da tale lista valori saranno tutti in formato data "fm". Nota Se in un formato due campi di tipo diverso condividono la stessa lista valori, il tipo del primo campo determina il formato dei dati della lista valori. 46 Pubblicazione Web personalizzata con XML e XSLT di FileMaker Server Esempio di dati XML con la grammatica FMPXMLLAYOUT Di seguito è riportato un esempio di dati XML generati con la grammatica FMPXMLLAYOUT. <?xml version="1.0" encoding="UTF-8" standalone="no"?> <!DOCTYPE FMPXMLLAYOUT PUBLIC "-//FMI//DTD FMPXMLLAYOUT//EN" ""http://localhost:16014/fmi/xml/ FMPXMLLAYOUT.dtd"> <FMPXMLLAYOUT xmlns="http://www.filemaker.com/fmpxmllayout"> <ERRORCODE>0</ERRORCODE> <PRODUCT BUILD="12/31/2012" NAME="FileMaker Web Publishing Engine" VERSION="0.0.0.0" /> <LAYOUT DATABASE="art" NAME="web2"> <FIELD NAME="Title"> <STYLE TYPE="EDITTEXT" VALUELIST="" /> </FIELD> <FIELD NAME="Artist"> <STYLE TYPE="EDITTEXT" VALUELIST="" /> </FIELD> <FIELD NAME="Image"> <STYLE TYPE="EDITTEXT" VALUELIST="" /> </FIELD> <FIELD NAME="artlocations::Location"> <STYLE TYPE="EDITTEXT" VALUELIST="" /> </FIELD> <FIELD NAME="artlocations::Date"> <STYLE TYPE="EDITTEXT" VALUELIST="" /> </FIELD> <FIELD NAME="Style"> <STYLE TYPE="POPUPMENU" VALUELIST="style" /> </FIELD> </LAYOUT> <VALUELISTS> <VALUELIST NAME="style"> < VALUE DISPLAY="Impressionismo"> 100 </VALUE> < VALUE DISPLAY="Cubismo"> 101 </VALUE> < VALUE DISPLAY="Astrattismo" > 102 </VALUE> </VALUELIST> </VALUELISTS> </FMPXMLLAYOUT> Capitolo 5 | Accesso a dati XML con Motore per la Pubblicazione Web 47 Dati codificati nel formato UTF-8 Tutti i dati XML generati dal Motore per la Pubblicazione Web sono codificati in formato UTF-8 (Unicode Transformation 8 Bit). Questo formato comprime i dati dal formato standard Unicode a 16 bit nel formato a 8 bit per i caratteri ASCII. Per supportare la codifica Unicode e UTF-8, sono necessari parser XML. La codifica UTF-8 comprende una rappresentazione diretta dei caratteri usati nella lingua inglese che utilizzano i valori 0-127 del set di caratteri standard ASCII e fornisce la codifica a più byte per i caratteri Unicode con valori superiori. Nota Usare un browser Web o un editor di testo che supporti file UTF-8. Di seguito sono descritte le caratteristiche del formato di codifica UTF-8. 1 Tutti i caratteri ASCII sono caratteri UTF-8 a 1 byte. Una stringa ASCII valida è una stringa UTF-8 valida. 1 Qualsiasi carattere non ASCII (qualsiasi carattere con gruppo di bit di ordine elevato) fa parte di un carattere a più byte. 1 Il primo byte di un carattere UTF-8 qualsiasi indica il numero di ulteriori byte nel carattere. 1 Il primo byte di un carattere a più byte si riconosce facilmente dai byte successivi; pertanto è facile individuare l'inizio di un carattere da una posizione qualsiasi in un flusso di dati. 1 La conversione tra UTF-8 e Unicode è un'operazione facile. 1 La codifica UTF-8 effettua una discreta compressione. È più efficace dell'Unicode per i testi con un'alta percentuale di caratteri ASCII. Nella peggiore delle ipotesi, una stringa UTF-8 è più grande della stringa Unicode corrispondente solo del 50%. Utilizzo di stringhe query FileMaker per richiedere dati XML Per richiedere dati XML ad un database FileMaker usare i comandi e i parametri di query FileMaker in una stringa di query. Ad esempio, è possibile usare il comando di query –findall nella seguente stringa query in un URL per richiedere una lista di tutti i prodotti in un database FileMaker chiamato products". http://192.168.123.101/fmi/xml/fmresultset.xml?–db=products–lay=sales&–findall Una stringa di query deve contenere un solo comando di query, come –new. La maggior parte dei comandi di query richiede diversi parametri di query corrispondenti nella stringa di query. Ad esempio, tutti i comandi delle query tranne –dbnames necessitano del parametro –db, che specifica il database in cui eseguire la query. È anche possibile usare comandi e parametri di query in un URL o in un'istruzione di elaborazione <?xslt–cwp–query?> in un foglio di stile XSLT FileMaker. Vedere capitolo 6, "Sviluppo di fogli di stile XSLT FileMaker". 48 Pubblicazione Web personalizzata con XML e XSLT di FileMaker Server Questa sezione contiene un riepilogo dei comandi e dei parametri di query FileMaker. Per ulteriori informazioni su come usarli in una stringa di query, vedere appendice A, "Nomi validi usati nelle stringhe delle query". Nota Il Motore per la Pubblicazione Web supporta anche un comando di query aggiuntivo (–process) e tre parametri di query da usare solo con i fogli di stile XSLT FileMaker. Vedere "Utilizzo di stringhe di query nei fogli di stile XSLT FileMaker" a pagina 57. Utilizzare questo nome di comando query Per eseguire questo comando –dbnames Recuperare i nomi di tutti i database ospitati e condivisi sul Web. –delete Elimina record". –dup Duplicare il record. –edit Modifica record. –find Trovare il(i) record. –findall Trovare tutti i record. –findany Trovare un record a caso. –findquery Eseguire una richiesta di ricerca complessa o composta. –layoutnames Recuperare i nomi di tutti i formati disponibili per un database ospitato e condiviso sul Web. –new Aggiungere il nuovo record. –scriptnames Recuperare i nomi di tutti gli script disponibili per un database ospitato e condiviso sul Web. –view Recupera le informazioni di un formato da un database se è specificata la grammatica FMPXMLLAYOUT. Recupera la sezione <metadata> del documento XML e un set di record vuoto se è specificata la grammatica fmresultset o FMPXMLRESULT. Utilizzare questi nomi di parametri di query Con questi comandi di query –db (nome database) Necessario con tutti i comandi di query, tranne –dbnames e –process (solo richieste XSLT). –delete.related Opzionale con –edit –field Necessario per specificare un campo in un URL per richieste contenitore. Vedere "Sintassi URL per oggetti Contenitore FileMaker in soluzioni XML" a pagina 37. nomeCampo Con –edit è necessario il nome di almeno un campo. Optional with –find. Vedere "Parametro query nome campo (Nome campo non Contenitore)" a pagina 97. fieldname.op (operatore) Optional with –find –lay (nome formato) Necessario con tutti i comandi di query, tranne –dbnames, –layoutnames, –scriptnamese –process (solo richieste XSLT). –lay.response (applicazione del formato per la risposta XML) Opzionale con tutti i comandi di query, tranne –dbnames, –layoutnames, –scriptnamese –process (solo richieste XSLT). –lop (operatore logico) Optional with –find –max (record max) Optional with –find, –findall –modid (ID modifica) Opzionale con –edit Capitolo 5 | Accesso a dati XML con Motore per la Pubblicazione Web Utilizzare questi nomi di parametri di query Con questi comandi di query –query Necessario con le richieste di ricerca composita -findquery. –recid (ID record) Necessario con –edit, –delete, –dup. Optional with –find. –relatedsets.filter Opzionale con –find, –edit, –new, –dup e –findquery. –relatedsets.max Opzionale con –find, –edit, –new, –dup e –findquery. –script (eseguire lo script) Opzionale con –find, –findall, –findany, –new, –edit, –delete, –dup, –view –script.param (trasferire il valore di un parametro allo script specificato da –script ) Optional with –script 49 –script.prefind (eseguire lo script prima di –find, Optional with –find, –findany, –findall –findany e –findall) –script.prefind.param (trasferire il valore di un parametro allo script specificato da –script.prefind ) Opzionale con –script.prefind –script.presort (eseguire lo script prima dell'ordinamento) Optional with –find, –findall –script.presort.param (trasferire il valore di un parametro allo script specificato da –script.presort ) Opzionale con –script.presort –skip (Salta record) Optional with –find, –findall –sortfield.[1-9] (Campo ordinamento) Optional with –find, –findall –sortorder.[1-9] (Ordinamento) Optional with –find, –findall –stylehref (Foglio di stile HREF) Opzionale con tutti i comandi di query (per specificare un foglio di stile URL per –styletype) –styletype (tipo di foglio di stile) Opzionale con tutti i comandi di query (per specificare un foglio di stile lato client) Applicazione dei formati per una risposta XML Il parametro di query –lay specifica il formato da usare per richiedere dati XML. Spesso, lo stesso formato è adatto per elaborare i dati prodotti dalla richiesta. In alcuni casi, potrebbe essere necessario ricercare dei dati usando un formato che contiene campi che, per ragioni di sicurezza, non esistono in un altro formato che si desidera usare per visualizzare i risultati. (Per ricercare dati in un campo, il campo deve trovarsi sul formato specificato nella richiesta XML). Per specificare un formato diverso per visualizzare una risposta XML anziché il formato usato per elaborare la richiesta XML, è possibile usare il parametro di query opzionale –lay.response. Per esempio, la richiesta seguente ricerca i valori superiori a 100.000 nel campo Salary sul formato Budget. I dati risultanti vengono visualizzati usando il formato ExecList, che non comprende il campo Salary. http://192.168.123.101/fmi/xml/fmresultset.xml?–db=employees&–lay=Budget&Salary=100000&Salary.op=gt&–find &–lay.response=ExecList 50 Pubblicazione Web personalizzata con XML e XSLT di FileMaker Server Elaborazione delle richieste XML Esistono diversi parametri di query che incidono sull'elaborazione di una richiesta XML e sulla generazione di un documento XML. L'ordine in cui FileMaker Server e il Motore per la Pubblicazione Web elaborano una richiesta XML è: 1. Elaborazione del parametro query –lay. 2. Impostazione di valori campo globali specificati nella query (parte ".global=" di un URL). 3. Elaborazione del parametro query –script.prefind, se specificato. 4. Elaborazione dei comandi query, come –find o –new. 5. Elaborazione del parametro query –script.presort, se specificato. 6. Ordinamento dei dati risultanti, se è stato specificato un ordinamento. 7. Elaborazione del parametro di query –lay.response per passare ad un formato diverso, se questo è specificato. 8. Elaborazione del parametro di query –script, se specificato. 9. Generazione del documento XML. Se una delle fasi elencate sopra genera un codice di errore, l'elaborazione delle richieste si arresta; tutte le fasi successive non vengono eseguite. Vengono tuttavia eseguite tutte le fasi precedenti della richiesta. Esempio: una richiesta che elimina il record corrente, ordina i record, quindi esegue uno script. Se il parametro –sortfield specifica un campo che non esiste, la richiesta elimina il record corrente e restituisce il codice di errore 102 ("Manca un campo"), ma non esegue lo script. Uso dell'elaborazione lato server e lato client dei fogli di stile Il Motore per la Pubblicazione Web supporta l'elaborazione lato server di un foglio di stile XSLT, e consente anche di usare un parametro di query che specifica l'elaborazione lato client di un foglio di stile. È importante comprendere le differenze tra i due modi di elaborare fogli di lavoro e le implicazioni per la sicurezza causate dall'uso dell'elaborazione lato client. L'elaborazione lato server è più sicura dell'elaborazione lato client: infatti la prima non consente agli utenti Web di accedere ai dati XML non filtrati. Con l'elaborazione lato server, i dati vengono presentati in una forma che il proprietario dei dati o l'autore del foglio di stile XSLT ritiene adatta. L'elaborazione lato server nasconde i nomi del database, i nomi dei campi e altri dettagli di implementazione dagli utenti Web. L'elaborazione lato server può anche essere utilizzata per specificare parametri di query definiti a livello statistico, che impediscono l'uso di comandi e parametri di query non autorizzati, come ad esempio i nomi dei database. Vedere capitolo 4, "Introduzione alla Pubblicazione Web personalizzata con XSLT" e capitolo 6, "Sviluppo di fogli di stile XSLT FileMaker". Se la soluzione richiede l'elaborazione di fogli di stile lato client, è possibile far generare al Motore per la Pubblicazione Web un'istruzione di elaborazione di foglio di stile XML con ogni grammatica includendo i parametri –styletype e –stylehref nella richiesta della stringa di query FileMaker. È possibile utilizzare fogli di stile CSS (cascading stylesheets) oppure XSLT per visualizzare il documento XML. Capitolo 5 | Accesso a dati XML con Motore per la Pubblicazione Web 51 1 Il parametro –styletype è usato per impostare il valore dell'attributo type (type=text/css or type=text/xsl). 1 Il parametro –stylehref viene utilizzato per impostare il valore dell'attributo HREF, che specifica la posizione del foglio di stile usando un percorso assoluto. Ad esempio: href=/mystylesheet.css or href=/stylesheets/ mystylesheet.xsl. Il nome del foglio di stile può essere qualsiasi nome, ma deve contenere l'estensione .css oppure .xsl. Ecco un esempio di una stringa di query FileMaker che genera l'elaborazione di fogli di stile lato client: http://localhost/fmi/xml/fmresultset.xml?–db=products–lay=sales&–findall&–styletype=text/xsl&–stylehref=/mystylesheet.xsl Nota "/" in "–stylehref=/document.xsl" in questo esempio viene usato perché il foglio di stile è situato nella cartella principale del software del server Web. Utilizzare un URL per il foglio di stile che utilizza un percorso assoluto per specificare la sua posizione sul server Web. Il foglio di stile può anche essere situato su un altro server Web. In base a questa richiesta, il Motore per la Pubblicazione Web includerà la seguente istruzione di elaborazione nel documento XML: <?xml–stylesheet type="text/xsl" href="/mystylesheet.xsl"?> Copiare o mettere il foglio di stile per l'elaborazione lato client sul server Web nella posizione specificata dal percorso assoluto nell'URL per l'attributo HREF. Importante Non mettere i fogli di stile per l'elaborazione lato client all'interno della cartella xslt-templatefiles, che è utilizzata per l'elaborazione lato server dei fogli di stile XSLT. Vedere "Utilizzo dei fogli di stile FileMaker XSLT in un sito Web o in un programma" a pagina 30. Nota Alcuni browser Web non supportano l'elaborazione lato client. Per informazioni consultare la documentazione del browser Web. Risoluzione dei problemi di accesso a documenti XML In caso di problemi di accesso a documenti XML con il Motore per la Pubblicazione Web, verificare che: 1 I privilegi estesi nel database siano impostati per la Pubblicazione Web personalizzata XML e assegnati ad un account utente. Vedere "Attivazione della Pubblicazione Web personalizzata in un database" a pagina 19. 1 Il database è ospitato sul componente server database di FileMaker Server e viene aperto da FileMaker Server. Vedere la Guida di FileMaker Server. 1 1 1 1 Gli eventuali nomi utente e password utilizzati per il database siano corretti. Il componente server Web di FileMaker Server è attivo. Il componente Motore per la Pubblicazione Web di FileMaker server è attivo. La Pubblicazione XML è abilitata nel componente Motore per la Pubblicazione Web. Vedere la Guida di FileMaker Server. 52 Pubblicazione Web personalizzata con XML e XSLT di FileMaker Server Capitolo 6 Sviluppo di fogli di stile XSLT FileMaker Questo capitolo contiene informazioni su come sono costruiti i fogli di stile XSLT FileMaker e su come si utilizzano le funzioni di estensione XSLT FileMaker. Utilizzo dei fogli di stile XSLT con il Motore per la Pubblicazione Web Quando si sviluppano e si utilizzano fogli di stile XSLT per richiedere dati XML di FileMaker attraverso il Motore per la Pubblicazione Web, tenere conto di quanto segue: 1 Per utilizzare un foglio di stile XSLT con il Motore per la Pubblicazione Web è necessario specificare il nome del foglio di stile XSLT in un URL. Se non si specifica un foglio di stile, o se il Motore per la Pubblicazione Web non è in grado di trovare o di analizzare il foglio di stile, il Motore per la Pubblicazione Web visualizza una pagina di errore. Vedere "Sintassi URL per i fogli di stile XSLT FileMaker" a pagina 55. 1 Il nome del file del foglio di stile e il nome della cartella dove il foglio di stile è memorizzato deve essere codificato nell'URL come UTF-8. Se il foglio di stile deve essere compatibile con i browser Web più vecchi, limitare i nomi ai caratteri ASCII. 1 È necessario specificare la grammatica XML FileMaker da usare, sia come parametro di query nell'URL, oppure come parametro di query definito staticamente nell'istruzione di elaborazione <?xslt-cwp-query?>. Se non si specifica una grammatica XML, il Motore per la Pubblicazione Web visualizza un errore. Vedere "Specifica di una grammatica XML per un foglio di stile XSLT FileMaker" a pagina 57. 1 È possibile specificare i parametri di query che identificano i dati XML FileMaker da richiedere nell'URL o come parametro di query definito staticamente nell'istruzione di elaborazione <?xslt-cwp-query?>. Vedere "Sintassi URL per i fogli di stile XSLT FileMaker" a pagina 55 e "Utilizzo di comandi query e parametri query definiti staticamente" a pagina 58. 1 Se si desidera è possibile specificare la codifica del testo di una richiesta XSLT utilizzando il parametro di query –encoding. Se non si specifica una codifica, il Motore per la Pubblicazione Web utilizza la sua impostazione predefinita di codifica del testo per le richieste. Vedere "Impostazioni della codifica di testo per le richieste" a pagina 59. 1 Se si desidera è possibile specificare un metodo di output attraverso l'attributo di metodo dell'elemento <xsl:output>. Se non si specifica un metodo di output, il Motore per la Pubblicazione Web utilizza l'HTML per l'output. È anche possibile specificare la codifica della pagina di output utilizzando l'attributo di codifica dell'elemento <xsl:output>. Se non si specifica una codifica, il Motore per la Pubblicazione Web utilizza, per le pagine di output, la sua impostazione predefinita di codifica del testo. Vedere "Impostazione del metodo di output e della codifica" a pagina 60. 1 È possibile specificare la codifica del testo per i messaggi di posta elettronica inviati dal Motore per la Pubblicazione Web, attraverso un parametro per la funzione di estensione fmxslt:send_email(). Vedere "Invio di messaggi di posta elettronica dal Motore per la Pubblicazione Web" a pagina 69. 54 Pubblicazione Web personalizzata con XML e XSLT di FileMaker Server Per costruire una richiesta, il Motore per la Pubblicazione Web inizia utilizzando qualsiasi comando e parametro di query definito staticamente nell'istruzione di elaborazione opzionale <?xslt-cwp-query?>. Il comando e i parametri di query definiti staticamente diventano la richiesta di base. L'istruzione di elaborazione<?xslt-cwpquery?> non è richiesta in un foglio di stile, ma la sua richiesta di base ha la precedenza su qualsiasi comando o parametro di query corrispondente specificato nella stringa della query dell'URL. Quindi il Motore per la Pubblicazione Web aggiunge alla richiesta di base qualsiasi comando di query, o qualsiasi parametro aggiuntivo nella stringa di query dell'URL non definiti nell'istruzione di elaborazione <?xslt-cwp-query?>. Il Motore per la Pubblicazione Web utilizza questa richiesta per ottenere i dati XML FileMaker e restituirli al browser Web o al programma nel metodo di output specificato, oppure in formato HTML. Funzioni di estensione XSLT FileMaker Questa release comprende un database FileMaker chiamato Guida di riferimento XSLT.fp7 che contiene brevi descrizioni ed esempi di ognuna delle funzioni di estensione XSLT FileMaker. Il database di riferimento sulle funzioni può trovarsi nella seguente directory su qualsiasi macchina in cui è installato FileMaker Server (master o worker). Mac OS /Libreria/FileMaker Server/Esempi/XSLT Windows <unità>:\Programmi\FileMaker\FileMaker Server\Esempi\XSLT in cui <unità> è l'unità primaria da cui viene avviato il sistema. Soluzione pronta per l'uso FileMaker XSLT Questa release comprende una soluzione pronta per l'uso FileMaker XSLT che fornisce un esempio delle operazioni che possono essere eseguite con le soluzioni XSLT. La soluzione pronta per l'uso XSLT può trovarsi nella seguente directory su qualsiasi macchina in cui è installato FileMaker Server (master o worker). Mac OS /Libreria/FileMaker Server/Esempi/XSLT/Soluzione pronta per l'uso Windows <unità>:\Programmi\FileMaker\FileMaker Server\Esempi\XSLT\Soluzione pronta per l'uso in cui <unità> è l'unità primaria da cui viene avviato il sistema. Capitolo 6 | Sviluppo di fogli di stile XSLT FileMaker 55 Sintassi URL per i fogli di stile XSLT FileMaker La sintassi URL per utilizzare i fogli di stile XSLT FileMaker con il Motore per la Pubblicazione Web è: <scheme>://<host>[:<port>]/fmi/xsl/[<path>/]<stylesheet.xsl>[?<query string>] dove: 1 <scheme> può essere il protocollo HTTP o HTTPS. 1 <host> è l'indirizzo IP o il nome di dominio dell'host su cui è installato il server Web. 1 <port> è opzionale e indica la porta che il server Web sta usando. Se non è specificata nessuna porta, viene utilizzata la porta predefinita del protocollo (porta 80 per HTTP o porta 443 per HTTPS). 1 Il <path> è opzionale e specifica la cartella (o le cartelle) all'interno della cartella dei modelli xslt in cui si trova il foglio di stile XSLT. 1 <<stylesheet.xsl> è il nome file del foglio di stile XSLT. 1 <query string> può essere la combinazione di un comando di query e di uno o più parametri di query per la Pubblicazione Web personalizzata con XSLT. Vedere "Utilizzo di stringhe di query nei fogli di stile XSLT FileMaker" a pagina 57, e capitolo A, "Nomi validi usati nelle stringhe delle query". Se il foglio di stile specificato comprende un'istruzione di elaborazione <?xslt-cwp-query?>, il comando di query e i parametri definiti staticamente hanno precedenza su qualsiasi comando di query corrispondente o sui parametri nella stringa query URL. Vedere "Utilizzo di comandi query e parametri query definiti staticamente" a pagina 58. Nota La sintassi URL, compresi i nomi dei comandi e dei parametri di query, fa distinzione tra maiuscole e minuscole, eccetto per parti della stringa di query. La maggioranza dell'URL è in minuscolo, ad eccezione dei nomi della grammatica FMPXMLRESULT e FMPXMLLAYOUT, che sono in maiuscolo. Per informazioni sulle regole per le maiuscole/minuscole della stringa query, vedere "Linee guida per l'uso dei comandi e dei parametri delle query" a pagina 90. Di seguito viene fornito un esempio di un URL per utilizzare un foglio di stile XSLT FileMaker con il Motore per la Pubblicazione Web: http://192.168.123.101/fmi/xsl/my_template/my_stylesheet.xsl?–grammar=fmresultset&–db=mydatabase &–lay=mylayout&–findall 56 Pubblicazione Web personalizzata con XML e XSLT di FileMaker Server Sintassi URL per oggetti Contenitore FileMaker in soluzioni XSLT In un documento XML generato per una soluzione XSLT, la sintassi utilizzata per fare riferimento ad un oggetto Contenitore è diversa per i campi Contenitore che contengono l'oggetto effettivo nel database rispetto a quella utilizzata per i campi Contenitore che contengono un riferimento all'oggetto. 1 Se un campo Contenitore memorizza l'oggetto effettivo nel database, l'elemento <data> del campo Contenitore usa la seguente sintassi URL relativa per fare riferimento all'oggetto: <data>/fmi/xsl/cnt/data.<extension>?<query string></data> Dove <extension> è l'estensione del nome del file che identifica il tipo di oggetto, come ad esempio .jpg o .mov. Per informazioni su <query string>, vedere la sezione precedente, "Sintassi URL per i fogli di stile XSLT FileMaker". Ad esempio: <data>/fmi/xsl/cnt/data.jpg?–db=products&–lay=sales&–field=product_image(1)&–recid=2</data> Nota Nell'XML generato per un campo Contenitore, il valore del parametro di query –field è un nome di campo completamente qualificato Il numero tra parentesi indica il numero di ripetizioni per il campo Contenitore, ed è generato sia per i campi multipli sia per quelli non multipli. Vedere "Sintassi di un nome di campo completamente qualificato" a pagina 91. Per recuperare i dati Contenitore dal database, utilizzare la seguente sintassi: <scheme>://<host>[:<port>]/fmi/xsl/cnt/data.<extension>?<query string> Per informazioni su <scheme>, <host>, o <port>, vedere la sezione precedente, "Sintassi URL per i fogli di stile XSLT FileMaker". Ad esempio: http://www.company.com/fmi/xsl/cnt/data.jpg?–db=products&–lay=sales&–field=product_image(1)&–recid=2 1 Se un campo Contenitore memorizza un riferimento al file invece di un oggetto effettivo, l'elemento <data> del campo Contenitore contiene un percorso relativo che si riferisce all'oggetto. Ad esempio, se il file logo.jpg si trovava nella cartella Web all'interno della cartella di FileMaker Pro, l'elemento <data> del campo Contenitore è: <data>/images/logo.jpg</data> Nota L'oggetto Contenitore di riferimento deve essere memorizzato nella cartella Web di FileMaker Proquando il record viene creato o modificato, e quindi copiato o spostato in una cartella con la stessa posizione relativa nella cartella principale del software del server Web. Vedere "Pubblicazione del contenuto di campi Contenitore sul Web" a pagina 21. 1 Se un campo Contenitore è vuoto, l'elemento <data> del campo Contenitore è vuoto. Capitolo 6 | Sviluppo di fogli di stile XSLT FileMaker 57 Utilizzo di stringhe di query nei fogli di stile XSLT FileMaker Se si utilizza una stringa di query in un URL o nell'istruzione di elaborazione <?xslt-cwp-query?> in un foglio di stile XSLT FileMaker, è possibile includere uno qualsiasi dei comandi e dei parametri di query definiti per richiedere dati XML da un database FileMaker. Vedere "Utilizzo di stringhe query FileMaker per richiedere dati XML" a pagina 47. È anche possibile utilizzare i seguenti comandi e parametri di query che possono essere usati solo con fogli di stile XSLT FileMaker. Usare questo comando query o nome parametro XSLT Per Commento –grammar3 Specificare la grammatica XML per la richieste XSLT-CWP oppure Questo parametro query è per i fogli di stile XSLT. Vedere la sezione successiva, "Specifica di necessario in tutte le richieste una grammatica XML per un foglio di stile XSLT FileMaker". XSLT. –encoding Specificare la codifica del testo per una richiesta. Vedere "Impostazioni della codifica di testo per le richieste" a pagina 59. Questo parametro query è opzionale in tutte le richieste XSLT. –process Elaborare un foglio di stile senza richiedere dati. Vedere "Elaborazione di richieste XSLT che non eseguono query su FileMaker Server" a pagina 61. Questo comando query richiede il parametro di query –grammar. –token Scambiare i valori tra le pagine senza utilizzare sessioni o cookie. Vedere "Utilizzo di token per scambiare informazioni tra i fogli di stile" a pagina 62. Questo parametro query è opzionale in tutte le richieste XSLT. Specifica di una grammatica XML per un foglio di stile XSLT FileMaker La grammatica XML raccomandata con la Pubblicazione Web personalizzata con XSLT è la grammatica fmresultset, che è stata progettata per poter essere usata facilmente con XSLT. Vedere "Utilizzo della grammatica fmsresultset" a pagina 39. È anche possibile utilizzare le grammatiche più vecchie FMPXMLRESULT o FMPXMLLAYOUT. Per accedere alle liste valori e alle informazioni sulla visualizzazione dei campi nei formati è necessario usare la grammatica FMPXMLLAYOUT. Vedere "Utilizzo di altre grammatiche XML di FileMaker" a pagina 43. Non è possibile utilizzare la grammatica FMPDSORESULT con la Pubblicazione Web personalizzata con XSLT. Per specificare la grammatica per un foglio di stile FileMaker XSLT, utilizzare il parametro di query –grammar in un URL o come parametro di query definito staticamente quello dell'istruzione di elaborazione <?xslt-cwp-query?>. Ad esempio, in un URL: http://192.168.123.101/fmi/xsl/my_template/my_stylesheet.xsl?–grammar=fmresultset&–db=mydatabase &–lay=mylayout&–findall Ad esempio, in un'istruzione di elaborazione: <?xslt-cwp-query params="–grammar=fmresultset&–db=mydatabase&–lay=mylayout&–findall"?> Importante Se non si specifica una grammatica XML per un foglio di stile XSLT FileMaker, viene visualizzato l'errore "QUERY -ER0001". Vedere appendice B, "Codici di errore per Pubblicazione Web personalizzata". 58 Pubblicazione Web personalizzata con XML e XSLT di FileMaker Server namespace e prefissi per i fogli di stile XSLT FileMaker I namespace XSLT univoci aiutano a distinguere i tag XSLT dall'applicazione per cui sono stati progettati. Nell'elemento <xsl:stylesheet> all'inizio di ogni foglio di stile XSLT FileMaker è necessario dichiarare i namespace per le funzioni di estensione XSLT FileMaker e le grammatiche particolari in uso nel foglio di stile. Se si usa Dichiarare questo namespace Utilizzare questo prefisso Grammatica XML fmresultset xmlns:fmrs="http://www.filemaker.com/xml/fmresultset" fmrs Grammatica FMPXMLRESULT xmlns:fmp="http://www.filemaker.com/fmpxmlresult" fmp Grammatica FMPXMLLAYOUT xmlns:fml="http://www.filemaker.com/fmpxmllayout" fml Per la grammatica XML query xmlns:fmq="http://www.filemaker.com/xml/query" fmq Per le funzioni di estensione XSLT FileMaker xmlns:fmxslt="xalan://com.fmi.xslt.ExtensionFunctions" fmxslt È necessario dichiarare anche il seguente namespace richiesto in ogni foglio di stile XSLT FileMaker: xmlns:xsl="http://www.w3.org/1999/XSL/Transform" Segue un esempio di dichiarazioni di namespace: <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fmrs="http://www.filemaker.com/xml/fmresultset" xmlns:fml="http://www.filemaker.com/fmpxmllayout" xmlns:fmq="http://www.filemaker.com/xml/query" xmlns:fmxslt="xalan://com.fmi.xslt.ExtensionFunctions" exclude-result-prefixes="xsl fmrs fmq fml fmxslt"> Utilizzo di comandi query e parametri query definiti staticamente È possibile impedire l'uso non autorizzato dei comandi e dei parametri delle query con il foglio di stile XSLT FileMaker, definendo staticamente i comandi e i parametri di query da utilizzare quando vengono richiesti dati XML. Sebbene non venga richiesto, se un comando o un parametro di query viene staticamente definito in un foglio di stile, avrà la precedenza su qualsiasi comando o parametro di query corrispondente che un client può tentare di specificare nella stringa query dell'URL. I fogli di stile generati con XSLT Site Assistant utilizzano comandi e parametri di query definiti staticamente. FileMaker consiglia di usare comandi e parametri di query definiti staticamente per incrementare la sicurezza delle soluzioni. Per definire staticamente i comandi e i parametri di query, utilizzare la seguente istruzione di elaborazione all'inizio del foglio di stile XSLT FileMaker: <?xslt-cwp-query params="query string-fragment"?> Capitolo 6 | Sviluppo di fogli di stile XSLT FileMaker 59 dove: query string-fragment è una stringa che contiene le coppie nome-valore con il seguente formato: nome=valore&nome2=valore2.... dove: nome è una stringa che rappresenta il nome di un comando di query, parametro di query o campo del database. valore è un valore di stringa di lunghezza arbitraria. Per i parametri delle query e i nomi dei campi, utilizzare il valore particolare da definire, come ad esempio "–db=products". Per i comandi delle query, non specificare un segno o un valore uguale ("=") dopo il nome del comando, come ad esempio –findall. Vedere appendice A, "Nomi validi usati nelle stringhe delle query". Le stringhe utilizzate nel frammento devono essere codificate come URL. Vedere "Codifica testo URL" a pagina 37. È necessario utilizzare la stessa codifica caratteri specificata dall'attributo di codifica nel tag <xsl:output>. Se non viene specificata nessuna codifica, il Motore per la Pubblicazione Web utilizza la codifica predefinita. Il separatore tra due coppie nome-valore deve essere una e commerciale (&). Ad esempio, si supponga di utilizzare la seguente istruzione di elaborazione in un foglio di stile chiamato my_stylesheet.xsl: <?xslt-cwp-query params="–db=products&–lay=sales&–grammar=fmresultset&productname=the%20item&–find"?> Questa istruzione di elaborazione di esempio forza tutte le richieste di my_stylesheet.xsl ad utilizzare la grammatica fmresultset con i database products e il formato sales, e ad eseguire una richiesta –find con il campo productname impostato sul valore "the%20item". Se un client ha fatto la seguente richiesta utilizzando my_stylesheet.xsl: http://server.company.com/fmi/xsl/my_stylesheet.xsl?–lay=revenue&city=London&–edit Il Motore per la Pubblicazione Web elabora la seguente richiesta XML: http://server.company.com/fmi/xml/fmresultset.xml?–db=products&–lay=sales&productname=the%20item&city= London&–find Il comando e i parametri di query definiti staticamente hanno la precedenza sul parametro di query –lay=revenue e sul comando di query –edit forniti dal client. Poiché il campo city non è stato definito staticamente nell'istruzione di elaborazione, il Motore per la Pubblicazione Web comprende nella richiesta XML il valore "London" per il campo city fornito dal client. Impostazioni della codifica di testo per le richieste Il Motore per la Pubblicazione Web esegue i seguenti passi nell'ordine indicato finché determina la codifica di una richiesta XSLT: 1. Controlla se l'attributo del set di caratteri è impostato con l'intestazione della richiesta Content-Type. 2. Controlla se è stata specificata una codifica con il parametro di query –encoding. È possibile specificare questo parametro in un URL o come parametro di query definito staticamente nell'istruzione di elaborazione <?xslt-cwp-query?>. Il valore del parametro –encoding indica la codifica usata nel resto dei parametri della richiesta. I valori validi per questo parametro sono elencati nella seguente tabella. Ad esempio: http://192.168.123.101/fmi/xsl/template/my_stylesheet.xsl?–db=products–lay=sales&–grammar=fmresultset &–encoding=Shift_JIS&–findall 60 Pubblicazione Web personalizzata con XML e XSLT di FileMaker Server 3. Utilizza le impostazioni correnti per l'opzione predefinita di codifica del testo pagine di output e richieste per il Motore per la Pubblicazione Web. Quando il Motore per la Pubblicazione Web viene installato per la prima volta, l'impostazione iniziale predefinita di codifica testo per le richieste è UTF-8. È possibile modificare le impostazioni di codifica del testo del Motore per la Pubblicazione Web utilizzando Admin Console. Vedere la Guida di FileMaker Server. Dopo che il Motore per la Pubblicazione Web ha determinato la codifica, viene utilizzata questa codifica e non vengono effettuate ulteriori operazioni per determinarla. Ad esempio, se l'attributo charset è impostato nell'intestazione della richiesta Content-Type, il Motore per la Pubblicazione Web non utilizza il valore del parametro di query –encoding. La codifica di testo, che è specificata con uno qualunque dei metodi sopra elencati, deve utilizzare una delle seguenti codifiche: Codifica Descrizione US-ASCII Il set di caratteri ASCII di base, che viene utilizzato di solito per la posta elettronica in formato di testo normale in inglese. ISO-8859-1 Il set di caratteri Latino 1 che di solito viene utilizzato per le pagine Web e per i messaggi di posta elettronica basati sui caratteri romani che richiedono caratteri ASCII superiori. ISO-8859-15 Il set di caratteri Latino 9, che è quasi uguale al set di caratteri Latino 1 con l'aggiunta del simbolo dell'Euro €. ISO-2022-JP La codifica ISO giapponese, di solito utilizzata per i messaggi di posta elettronica in giapponese. Shift_JIS La codifica giapponese generalmente utilizzata per le pagine Web in lingua giapponese. UTF-8 La codifica Unicode a otto bit. L'utilizzo della codifica UTF-8 per i messaggi di posta elettronica e per le pagine Web sta acquistando sempre più popolarità poiché è supportata dai principali browser e client di posta elettronica. Poiché UTF-8 supporta l'intera gamma di caratteri Unicode, può gestire pagine in qualsiasi lingua. Note 1 Quando il Motore per la Pubblicazione Web viene installato per la prima volta, l'impostazione iniziale predefinita di codifica testo per le pagine di output è UTF-8. Vedere la sezione successiva, "Impostazione del metodo di output e della codifica". Per i messaggi di posta elettronica, il Motore per la Pubblicazione Web utilizza una codifica di testo predefinita iniziale ISO-8859-1. È possibile cambiare queste impostazioni utilizzando Admin Console. 1 È anche possibile impostare la codifica dei messaggi di posta elettronica utilizzando la funzione di estensione fmxslt:send_email(String smtpFields, String body, String encoding). Vedere "Invio di messaggi di posta elettronica dal Motore per la Pubblicazione Web" a pagina 69. Impostazione del metodo di output e della codifica È possibile specificare un metodo di output e la codifica delle pagine di output utilizzando gli attributi di codifica e il metodo dell'elemento <xsl:output>. Entrambi questi attributi sono opzionali. L'attributo del metodo specifica il tipo di output, che può essere "html", "text" o "XML". Non sono supportati altri tipi di metodo. Se non si specifica un metodo, il Motore per la Pubblicazione Web utilizza il metodo "html". L'attributo della codifica specifica la codifica delle pagine di output. È possibile specificare una qualunque delle codifiche elencate nella tabella nella sezione precedente. Se non si specifica una codifica, il Motore per la Pubblicazione Web utilizza, per le pagine di output, la sua impostazione predefinita di codifica del testo. Capitolo 6 | Sviluppo di fogli di stile XSLT FileMaker 61 Ad esempio: <xsl:output method="html" encoding="ISO-8859-1"/> Se non si utilizza l'elemento <xsl:output> in un foglio di stile, il Motore per la Pubblicazione Web produce pagine HTML utilizzando per le pagine di output l'impostazione della codifica di testo predefinita corrente. Codifica dei fogli di stile XSLT Oltre alla codifica per le richieste e per le pagine di output, è necessario specificare la codifica dei fogli di stile XSLT nell'attributo di codifica della dichiarazione XML nella parte superiore del foglio di stile. È possibile utilizzare una qualunque delle codifiche di testo elencate nella tabella a pagina 60. Ad esempio, come codifica del foglio di stile questa dichiarazione specifica UTF-8: <?xml version="1.0" encoding="UTF-8"?> Se non si specifica la codifica del foglio di stile, il Motore per la Pubblicazione Web presume che la codifica sia UTF-8. Elaborazione di richieste XSLT che non eseguono query su FileMaker Server È possibile utilizzare il comando di query –process per elaborare le richieste XSLT che non necessitano di dati dal database, o quando il foglio di stile non richiede informazioni specifiche del database, come record, nomi di campi o nomi dei formati. Utilizzando il comando –process in queste situazioni è possibile ridurre il carico di lavoro per FileMaker Server. Ad esempio è possibile usare il comando –process per: 1 caricare un foglio di stile che genera una pagina statica, se non è necessaria nessuna informazione del database 1 caricare un foglio di stile che crea un nuovo record, se il foglio di stile non richiede alcuna informazione sul database o sul formato, ad esempio una lista valori 1 Utilizzare una funzione di estensione come fmxslt:send_email(), che non richiede dati dal database 1 accedere alle informazioni memorizzate in una sessione se non è necessaria nessuna informazione del database Il comando –process restituisce un documento XML che contiene informazioni riguardo al Motore per la Pubblicazione Web. L'unico parametro richiesto per il comando –process è –grammar, e si deve utilizzare la grammatica fmresultset o la grammatica FMPXMLRESULT. Ad esempio: http://192.168.123.101/fmi/xsl/my_template/my_stylesheet.xsl?–grammar=fmresultset&–process 62 Pubblicazione Web personalizzata con XML e XSLT di FileMaker Server Utilizzo di token per scambiare informazioni tra i fogli di stile È possibile utilizzare un parametro di query –token in un URL, oppure come comando di query definito staticamente, per scambiare qualsiasi informazione definita- dagli utenti tra fogli di stile senza utilizzare sessioni o cookie. Il parametro di query –token è opzionale in tutti i comandi delle query. Il valore del parametro definito dall'utente può essere una qualsiasi stringa di caratteri codificati URL. Ad esempio: http://192.168.123.101/fmi/xsl/template/my_stylesheet.xsl?–db=products&–lay=sales&–grammar=fmresultset &–token.D100=Pending&–findall Vedere "Parametro query –token.[stringa] (Scambio di valori tra fogli di stile XSLT)" a pagina 107. Importante Non utilizzare il parametro di query –token per trasmettere dati privati. Per recuperare il valore del parametro di query –token, utilizzare l'istruzione <xsl:param name="requestquery" />. Vedere "Accesso alle informazioni sulle query in una richiesta" a pagina 63. Utilizzo dei parametri e delle funzioni di estensione XSLT FileMaker In base alla loro definizione, le funzioni di estensione XSLT FileMaker si trovano nel namespace fmxslt. Assicurarsi di comprendere una dichiarazione del namespace fmxslt nell'elemento <xsl:stylesheet> all'inizio del foglio di stile XSLT. Vedere "namespace e prefissi per i fogli di stile XSLT FileMaker" a pagina 58. Le funzioni di estensione XSLT FileMaker sono state progettate in modo che possano essere utilizzate all'interno di un foglio di stile XSLT specificandole come una chiamata di funzione nell'istruzione XPath. Le istruzioni XPath sono utilizzate come valori dell'attributo select e dell'attributo test in numerosi elementi XSLT. Ad esempio, si supponga di voler controllare l'intestazione User-Agent per determinare il browser in uso. Per eseguire questa operazione, si può utilizzare una variabile che contiene il valore dell'intestazione User-Agent: <Xsl:variable name="user-agent" select="fmxslt:get_header('User-Agent')"/> Per le funzioni di estensione che restituiscono un valore, il valore viene restituito nel tipo XSLT specificato. Molte funzioni restituiscono stringhe, ma alcune funzioni restituiscono un set di nodi che può essere attraversato. Nota Questa sezione descrive i parametri e le funzioni di estensione XSLT FileMaker, e comprende alcuni esempi. Per ulteriori esempi di ogni funzione, vedere la Guida di riferimento delle funzioni di estensione XSLT FileMaker. Vedere "Funzioni di estensione XSLT FileMaker" a pagina 54. Parametri XSLT specifici di FileMaker impostati dal Motore per la Pubblicazione Web Durante l'elaborazione di una richiesta, il Motore per la Pubblicazione Web imposta, in modo dinamico, i valori dei seguenti parametri XSLT specifici di FileMaker. È possibile utilizzare i valori di questi parametri nel foglio di stile utilizzando l'elemento <xsl:param>. Parametro XSLT specifico FileMaker Per ulteriori informazioni, vedere <xsl:param name="request-query"/> "Accesso alle informazioni sulle query in una richiesta" nella sezione successiva. <xsl:param name="client-ip"/> <xsl:param name="client-user-name"/> <xsl:param name="client-password"/> "Recupero di informazioni sul client" a pagina 64. <xsl:param name="xml-base-uri"/> "Utilizzo del parametro URI di base del Motore per la Pubblicazione Web" a pagina 64. <xsl:param name="authenticated-xml-base-uri"> "Utilizzo del parametro URI di base autenticato" a pagina 64. Capitolo 6 | Sviluppo di fogli di stile XSLT FileMaker 63 Accesso alle informazioni sulle query in una richiesta È possibile utilizzare un parametro XSLT FileMaker per accedere alle informazioni sulle query in dati modulo HTML o URL. Ad esempio, è possibile accedere alle informazioni sulle query della richiesta corrente per determinare la posizione corrente in un gruppo trovato di record, e creare collegamenti al record precedente e a quello successivo. Il successivo parametro XSLT FileMaker fornisce accesso a tutti i comandi e ai parametri delle query utilizzati per richiedere dati XML FileMaker attraverso il Motore per la Pubblicazione Web: <xsl:param name="request-query"/> Ad eccezione dei nomi dei campi, il Motore per la Pubblicazione Web restituisce tutti i nomi dei comandi e dei parametri delle query in minuscolo. Le lettere maiuscole dei nomi dei campi vengono mantenute. Un frammento di un documento XML viene caricato nel parametro request-query con la seguente grammatica: <!DOCTYPE query [ <!ELEMENT query (parameter)*> <!ATTLIST query action CDATA #REQUIRED> <!ELEMENT parameter (#PCDATA)> <!ATTLIST parameter name CDATA #REQUIRED> ] Nota Le informazioni sulla query si trovano nel namespace fmq="http://www.filemaker.com/xml/query". Assicurarsi di inserire una dichiarazione di namespace fmq nell'elemento <xsl:stylesheet> all'inizio del foglio di stile XSLT. Vedere "namespace e prefissi per i fogli di stile XSLT FileMaker" a pagina 58. Ad esempio, si supponga di voler accedere ai comandi e ai parametri delle query in questa richiesta: http://192.168.123.101/fmi/xsl/my_stylesheet.xsl?–db=products&–lay=sales&–grammar=fmresultset&–token.1=abc123 &–findall Se si comprende l'istruzione <xsl:param name="request-query" /> prima della sezione del modello, il Motore per la Pubblicazione Web memorizza questo frammento del documento XML in tale parametro: <query action="my_stylesheet.xsl" xmlns="http://www.filemaker.com/xml/query"> <parameter name="–db">products</parameter> <parameter name="–lay">sales</parameter> <parameter name="–grammar">fmresultset</parameter> <parameter name="–token.1">abc123</parameter> <parameter name="–findall"></parameter> </query> Perciò è possibile usare il parametro request-query per accedere al valore di un token che è stato trasferito in un URL utilizzando un'espressione XPath. Ad esempio: $request-query/fmq:query/fmq:parameter[@name = '–token.1'] 64 Pubblicazione Web personalizzata con XML e XSLT di FileMaker Server Recupero di informazioni sul client È possibile usare i seguenti parametri XSLT FileMaker per ottenere informazioni dal Motore per la Pubblicazione Web riguardo al nome utente, alla password e all'indirizzo IP di un client Web: <xsl:param name="client-ip"/> <xsl:param name="client-user-name"/> <xsl:param name="client-password"> Comprendere queste istruzioni di parametro nel foglio di stile XSLT prima dell'elemento <xsl:template> superiore. Questi parametri forniscono le credenziali dell'utente Web quando un foglio di stile carica a livello di programmazione altri documenti XML protetti da password. Vedere "Caricamento di altri documenti" a pagina 65. L'utente Web deve fornire il nome utente e la password inizialmente attraverso la finestra di dialogo di Autenticazione di base HTTP. Vedere "Accesso ad un database protetto" a pagina 19. Per ulteriori informazioni ed esempi di utilizzo di questi tre parametri XSLT FileMaker, vedere la Guida di riferimento delle funzioni di estensione XSLT FileMaker. Utilizzo del parametro URI di base del Motore per la Pubblicazione Web Il Motore per la Pubblicazione Web definisce il parametro di base Uniform Resource Identifier (URI) in modo che sia l'host e la porta dove viene installato il Motore per la Pubblicazione Web. L'URI di base permette di risolvere le richieste di dati XML dai database FileMaker in relazione all'host del Motore per la Pubblicazione Web. Per accedere al Motore per la Pubblicazione Web URI di base, bisogna comprendere questa istruzione nel foglio di stile XSLT prima dell'elemento <xsl:template> superiore: <xsl:param name="xml-base-uri"/> È possibile quindi utilizzare l'URI di base per il foglio di stile corrente attraverso la variabile $xml-base-uri ogniqualvolta è necessario fare una richiesta aggiuntiva di dati XML FileMaker. Ad esempio è possibile utilizzare l'URI di base nella seguente richiesta di altri dati XML: <xsl:variable name="layout_information" select="document(concat($xml-base-uri,'/fmi/xml/FMPXMLLAYOUT.xml? –db=products&–lay=sales&–view'))" /> Utilizzo del parametro URI di base autenticato Il parametro authenticated-xml-base-uri combina la funzionalità dei parametri client-user-name e client-password con il parametro xml-base-uri: <xsl:param name="authenticated-xml-base-uri"/> Utilizzare questo parametro per caricare un altro documento XML, protetto da password, che richiede lo stesso nome utente e la stessa password specificati nella richiesta originale attualmente in elaborazione. Per un esempio, vedere la sezione successiva, "Caricamento di altri documenti". Comprendere questa istruzione di parametro nel foglio di stile XSLT prima dell'elemento <xsl:template> superiore. Se i valori dei parametri client-user-name e client-password non sono vuoti, il valore del parametro authenticated-xml-base-uri è: http://username:password@hostname:port Se i valori dei parametri client-user-name e client-password sono vuoti, il valore del parametro authenticated-xml-base-uri è lo stesso del valore del parametro xml-base-uri. Capitolo 6 | Sviluppo di fogli di stile XSLT FileMaker 65 Caricamento di altri documenti Per caricare un documento XML aggiuntivo durante l'elaborazione di un foglio di stile XSLT, utilizzare la funzione document() XSLT standard con un URI per il documento XML. La funzione document() restituisce l'XML richiesto come un set di nodi che può essere memorizzato in un elemento <xsl:variable>. Per caricare un documento XML che contiene dati da un database FileMaker, utilizzare la funzione document() con il comando e i parametri di query FileMaker. Ad esempio: <xsl:variable name="other-data" select="document(concat($xml-base-uri,'/fmi/xml/FMPXMLLAYOUT.xml? –db=products&–lay=sales&–view'))" /> Per caricare un altro documento XML, protetto da password, che richiede lo stesso nome utente e la stessa password specificati nella richiesta originale attualmente in elaborazione, utilizzare il parametro authenticated-xml-base-uri. Questo parametro specifica lo stesso nome utente e password come parte dell'URI trasferito alla funzionedocument(). Ad esempio: <xsl:variable name="other-data" select="document(concat($authenticated-xml-base-uri, '/fmi/xml/FMPXMLLAYOUT.xml?–db=products&–lay=sales&–view'))"/> Per caricare un documento XML protetto da password che richiede un nome utente e una password diversi da quelli che sono stati specificati nella richiesta principale, utilizzare la seguente sintassi per specificare il nome utente e la password come parte dell'URI trasferito alla funzione document(): http://username:password@hostname/path?querystring Per caricare un documento XML che è non basato su un database FileMaker, utilizzare la funzione document() senza comandi o parametri di query FileMaker. Ad esempio: <xsl:variable name="other-data" select="document('http://server.company.com/data.xml')" /> Se si utilizza la funzione document() con il relativo URL, il Motore per la Pubblicazione Web tenta di caricare il documento XML dal file system locale nella posizione relativa, nel punto dove è memorizzato il foglio di stile. Ad esempio, si supponga che un foglio di stile disposto all'interno della cartella mystylesheets, nella cartella xslt-template-files, contenga la seguente funzione document() con il relativo URL: <xsl:variable name="mydoc" select="document('mystylesheets/mydoc.xml')" /> Il Motore per la Pubblicazione Web tenta di caricare mydoc.xml dalla cartella modelli xslt all'interno della cartella xslt-template-files nel file system locale. Nota Quando si utilizza l'URI di base del Motore per la Pubblicazione Web per caricare un documento, il Motore per la Pubblicazione Web supporta solo HTTP. Se si carica un documento da un server esterno, il Motore per la Pubblicazione Web supporta sia HTTP sia HTTPS. Utilizzo delle informazioni sui formati del database in un foglio di stile È possibile incorporare le informazioni sui formati di un database FileMaker in un foglio di stile utilizzando la grammatica FMPXMLLAYOUT per richiedere informazioni e quindi caricandole in una variabile attraverso la funzione XSLT document(): <Xsl:variable name="layout" select="document(concat($xml-base-uri,'/fmi/xml/FMPXMLLAYOUT.xml?–view'))" /> 66 Pubblicazione Web personalizzata con XML e XSLT di FileMaker Server Ad esempio, si supponga di voler creare un menu a tendina per un campo di nome Color popolato con i valori tratti di una lista valori a due campi chiamata shirts definiti in un formato di un database FileMaker. Si supponga che il primo campo nella lista valori a due campi contenga il numero ID del colore (come ad esempio "100")e il secondo campo contenga il nome associato al colore (come ad esempio "Light Green"). Ecco come è possibile utilizzare la funzione document() per caricare le informazioni sul formato in una variabile XSLT, insieme all'attributo DISPLAY per visualizzare il valore per il secondo campo in una lista valori a due campi: <xsl:variable name="layout" select="document(concat($xml-base-uri,'/fmi/xml/FMPXMLLAYOUT.xml?–db=products &–lay=sales&–view'))" /> <select size="1"> <xsl:attribute name="name">Color</xsl:attribute> <option value="">Select One...</option> <xsl:for-each select="$layout/fml:FMPXMLLAYOUT/fml:VALUELISTS/fml:VALUELIST[@NAME = 'shirts']/ fml:VALUE"> <opzione> <xsl:attribute name="value"><xsl:value-of select="."/></xsl:attribute> <xsl:value-of select="@DISPLAY"/> </option> </xsl:for-each> </select> Utilizzo del buffering del contenuto Se il buffering del contenuto è disattivato, il Motore per la Pubblicazione Web crea un flusso dei risultati di una trasformazione XSLT direttamente verso il client. Il buffering del contenuto è sempre disattivato a meno che non lo si attivi esplicitamente. Se si attiva il buffering del contenuto, il Motore per la Pubblicazione Web memorizza il contenuto trasformato, finché tutta la trasformazione non è completata. Il buffering del contenuto viene richiesto per i fogli di stile XSLT che gestiscono le intestazioni. Poiché le intestazioni sono scritte prima del corpo di risposta, il corpo deve essere bufferizzato in modo da poter comprendere le informazioni di intestazione aggiunte. Vi sono quattro funzioni di estensione di FileMaker che richiedono che il risultato della trasformazione XSLT venga bufferizzato: 1 1 1 1 fmxslt:create_session(): Vedere "Utilizzo delle funzioni di estensione delle sessioni" a pagina 67. fmxslt:set_header(): Vedere "Utilizzo delle funzioni di intestazione" a pagina 71. fmxslt:set_status_code (): Vedere "Utilizzo delle funzioni di intestazione" a pagina 71. fmxslt:set_cookie(): Vedere "Utilizzo delle funzioni di estensione dei cookie" a pagina 72. Affinché queste funzioni di estensione FileMaker possano funzionare correttamente, è necessario comprendere la seguente istruzione di elaborazione XSLT nel documento di livello principale per la richiesta: <?xslt-cwp-buffer buffer-content="true"?> Importante Se si ha un foglio di stile di base che comprende un altro foglio di stile, il foglio di stile di base deve comprendere l'istruzione di elaborazione <?xslt-cwp-buffer?>. Questa istruzione viene ignorata se la si utilizza in un foglio di stile incluso. Capitolo 6 | Sviluppo di fogli di stile XSLT FileMaker 67 Un vantaggio dell'utilizzo dell'istruzione di elaborazione per bufferizzare la risposta è che il Motore per la Pubblicazione Web può determinare la lunghezza della risposta e impostare l'intestazione Content-Length nella risposta. Bufferizzare la risposta potrebbe ridurre le prestazioni del Motore per la Pubblicazione Web. Utilizzo delle sessioni del Motore per la Pubblicazione Web per memorizzare le informazioni tra le richieste È possibile utilizzare le sessioni lato server del Motore per la Pubblicazione Web per tenere traccia di qualsiasi tipo di informazione tra le richieste e memorizzarla. Le sessioni permettono di creare un'applicazione Web capace di mantenere lo stato utilizzando informazioni arbitrarie persistenti tra le richieste. Ad esempio, le informazioni sul client dell'utente che vengono inserite in una prima pagina del modulo possono essere memorizzate in una sessione e quindi utilizzate per inserire valori in una pagina successiva. Il Motore per la Pubblicazione Web utilizza un cookie per memorizzare l'ID della sessione. Per gestire i client che non accettano i cookie, è possibile usare la funzione fmxslt:session_encode_url() per aggiungere l'ID della sessione all'URL. Per garantire la compatibilità in qualunque situazione, si consiglia di codificare tutti gli URL scritti fuori dalla pagina con la funzione fmxslt:session_encode_url(). Questa funzione aggiunge all'URL un parametro separato da un punto e virgola chiamato jsessionid, che è l'identificatore della sessione principale del client. Ad esempio, anziché posizionare il seguente collegamento in una pagina: <a href="my_stylesheet.xsl?–db=products&–lay=sales&–grammar=fmresultset&–findall">hyperlinked text</a> Si devono codificare tutti i collegamenti in una pagina come indicato di seguito: <a href="{fmxslt:session_encode_url('my_stylesheet.xsl?–db=products&–lay=sales&–grammar=fmresultset &–findall')}">hyperlinked text</a> Se il client non accetta i cookie, la pagina comprende: <a href="my_stylesheet.xsl;jsessionid=<session id>?–db=products&–lay=sales&–grammar=fmresultset&–findall"> hyperlinked text</a> Se il Motore per la Pubblicazione Web rileva che il client accetta i cookie, la funzione fmxslt:session_encode_url() memorizza l'ID della sessione in un cookie al posto dell'URL. Nota Le informazioni sulla sessione non vengono conservate in seguito al riavvio del Motore per la Pubblicazione Web. Utilizzo delle funzioni di estensione delle sessioni Utilizzare le seguenti funzioni di estensione delle sessioni per gestire le variabili delle sessioni. È possibile memorizzare una stringa, un numero, un valore booleano, o un set di nodi in un oggetto di sessione. Utilizzando un set di nodi, è possibile creare una struttura di dati in formato XML e memorizzarla tra le richieste nell'oggetto della sessione. Funzione di estensione della sessione Tipo di dati riportato Descrizione fmxslt:session_exists(String session-name) booleano Controlla se esiste una sessione con il nome specificato. fmxslt:create_session(String session-name) booleano Crea una sessione con il nome della sessione specificato e con il tempo limite predefinito, che viene impostato attraverso Admin Console. Vedere la Guida di FileMaker Server. Nota Questa funzione richiede l'istruzione di elaborazione <?xslt-cwp-buffer?>. Vedere "Utilizzo del buffering del contenuto" a pagina 66. 68 Pubblicazione Web personalizzata con XML e XSLT di FileMaker Server Funzione di estensione della sessione Tipo di dati riportato Descrizione fmxslt:invalidate_session(String session-name) booleano Forza il termine immediato della sessione. fmxslt:set_session_timeout(String session-name, Number timeout) booleano Imposta il timeout della sessione in secondi. Il timeout predefinito per le sessioni è impostato attraverso Admin Console. Fmxslt:session_encode_url(String url) stringa Codifica un URL con l'ID della sessione se il client non supporta i cookie; in caso contrario restituisce un URL di input. fmxslt:set_session_object(String session-name, Oggetto XSLT String name, Object value) (numero, stringa, booleano o set -di nodi) Memorizza un oggetto XSLT (numero, stringa, valore booleano o set di nodi) in una sessione, che può essere recuperata successivamente utilizzando la funzione fmxslt:get_session_object (). Inoltre la funzione restituisce l'oggetto memorizzato in precedenza sotto il nome oggetto della sessione specificato. Se sotto il nome non è stato memorizzato niente, viene restituito un oggetto nullo. Nota La funzione di estensione set_session_object() memorizza solo i valori della stringa; interpreta qualsiasi oggetto trasferito come stringa. Se l'oggetto non può essere convertito in stringa, nella sessione non vengono memorizzati valori e il codice di errore della funzione di estensione viene impostato su 10100 (Errore di sessione sconosciuto). Se si tenta di impostare un oggetto della sessione utilizzando zero o una stringa vuota, viene inviato un codice di errore di 10100 (Errore di sessione sconosciuto). Per cancellare una sessione variabile, rimuovere la variabile dalla sessione utilizzando la funzione remove_session_object(). fmxslt:get_session_object(String session-name, Oggetto XSLT String name) Recupera un oggetto XSLT dalla sessione. fmxslt:remove_session_object(String session-name, String name) Restituisce, e quindi rimuove, un oggetto XSLT dalla sessione. Oggetto XSLT Segue un esempio di creazione di una sessione e successiva memorizzazione di un colore preferito nella sessione: <xsl:variable name="session"> <xsl:choose> <xsl:when test="not (fmxslt:session_exists(string($session-name)))"> <xsl:value-of select="fmxslt:create_session(string($session-name))"/> </xsl:when> <xsl:otherwise>true</xsl:otherwise> </xsl:choose> </xsl:variable> <Xsl:variable name="favorite-color" select="fmxslt:set_session_object(string($session-name), 'favorite-color', string($color))"/> Capitolo 6 | Sviluppo di fogli di stile XSLT FileMaker 69 Importante 1 Per assicurarsi che gli utenti siano disconnessi da un database dopo aver completato una sessione, utilizzare la funzione fmxslt:invalidate_session () per forzare il timeout immediato della sessione. 1 Se si sta usando uno script campi globali o uno script che imposta o modifica uno stato, si deve utilizzare Admin Console per attivare l'opzione Sessioni di database XSLT per il Motore per la Pubblicazione Web. In caso contrario i valori e gli stati dei campi globali non vengono mantenuti tra le richieste. Vedere la Guida di FileMaker Server. 1 Se si passa ad un altro file di database quando si utilizzando sessioni del Motore per la Pubblicazione Web, i valori del campo globale non vengono conservati. Il Motore per la Pubblicazione Web chiude il primo file prima di aprire il secondo. In alternativa è possibile accedere ai dati del secondo file di database utilizzando un formato del primo file di database. Invio di messaggi di posta elettronica dal Motore per la Pubblicazione Web È possibile utilizzare il Motore per la Pubblicazione Web per generare messaggi di posta elettronica; questo risulta utile per le soluzioni Web personalizzate. Per far inviare un messaggio di posta elettronica dal Motore per la Pubblicazione Web, utilizzare una delle seguenti tre funzioni di estensione fmxslt:send_email () in un foglio di stile XSLT. È possibile utilizzare queste funzioni per inviare uno o più messaggi distinti. Poiché le funzioni fmxslt:send_email () sono contenute nel foglio di stile XSLT lato server del Motore per la Pubblicazione Web, un client non può utilizzare il Motore per la Pubblicazione Web per inviare messaggi di posta elettronica non autorizzati. Funzione di estensione di posta elettronica Tipo di dati riportato fmxslt:send_email(String smtpFields, String body) booleano Invia un messaggio di posta elettronica di solo testo di qualsiasi lunghezza dal Motore per la Pubblicazione Web utilizzando la codifica di testo predefinita per i messaggi di posta elettronica del Motore per la Pubblicazione Web fmxslt:send_email(String smtpFields, String body, String encoding) booleano Invia un messaggio di posta elettronica di solo testo di qualsiasi lunghezza utilizzando una delle seguenti codifiche di testo: USASCII, ISO-8859-1, ISO-8859-15, ISO-2022-JP, Shift_JIS, UTF-8. Per informazioni su queste codifiche, vedere "Impostazioni della codifica di testo per le richieste" a pagina 59. fmxslt:send_email(String smtpFields, String xsltFile, Node xml, boolean includeImages) booleano Invia un messaggio di posta elettronica in formato HTML che utilizza la codifica specificata codificando l'attributo dell'elemento <xsl:output> nel foglio di stile. Se l'attributo di codifica non è compreso nell'elemento <xsl:output>, viene utilizzata la codifica di testo predefinita per i messaggi di posta elettronica del Motore per la Pubblicazione Web. Descrizione 70 Pubblicazione Web personalizzata con XML e XSLT di FileMaker Server Note 1 In ognuna delle tre forme della funzione fmxslt:send_email (), il parametro smtpFields è una stringa con codifica URL di lunghezza qualsiasi che contiene le informazioni sull'oggetto e sull'indirizzo utilizzando il seguente formato, che si basa su RFC 2368, con lo schema URL mailto: nomeutente@host?nome1=valore1&nome2=valore2... dove nomeutente@host specifica un destinatario. Le coppie nome/valore possono essere specificate in qualsiasi ordine e sono definite come segue: 1 1 1 1 1 da=nomeutente@host (deve apparire solo una volta). Il campo da deve essere specificato. a=nomeutente@host. Utilizzare questa coppia nome/valore per gli altri destinatari. rispondi a=nomeutente@host (può apparire solo una volta) cc=nomeutente@host bcc=nomeutente@host 1 oggetto=stringa (può apparire solo una volta) Se i campi da, rispondi a o oggetto sono indicati più di una volta, il messaggio di posta elettronica non viene inviato e si riceve un valore false() dalla funzione, e viene impostato il codice dello stato di errore appropriato. 1 Il Motore per la Pubblicazione Web controlla la sintassi di tutti gli indirizzi di posta elettronica forniti. Devono avere la forma: [email protected] oppure "identificatore tra virgolette"<[email protected]> dove tld è un qualsiasi dominio di livello superiore come com o net. Se uno dei campi contiene un indirizzo di posta elettronica non valido, il messaggio di posta elettronica non viene inviato e viene impostato il codice di stato di errore appropriato. 1 I valori individuali per il parametro smtpFields, come l'oggetto, devono essere una stringa codificata URL. Ad esempio, il carattere "&" deve essere specificato come "&amp;" e gli spazi vuoti devono essere specificati come "%20". L'intera stringa per il parametro smtpFields deve avere codifica XML. (Vedere l'esempio alla fine di questa sezione). 1 Per ognuna di queste funzioni, viene restituito un valore true() se il messaggio di posta elettronica vieen inviato con successo; in caso contrario viene restituito false(). 1 Per i messaggi di posta elettronica in inglese, il Motore per la Pubblicazione Web utilizza una codifica di testo predefinita iniziale ISO-8859-1. È possibile cambiare questa impostazione utilizzando Admin Console. Vedere la Guida di FileMaker Server. Capitolo 6 | Sviluppo di fogli di stile XSLT FileMaker 71 1 La funzione fmxslt:send_email(String smtpFields, String xsltFile, Node xml, boolean includeImages) invia un messaggio di posta elettronica costituito da dati XML elaborati dal folgio di stile e-mail indicato in questa funzione. 1 Per il parametro xsltFile, specificare il nome del foglio di stile e-mail inserendo un URL relativo al file del foglio di stile di elaborazione principale per la richiesta. 1 Per il parametro xml, specificare il nodo principale dei dati XML da utilizzare con il foglio di stile e-mail. Per inviare un messaggio di posta elettronica utilizzando gli stessi dati XML che vengono visualizzati nel browser, fornire l'XPath per la directory principale del documento: "/". In caso contrario, è possibile utilizzare un documento XML diverso caricandolo innanzitutto con la funzione document(), e trasferendo tale documento nella funzione fmxslt:send_email(). 1 Per il parametro includiImmagini, specificare un valore booleano true() affinché il Motore per la Pubblicazione Web comprenda tutte le immagini specificate nell'HTML del messaggio di posta elettronica come allegati. Questo parametro comprende sia immagini del database FileMaker sia immagini non appartenenti al database provenienti da altre posizioni. Il Motore per la Pubblicazione Web cambia gli URL delle immagini per fare riferimento agli allegati. Le prestazioni possono essere ridotte se i file di immagine sono numerosi o di grandi dimensioni. Se si specifica false ()il Motore per la Pubblicazione Web non cambia l'URL per le immagini. Se gli URL sono assoluti, il client di posta elettronica tenta di caricare le immagini dal server Web. Di seguito vi è un esempio di utilizzo della funzione fmxslt:send_email(String smtpFields, String xsltFile, Node xml, boolean includeImages) all'interno di un'istruzione XPath, come all'interno dell'elemento <xsl:if>: fmxslt:send_email('[email protected]?subject=project%20status&amp;[email protected] &amp;[email protected]','my_mail_template.xsl', /, true()) Per informazioni sulla configurazione del Motore per la Pubblicazione Web per collegarsi a un server SMTP, vedere la Guida di FileMaker Server. Utilizzo delle funzioni di intestazione È possibile usare la funzione fmxslt:get_header() per leggere le informazioni dalla richiesta HTTP e le intestazioni della risposta, e la funzione fmxslt:set_header() per scrivere le informazioni sulle intestazioni. Queste funzioni sono utili se il client può utilizzare le informazioni dell'intestazione per recuperare informazioni dal server Web, o se è necessario impostare un'intestazione HTTP per altri motivi. Funzione di estensione di intestazione Tipo di dati riportato Descrizione fmxslt:get_header(String name) stringa Restituisce il valore specificato dell'intestazione fmxslt:set_header(String name, String value) nullo Imposta il valore specificato dell'intestazione fmxslt:set_status_code(Number codice stato) nullo Imposta il codice di stato HTTP Note 1 Il nome utilizzato nelle funzioni fmxslt:get_header() e fmxslt:set_header() e il valore della funzione fmxslt:set_header() può essere una stringa di qualsiasi lunghezza. 1 La funzione fmxslt:set_header() e la funzione fmxslt:set_status_code() richiedono l'istruzione di elaborazione <?xslt-cwp-buffer?>. Vedere "Utilizzo del buffering del contenuto" a pagina 66. 72 Pubblicazione Web personalizzata con XML e XSLT di FileMaker Server Il seguente esempio mostra come impostare il valore dell'intestazione. Si supponga di utilizzare un foglio di stile per produrre un vCard. C'è un potenziale problema: quando tenta di caricare la pagina del foglio di stile, il browser potrebbe interpretare il file .xsl come un foglio di stile piuttosto che come una vCard. Se si sta utilizzando l'intestazione chiamata Content-Disposition, è possibile specificare che è presente un allegato con estensione .vcf. <Xsl:value-of select="fmxslt:set_header('Content-Disposition','attachment;filename=test.vcf')" /> Utilizzo delle funzioni di estensione dei cookie È possibile utilizzare le funzioni di estensione dei cookie per ottenere o impostare i cookie memorizzati nel browser Web del client. Funzione di estensione dei cookie Tipo di dati riportato fmxslt:get_cookie(String name) set di nodi Restituisce il set di nodi COOKIES che ha il nome del cookie specificato. fmxslt:get_cookies() set di nodi Restituisce il set di nodi COOKIE con tutti i cookie forniti dal client. fmxslt:set_cookie(String name, String value) nullo Memorizza il cookie specificato nel browser del client con il valore specificato. fmxslt:set_cookie(String name, String value, Number expires, String path, String domain) nullo Memorizza il cookie specificato nel browser del client con tutti i valori disponibili per un cookie. Il parametro Scade rappresenta il numero di secondi dopo i quali scade il cookie. Descrizione Note 1 Le funzioni fmxslt:get_cookie() e fmxslt:get_cookies()restituiscono un set di nodi con la seguente struttura: <!ELEMENT cookies (cookie)*> <!ATTLIST cookie xmlns CDATA #FIXED "http://www.filemaker.com/xml/cookie"> <!ELEMENT cookie (#PCDATA)> <!ATTLIST cookie name CDATA #REQUIRED> 1 Il namespace XML per il set di nodi cookies è "http://www.filemaker.com/xml/cookie". Dichiarare il namespace e di fornire un prefisso per il namespace. 1 Tutti i valori dei parametri per le funzioni fmxslt:set_cookie devono essere validi, altrimenti il browser Web ignora le richieste della funzione fmxslt:set_cookie. 1 Per tutte le funzioni dei cookie, i parametri delle stringhe possono avere qualsiasi lunghezza. 1 Entrambe le forme della funzione fmxslt:set_cookie() richiedono l'istruzione di elaborazione <?xslt-cwpbuffer?>. Vedere "Utilizzo del buffering del contenuto" a pagina 66. Esempio: get_cookie Nell'esempio seguente viene riportato un cookie chiamato preferenze ed il raltivo valore: <Xsl:variable name="pref_cookie" select="fmxslt:get_cookie('preferences')"/> <xsl:value-of select="concat('Cookie Name = ', $pref_cookie/fmc:cookies/fmc:cookie/@name)"/> <br/> <xsl:value-of select="concat('Cookie Value = ', $pref_cookie/fmc:cookies/fmc:cookie)"/> Capitolo 6 | Sviluppo di fogli di stile XSLT FileMaker 73 Esempio: set_cookie Di seguito vi è un esempio di come impostare un cookie con tutti i valori: <Xsl:variable name="storing_cookie" select="fmxslt:set_cookie ('text1', 'text2', 1800, 'my_text', 'my.company.com')" /> Utilizzo delle funzioni di estensione per la manipolazione delle stringhe È possibile utilizzare le funzioni per la manipolazione delle stringhe per modificare la codifica delle stringhe di qualsiasi lunghezza. Manipolazione stringhe funzione di estensione Tipo di dati riportato Descrizione fmxslt:break_encode(String value) stringa Restituisce una stringa HTML con codifica break. Caratteri come "&" (e commerciale) vengono sostituiti con "&amp;". I caratteri che indicano il passaggio ad una nuova riga, come gli avanzamenti di riga e i ritorni a capo, vengono sostituiti con <br/>. Questa funzione è attiva solo se l'attributo disable-output-escaping degli elementi <xsl:value-of> e <xsl:text> è impostato su "yes" (disable-output-escaping="yes"). Nota Per comprendere un avanzamento di riga o un ritorno a capo nella stringa a cui è applicata la funzione fmxslt:break_encode(), è necessario utilizzare i seguenti caratteri di escape: ""&#10;" (per l'avanzamento di riga) oppure "&#13;"(per il ritorno a capo). Non è possibile comprendere un avanzamento di riga o un ritorno a capo nella stringa premendo il tasto di Invio nell'editor di testo. fmxslt:html_encode(String value) stringa Restituisce una stringa con codifica HTML; caratteri come "&" (e commerciale) vengono sostituiti con "&amp;" fmxslt:url_encode(String value) stringa Restituisce una stringa con codifica URL. La codifica URL è utilizzata per trasmettere i caratteri in Internet, in particolare per gli URL. Ad esempio, la "&" (e commerciale) in un modulo con codifica URL equivale al %26. Se si utilizza un carattere riservato nel href, utilizzare questa funzione per codificare questa stringa in URL. fmxslt:url_encode(String value, String encoding) stringa Restituisce una stringa con codifica URL utilizzando la codifica del carattere specificata per il parametro codifica, che può essere: US-ASCII, ISO-88591, ISO-8859-15, ISO-2022-JP, Shift_JIS oppure UTF-8. Utilizzare questa funzione nelle situazioni in cui si sa che un server Web si aspetta una codifica diversa da quella utilizzata nel foglio di stile corrente. Ad esempio, la pagina di ingresso ad un sito Web potrebbe essere visualizzata in UTF-8, ma gli utenti possono fare clic su un collegamento per visualizzare una pagina giapponese. Se la richiesta comprende caratteri giapponesi e le pagine giapponesi utilizzano la codifica Shift_JIS, si consiglia di codificare la stringa in Shift_JIS. fmxslt:url_decode(String value) stringa Restituisce una stringa decodificata URL da una stringa URL che in precedenza era codificata. fmxslt:url_decode(String value, String encoding) stringa Restituisce una stringa con decodifica URL utilizzando la codifica specificata per il parametro codifica, che può essere: US-ASCII, ISO-8859-1, ISO-8859-15, ISO-2022-JP, Shift_JIS oppure UTF-8. Utilizzare questa funzione nelle situazioni in cui è necessario specificare la codifica utilizzata nella stringa codificata URL per decodificare correttamente la stringa. Ad esempio, anche se il sito Web utilizza ISO-8859-1, gli utenti possono inviare un modulo utilizzando una diversa codifica dei caratteri. 74 Pubblicazione Web personalizzata con XML e XSLT di FileMaker Server Confronto delle stringhe mediante espressioni regolari Perl 5 È possibile usare la funzione di estensione fmxslt:regex_contains() per confrontare le stringhe utilizzando le espressioni regolari Perl 5. Un confronto di espressioni regolari è un tipo avanzato di corrispondenza di testo che consente di determinare se una stringa corrisponde a un determinato modello. La sintassi di questa funzione è: fmxslt:regex_contains(String input, String pattern) Dove input è una stringa e modello è un'espressione regolare Perl 5. Per ulteriori informazioni sulla sintassi delle espressioni regolari Perl 5, vedere www.perldoc.com. La funzione fmxslt:regex_contains() restituisce un valore booleano. Questa funzione è utile se si necessita di manipolazioni delle stringhe più avanzate di quelle fornite da XSLT standard. Ad esempio è possibile determinare se il valore di un campo contiene un numero di telefono o un indirizzo di posta elettronica validi confrontando la stringa con l'espressione regolare Perl 5. Di seguito vi è un esempio di utilizzo di questa funzione per determinare se il valore di un campo contiene indirizzi di posta elettronica costruiti correttamente: <xsl:variable name="email" select="'[email protected]'"/> <xsl:if test="fmxslt:regex_contains($email,'^\w+[\w-\.]*\@\w+((-\w+)|(\w*))\.[a-z]{2,3}$')">Valid Email</xsl:if> Se il Motore per la Pubblicazione Web non può analizzare il modello, lo stato d'errore viene impostato sul codice di errore 10311. Vedere "Codici di errore per le funzioni di estensione XSLT FileMaker" a pagina 118. Controllo dei valori in un campo formattato come casella di controllo È possibile utilizzare la seguente funzione di estensione per determinare se un particolare valore in una casella di controllo della lista valori è memorizzato in un campo nel database FileMaker: fmxslt:contains_checkbox_value(String valueString, String valueListEntry) dove stringaValore è un XPath che specifica il campo, e voceListaValori è il valore da controllare. Se il valore specificato è memorizzato nel campo, questa funzione booleana restituisce true(). In caso contrario, restituisce false(). È possibile utilizzare questa funzione per impostare l'attributo controllato in un form HTML per visualizzare una casella di controllo come se fosse selezionata. Ad esempio, si supponga che un campo in un formato di database FileMaker abbia le seguenti opzioni per le caselle di controllo: [ ] Rosso [ ] Blu [ ] Verde [ ] Piccolo [ ] Medio [ ] Grande Se un utente ha selezionato solo Rosso, il campo contiene la stringa "Rosso". Per determinare se il campo contiene "Blu", si può utilizzare il seguente richiamo della funzione: fmxslt:contains_checkbox_value(<nodo valore campo >,'Blu') dove <nodo valore campo > è l'XPath all'elemento <data> per il campo della casella di controllo. In questo esempio la funzione restituisce "Falso". Capitolo 6 | Sviluppo di fogli di stile XSLT FileMaker 75 Un'applicazione comune di questa funzione è visualizzare la lista valori delle caselle di controllo in una pagina Web e selezionare le caselle di controllo nella pagina Web che sono selezionate nel database. Ad esempio, le seguenti istruzioni HTML e XSLT creano un set di caselle di controllo per un campo denominato style utilizzando una lista valori chiamata color_size: <xsl:variable name="field-value" select="fmrs:field[@name='style']/fmrs:data" /> <xsl:for-each select="$valuelists[@NAME = 'color_size']/fml:VALUE"> <input type="checkbox"> <xsl:attribute name="name">style</xsl:attribute> <xsl:attribute name="value"><xsl:value-of select="."/></xsl:attribute> <xsl:if test="fmxslt:contains_checkbox_value($field-value,.)"> <xsl:attribute name="checked">checked</xsl:attribute> </xsl:if> </input><xsl:value-of select="."/><br/> </xsl:for-each> Le istruzioni HTML e XSLT nell'esempio producono le seguenti caselle di controllo su una pagina Web, con Rosso e Medio selezionati: [x] Rosso [ ] Blu [ ] Verde [ ] Piccolo [x] Medio [ ] Grande Utilizzo delle funzioni di estensione data, ora e giorno È possibile utilizzare le funzioni di estensione per ottenere la data, l'ora o il giorno corrente e per confrontare due date, due ore o due giorni. Le funzioni nella seguente tabella utilizzano i formati "fm" indipendentemente dalle impostazioni internazionali. I formati "fm" sono MM/gg/aaaa per la data, HH:mm:ss per l'ora e MM/gg/aaaa HH:mm:ss per l'Indicatore data e ora. Per riordinare i valori di uscita in un formato diverso o nel formato preferito, utilizzare le funzioni di calcolo o Javascript. Tipo di dati Funzione di estensione data, ora, giorno riportato Descrizione fmxslt:get_date() stringa Restituisce la data corrente nel formato "fm". fmxslt:get_date(String format) stringa Restituisce la data corrente nel formato specificato. Inserire la stringa "short", "long" o "fm" per il parametro formato. fmxslt:get_time() stringa Restituisce l'ora corrente nel formato "fm". fmxslt:get_time(String format) stringa Restituisce l'ora corrente nel formato specificato. Inserire la stringa "short", "long" o "fm" per il parametro formato. fmxslt:get_day() stringa Restituisce il giorno corrente nel formato abbreviato. fmxslt:get_day(String format) stringa Restituisce il giorno corrente nel formato specificato. Inserire la stringa "shot" o "long" per il parametro formato. Fmxslt:get_fm_date_format() stringa Restituisce la stringa di formattazione per il formato data "fm": "MM/gg/aaaa" 76 Pubblicazione Web personalizzata con XML e XSLT di FileMaker Server Tipo di dati Funzione di estensione data, ora, giorno riportato Descrizione fmxslt:get_short_date_format() stringa Restituisce la stringa di formattazione per il formato abbreviato della data: "M/g/aa" fmxslt:get_long_date_format() stringa Restituisce la stringa di formattazione per il formato esteso della data: "MMM g, aaaa" Fmxslt:get_fm_time_format() stringa Restituisce la stringa di formattazione per il formato ora "fm": "hh:mm:ss" Fmxslt:get_fm_timestamp_format() stringa Restituisce la stringa di formattazione per l'indicatore data e ora "fm": "MM/gg/aaaa HH:mm:ss" fmxslt:get_short_time_format() stringa Restituisce la stringa di formattazione per il formato abbreviato dell'ora: "h:mm a" fmxslt:get_long_time_format() stringa Restituisce la stringa di formattazione per il formato esteso dell'ora: "h:mm:ss a z" fmxslt:get_short_day_format() stringa Restituisce la stringa di formattazione per il formato abbreviato del giorno: "EEE" fmxslt:get_long_day_format() stringa Restituisce la stringa di formattazione per il formato esteso del giorno: "EEEE" fmxslt:compare_date(String date1, String date2) numero Questa funzione confronta due valori di data. Restituisce un numero negativo se data1 è precedente a data2. Restituisce un numero positivo se data1 è successiva a data2. Restituisce 0 se data1 è identica a data2. Entrambe le date devono essere indicate nel formato "fm". fmxslt:compare_time(String time1, String time2) numero Questa funzione confronta due valori di ora. Restituisce un numero negativo se ora1 è precedente a ora2. Restituisce un numero positivo se ora1 è successiva a ora2. Restituisce a 0 se ora1 è identica a ora2. Entrambe le ore devono essere indicate nel formato "fm". fmxslt:compare_day(String day1, String day2) Questa funzione confronta due valori di giorno. Restituisce un numero negativo se giorno1 è precedente a giorno2. Restituisce un numero positivo se giorno1 è successivo a giorno2. Restituisce 0 se giorno1 è identico a giorno2. Entrambi i giorni devono essere specificati in formato abbreviato. numero Le funzioni nella seguente tabella utilizzano stringhe di formattazione della data personalizzate che specificano un formato di data e ora. Vedere la sezione successiva, "Stringhe di formato data e ora". Tipo di dati Funzione di estensione data, ora, giorno riportato Descrizione fmxslt:get_datetime(String dateFormat) stringa Restituisce la data e l'ora corrente utilizzando le stringhe del formato data e ora. fmxslt:convert_datetime(String oldFormat, String newFormat, String date) stringa Converte la data specificata nel vecchioFormato specificato nella stringa in base al nuovoFormato. Le stringhe vecchioFormato e nuovoFormato devono essere specificate utilizzando le stringhe del formato data e ora. fmxslt:compare_datetime(String dateFormat1, numero String dateFormat1, String date1, String date2) Questa funzione confronta data1 e data2 decodificando queste date in base ai rispettivi formati data. Restituisce un numero negativo se data1 è precedente a data2. Restituisce un numero positivo se data1 è successiva a data2. Restituisce 0 se data1 è identica a data2. Le stringhe Formatodata1 e Formatodata2 devono essere specificate utilizzando le stringhe del formato data e ora. Capitolo 6 | Sviluppo di fogli di stile XSLT FileMaker 77 Stringhe di formato data e ora I formati data e ora sono specificati dalle stringhe modello data e ora. All'interno delle stringhe modello data e ora, le lettere non comprese tra virgolette dalla 'A' alla 'Z' e dalla 'a' alla 'z' sono interpretate come lettere modello che rappresentano i componenti di una stringa data o ora. Le seguenti lettere modello sono definite (tutti gli altri caratteri dalla 'A' alla 'Z' e dalla 'a' alla 'z' sono riservati): Lettera Componente data o ora Presentazione Esempi G Indicatore di era Testo dopo Cristo y Anno Anno 1996; 96 M Mese dell'anno Mese luglio; lug; 07 w Settimana dell'anno Numero 27 W Settimana del mese Numero 2 D Giorno dell' anno Numero 189 d Giorno del mese Numero 10 F Giorno della settimana nel mese Numero 2 E Giorno della settimana Testo martedì; mar a Contrassegno a.m./p.m. Testo PM H Ora nel giorno (0-23) Numero 0 k Ora nel giorno (1-24) Numero 24 K Ora in a.m./p.m. (0-11) Numero 0 h Ora in a.m./p.m. (1-12) Numero 12 m Minuti nell'ora Numero 30 s Secondi nel minuto Numero 55 S Millisecondi Numero 978 z Fuso orario Fuso orario generale Ora del Pacifico; PST; GMT-08:00 Z Fuso orario Fuso orario RFC 822 -0800 Le lettere modello di solito vengono ripetute, poiché il loro numero determina la presentazione esatta: 1 Testo: Per la formattazione, se il numero di lettere modello è pari o superiore a quattro, viene utilizzata la forma intera; in caso contrario si utilizza una forma abbreviata, se disponibile. Per l'analisi, entrambe le forme sono accettate, indipendentemente dal numero di lettere modello. 1 Numero: Per la formattazione, il numero di lettere modello è quello minimo di cifre, e i numeri più corti sono riempiti con degli zeri (antecedenti) fino al raggiungimento di questa quantità. Nell'analisi, il numero di lettere modello non viene considerato a meno che non sia necessario per separare due campi adiacenti. 78 Pubblicazione Web personalizzata con XML e XSLT di FileMaker Server 1 Anno: Per la formattazione, se il numero di lettere modello è due, l'anno è accorciato a due cifre; in caso contrario è interpretato come un numero. Per l'analisi, se il numero di lettere modello è maggiore di 2, l'anno viene interpretato letteralmente, indipendentemente dal numero di cifre. Utilizzando il modello "gg/MM/aaaa", "11/11/12" analizza Gen 11, 12 d. C. Per l'analisi con il modello dell'anno abbreviato ("a" o "aa"), l'anno abbreviato deve essere interpretato in relazione al secolo regolando le date in modo che siano comprese tra 80 anni prima e 20 anni dopo il momento in cui è stata creata l'istanza del formato della data. Ad esempio, utilizzando un modello "MM/gg/aa" e un'istanza del formato data creata il 1 gen 1997, la stringa "01/11/12" viene interpretata come 11 gen 2012 mentre la stringa "05/04/64" viene interpretata come 4 maggio 1964. Durante l'analisi, verranno analizzate solo le stringhe costituite da due cifre nel secolo predefinito. Tutte le altre stringhe numeriche, come le stringhe ad una cifra, a tre o più cifre, o le stringhe a due cifre che non sono composte solo da cifre (ad esempio, "-1") vengono interpretate letteralmente. Perciò "01/02/3" o "01/02/003" vengono analizzati utilizzando lo stesso modello, come 2 Gen, 3 d.C. Analogamente, "01/02/-3" viene analizzato come 2 Gen, 4 a.C. 1 Mese: Se il numero delle lettere del modello è pari o superiore a tre, il mese viene interpretato come testo; in caso contrario, viene interpretato come un numero. 1 Fuso orario generale: I fusi orari sono interpretati come testo se hanno dei nomi. Per i fusi orari che rappresentano un valore di differenza rispetto a GMT (meridiano di Greenwich), si utilizza la seguente sintassi: 1 1 1 1 1 DifferenzaFusoOrarioGMT. GMT Segno Ore:Minuti Segno. + o Ore. Cifra o Cifra Cifra Minuti. Cifra Cifra Cifra. Uno dei seguenti: 0 1 2 3 4 5 6 7 8 9 Le ore devono essere comprese tra 0 e 23 e i Minuti devono essere compresi tra 00 e 59. La formattazione è indipendente dalle impostazioni internazionali; le cifre devono essere prese dal blocco Latino di base dello standard Unicode. Per l'analisi vengono accettati anche i fusi orari RFC 822. 1 Fuso orario RFC 822: Per la formattazione si utilizza la formattazione del fuso orario a 4 cifre RFC 822: 1 RFC822FusoOrario. Segno OraDueCifre Minuti 1 OraDueCifre. Cifra Cifra OraDueCifre deve essere compreso tra 00 e 23. Le altre definizioni sono come per i fusi orari generali. Per l'analisi vengono accettati anche i fusi orari generali. Capitolo 6 | Sviluppo di fogli di stile XSLT FileMaker 79 I seguenti esempi mostrano come i modelli di data e ora vengono interpretati in base alle impostazioni U.S.A. La data e l'ora indicate, 2001-07-04 12:08:56, sono la data e l'ora locale nell'Ora del Pacifico. Modello data e ora Risultato "aaaa.MM.gg G 'alle' HH:mm:ss z" 2001.07.04 dopo Cristo at 12:08:56 PDT "EEE, MMM g, ' 'aa" mer, lug 4, '01 "h:mm a" 12:08 p.m. "o'clock hh a, zzzz" 12 o'clock PM, Ora legale costa occidentale USA "K:mm a, z" 0:08 PM, PDT "aaaaa.MMMMM.gg GGG hh:mm aaa" 02001.luglio.04 dopo Cristo 12:08 PM "EEE, g MMM aaaa HH:mm:ss Z" mer, 4 lug 2001 12:08:56 -0700 "aaMMggHHmmssZ" 010704120856-0700 Copyright 2003 Sun Microsystems, Inc. Ristampato con autorizzazione. Controllo dello stato di errore delle funzioni di estensione È possibile utilizzare la seguente funzione di estensione all'interno di un foglio di stile XSLT per controllare lo stato di errore corrente dell'ultima funzione di estensione XSLT FileMaker richiamata e gestire gli errori che si presentano durante l'elaborazione delle pagine: fmxslt:check_error_status() Se la funzione fmxslt:check_error_status() viene richiamata, il Motore per la Pubblicazione Web restituisce il valore del codice di errore corrente per la funzione richiamata più recentemente come Tipo di numero, quindi ripristina lo stato errore su 0 ("Nessun errore"). Per informazioni sui valori dei codici di errore, vedere "Codici di errore per le funzioni di estensione XSLT FileMaker" a pagina 118. Utilizzo della registrazione È possibile utilizzare l'elemento XSLT standard <xsl:message> per fare registrazioni nel file di registro dell'applicazione del Motore per la Pubblicazione Web. Vedere "Utilizzo del registro dell'applicazione Motore per la Pubblicazione Web" a pagina 86. Utilizzo dell'elaborazione lato server dei linguaggi di scripting Il trasformer XSLT incorporato nel Motore per la Pubblicazione Web supporta l'elaborazione lato server di linguaggi di scripting. Di conseguenza, è possibile utilizzare Javascript per sviluppare le proprie funzioni di estensione che possono essere richiamate direttamente da un foglio di stile XSLT. Per attivare questa funzionalità, sono installate due librerie Java: 1 bsf.jar – Questa libreria permette al transformer XSLT di collegarsi ai linguaggi di scripting. 1 js.jsr – Questa libreria è una piena implementazione del progetto Mozilla. Queste librerie consentono di creare le proprie funzioni di estensione nell'ambito del codice del foglio di stile XSLT. Queste funzioni di estensione possono implementare qualsiasi logica di script e sono più pratiche rispetto a quelle basate su XSLT e XPath per realizzare funzioni logiche. Per ulteriori informazioni sul supporto per l'estensione del transformer XSLT, visitare il sito Web Apache Xalan Extensions: http://xml.apache.org/xalan-j/extensions.html 80 Pubblicazione Web personalizzata con XML e XSLT di FileMaker Server Definizione di una funzione di estensione Per definire una funzione di estensione all'interno di un foglio di stile: 1. Definire il namespace per l'estensione. Aggiungere il namespace xalan per istruire il transformer XSLT a supportare i componenti dell'estensione, indicando il nome del namespace della propria funzione di estensione. L'esempio seguente utilizza fmp-ex come prefisso del namespace per la funzione di estensione. <xsl:stylesheet version="1.0" xmlns:xsl=http://www.w3.org/1999/XSL/Transform xmlns:xalan=http://xml.apache.org/xslt xmlns:fmp-ex="ext1" exclude-result-prefixes="xsl xalan fmp-ex"> 2. Definire il componente e le funzioni di estensione con il codice che implementa realmente la funzione di estensione. <xalan:component prefix="fmp-ex" functions="getValueColor"> <xalan:script lang="javascript"> function getValueColor(value) { if (value > 0) return ("#009900"); else return ("#CC0000"); } </xalan:script> </xalan:component> Questo esempio restituisce un valore per il colore basato su un valore di ingresso. Se il valore di ingresso è maggiore di 0, il colore restituito è verde ("#009900"); in caso contrario, se il valore è minore di 0, il colore restituito è rosso ("#CC0000"). Nota L'elemento <xalan:component> deve essere figlio dell'elemento <xsl:stylesheet>. 3. Utilizzare la funzione di estensione all'interno del foglio di stile. I seguenti esempi mostrano come richiamare una funzione di estensione utilizzando un'istruzione XPath. Questo primo esempio consente di impostare il colore del font su verde ("#009900"). <font color="{fmp-ex:getValueColor(50)}">Il valore è 50</font> Questo secondo esempio consente di impostare il colore del font su rosso ("#CC0000"). <font color="{fmp-ex:getValueColor(-500)}">Il valore è -500</font> Capitolo 6 | Sviluppo di fogli di stile XSLT FileMaker 81 Un esempio di funzione di estensione La funzione Javascript semplice utilizzata nel processo illustrato sopra avrebbe potuto essere implementata utilizzando un'istruzione <xsl:choose>. Ma la reale utilità di un'estensione dello script è la possibilità di creare una funzione che non può essere solo implementata in XSLT oppure XPath. Si supponga ad esempio di costruire il portale intranet di una società e di inserire nella pagina del portale le informazioni aggiornate sui prezzi delle azioni. Anche se sono disponibili quotazioni azionarie in formato XML, generalmente, per l'accesso, sono necessarie licenze commerciali. Tuttavia è possibile scaricare i valori delle azioni in un documento CSV (Comma Separated Values) dal sito web Yahoo!. La funzione XPath document() consente di importare il contenuto da origini XML, ma il contenuto CSV deve essere convertito in formato XML. Una soluzione è utilizzare Javascript per scaricare le informazioni sui azioni in formato CSV, analizzare il file ed estrarre i dati. Questo URL indica la sintassi per recuperare una quota azionaria dal sito web Yahoo! come file CSV: http://quote.yahoo.com/d/quotes.csv?s=<ticker>&f=l1gh&e=.csv in cui <ticker> rappresenta il simbolo delle azioni di cui si tenta di recuperare i dati. I dati restituiti sono tre numeri separati da virgole, come: 31.79,31.17,32.12 dove il primo valore è l'ultimo prezzo in commercio, il secondo valore è quello odierno più basso e il terzo quello odierno più alto. L'esempio indicato di seguito mostra la funzione di estensione Javascript XSLT che recupera il prezzo corrente di un'azione dal sito web Yahoo! e lo rende disponibile attraverso una funzione XPath: <?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet exclude-result-prefixes="xsl fmxslt fmrs xalan fmp-ex" version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fmrs="http://www.filemaker.com/xml/fmresultset" xmlns:fmxslt="xalan://com.fmi.xslt.ExtensionFunctions" xmlns:xalan="http://xml.apache.org/xslt" xmlns:fmp-ex="ext1" > <?xslt-cwp-query params="-grammar=fmresultset&-process"?> <xsl:output method="html"/> <xalan:component prefix="fmp-ex" functions="include get_quote" > <xalan:script lang="javascript"> function include(url) { var dest = new java.net.URL(url); var dis = new java.io.DataInputStream(dest.openStream()); var res = ""; while ((line = dis.readLine()) != null) { 82 Pubblicazione Web personalizzata con XML e XSLT di FileMaker Server res += line + java.lang.System.getProperty("line.separator"); } dis.close(); return res; } function get_quote(ticker) { Url = "http://quote.yahoo.com/d/quotes.csv?s="+ "+ticker+"&amp;f=l1gh&amp;e=.csv"; csv_file = include(url); var str_tokenizer = new java.util.StringTokenizer(csv_file, ','); // the first token is the last trade price var last = str_tokenizer.nextToken(); return last; } </xalan:script> </xalan:component> <xsl:template match="/fmrs:fmresultset"> <html> <body> <font size="2" face="verdana, arial"> Apple Stock Price: <xsl:value-of select="fmp-ex:get_quote('AAPL')"/> </font> </body> </html> </xsl:template> </xsl:stylesheet> Durante l'elaborazione di questo foglio di stile, il Motore per la Pubblicazione Web richiede le informazioni sulle azioni dal sito web Yahoo!. La funzione get_quote() analizza i dati delle quote azionarie e restituisce i dato al foglio di stile. L'output trasformato appare nel browser. Capitolo 7 Preparazione, test e monitoraggio di un sito In questo capitolo sono contiene le istruzioni per preparare e testare un sito Pubblicazione Web personalizzata prima della sua distribuzione in un ambiente di produzione. Sono anche presenti le istruzioni per utilizzare i file di registro per controllare il sito durante il test o dopo la sua distribuzione. Preparazione di un sito Pubblicazione Web personalizzata Prima di poter testare correttamente il sito, è necessario copiare o spostare i file richiesti nelle posizioni corrette sul/sui server di preparazione. Per organizzare il sito e preprararlo per il test: 1. Completare tutti i passi descritti in capitolo 3, "Preparazione dei database per la Pubblicazione Web personalizzata". 2. Controllare che XSLT e XML siano stati attivati e configurati correttamente in Admin Console di FileMaker Server. Nota Per ulteriori informazioni, vedere la Guida di FileMaker Server. 3. Verificare che il server Web e il Motore per la Pubblicazione Web siano in esecuzione. 4. Copiare o spostare i fogli di stile XSLT sulla macchina in cui risiede il Motore per la Pubblicazione Web. Copiare o spostare i fogli di stile XSLT nella seguente directory sul macchina del Motore per la Pubblicazione Web: 1 Apache (Mac OS): /Libreria/FileMaker Server/Web Publishing/xslt-template-files 1 IIS (Windows): <drive>:\Programmi\FileMaker\FileMaker Server\Web Publishing\xslt-template-files in cui <unità> è l'unità primaria da cui viene avviato il sistema. Nota I fogli di stile possono essere inseriti anche in un'altra cartella o nell'albero di cartelle all'interno della cartella dei modelli xslt. 5. Copiare o spostare eventuali oggetti Contenitore a cui si fa riferimento nella macchina del server Web. Se un campo Contenitore del database contiene un riferimento al file anziché il file reale, l'oggetto Contenitore di riferimento deve essere memorizzato nella cartella Web di FileMaker Pro quando il record viene creato o modificato. Per preparare il sito, copiare o spostare i contenitori a cui si fa riferimento ad una cartella con la stessa posizione relativa nella cartella principale del software del server Web. Nota Se il file di database è ospitato nella posizione appropriata e accessibile dal componente server database di FileMaker Server e se nei campi Contenitore vengono memorizzati i file effettivi del database FileMaker, i contenuti del campo Contenitore non necessitano di essere riposizionati. 84 Pubblicazione Web personalizzata con XML e XSLT di FileMaker Server 6. Utilizzare la seguente sintassi URL per richiedere un foglio di stile XSLT ed elaborarlo e generare poi l'HTML risultante: <scheme>://<host>[:<port>]/fmi/xsl/<path>/<stylesheet>.xsl[?<query string>] dove: 1 <scheme> indica il protocollo HTTP o HTTPS. 1 <host> è l'IP indirizzo o nome di dominio del computer host su cui è installato il server Web. 1 <port> è opzionale e indica la porta a cui si collega il server Web. Se non viene specificata nessuna porta, si considera la porta predefinita per quel protocollo (la porta 80 per HTTP, o la porta 443 per HTTPS). 1 Il <path> è opzionale e specifica la cartella (o le cartelle) all'interno della cartella dei modelli xslt in cui si trova il foglio di stile XSLT. 1 <stylesheet> è il nome del foglio di stile con estensione .xsl. 1 <query string> può essere la combinazione di un comando di query e di uno o più parametri di query per la Pubblicazione Web personalizzata con XSLT. se il foglio di stile specificato comprende un'istruzione di elaborazione <?xslt-cwp-query?>, il comando di query e i parametri definiti statisticamente hanno la precedenza su qualsiasi comando o parametro di query corrispondente nella stringa di query dell'URL. Se si fa riferimento ad un foglio di stile home.xsl generato da XSLT Site Assistant, non è necessario includere una stringa di query. Per ulteriori informazioni sulle stringhe di query, vedere appendice A, "Nomi validi usati nelle stringhe delle query". La sintassi URL, compresi i nomi di comandi e parametri di query, fa distinzione fra maiuscole e minuscole, eccetto che per parti della stringa di query. La maggioranza delle URL è scritta in caratteri minuscoli. Ad esempio, se i fogli di stile (che comprendono un foglio di stile home.xsl) sono stati copiati nella cartella my_templates all'interno della cartella dei modelli xslt, si può usare la seguente URL per richiedere ed elaborare i fogli di stile: http://192.168.123.101/fmi/xsl/my_templates/home.xsl Nota Il Motore per la Pubblicazione Web non consente agli utenti Web di visualizzare l'origine dei fogli di stile XSLT installati nella cartella dei modelli xslt. Quando un utente Web invia una richiesta di elaborazione di un foglio di stile, il Motore per la Pubblicazione Web invia al browser Web solo le pagine HTML risultanti dai fogli di stile del XSLT Site Assistant. Test di un sito Pubblicazione Web personalizzata Prima di comunicare agli utenti che un sito Pubblicazione Web Immediata è disponibile, è importante verificare che abbia il layout desiderato e che funzioni nel modo previsto. 1 Testare le funzioni come ad esempio la ricerca, l'aggiunta, l'eliminazione e l'ordinamento dei record con account e set di privilegi diversi. 1 Verificare che i set di privilegi funzionino come previsto in base al tipo di account utilizzato. Assicurarsi che gli utenti non autorizzati non possano accedere ai dati né modificarli. 1 Controllare tutti gli script per verificare che producano il risultato previsto. Per informazioni su come progettare script compatibili con il Web consultare la sezione "Script di FileMaker e Pubblicazione Web personalizzata" a pagina 22. 1 Testare il sito con sistemi operativi e browser Web diversi. Capitolo 7 | Preparazione, test e monitoraggio di un sito 85 Nota Se non si dispone di una connessione di rete e sul computer è stato installato FileMaker Server, usando una singola macchina, con server web, Motore per la Pubblicazione Web e FileMaker Server sullo stesso computer, è possibile testare il sito Pubblicazione Web personalizzata utilizzando http://localhost/ o http://127.0.0.1/ nell'URL. Per informazioni sulla sintassi URL, vedere "Sintassi URL per dati XML e oggetti Contenitore" a pagina 35, e "Sintassi URL per i fogli di stile XSLT FileMaker" a pagina 55. Esempi di fogli di stile per testare l'output XML Di seguito vi sono due esempi di fogli di stile XSLT utili per testare l'output XML. 1 L'esempio di foglio di stile che segue genera i dati XML richiesti senza fare nessuna trasformazione. Questo foglio di stile è utile per visualizzare i dati XML che il Motore per la Pubblicazione Web sta effettivamente utilizzando. <?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fmrs="http://www.filemaker.com/xml/fmresultset"> <xsl:output method="xml"/> <xsl:template match="/"> <xsl:copy-of select="."/> </xsl:template> </xsl:stylesheet> 1 Per eseguire il debug di un foglio di stile, è possibile usare il seguente esempio di tag HTML <areatest> per visualizzare il documento origine XML a cui è stato effettuato l'accesso dal foglio di stile in un'area di testo a scorrimento. Sulla stessa pagina, è possibile confrontare i risultati XSLT trasformati rispetto al documento origine XML prima della trasformazione. <?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fmrs="http://www.filemaker.com/xml/fmresultset"> <xsl:output method="html"/> <html> <body> <xsl:template match="/fmrs:fmresultset"> <textarea rows="20" cols="100"> <xsl:copy-of select="."/> </textarea><br/> </xsl:template> </body> </html> </xsl:stylesheet> 86 Pubblicazione Web personalizzata con XML e XSLT di FileMaker Server Monitoraggio di un sito È possibile utilizzare i seguenti tipi di file registro per monitorare un sito Pubblicazione Web personalizzata e raccogliere informazioni sugli utenti Web che visitano il sito: 1 1 1 1 Registri degli accessi e degli errori del server Web Registro dell'applicazione Motore per la Pubblicazione Web Registro errori Modulo Server Web Registri degli accessi interni Web Publishing Core Uso dei registri degli accessi e degli errori del server Web Apache (Mac OS): Il server Web Apache genera un file di registro degli accessi e un file di registro degli errori. Il file di registro degli accessi Apache, incluso per default nel Common Logfile Format W3C, è un registro di tutte le richieste HTTP in ingresso sul server Web. Il registro errori Apache è un registro dei problemi che riguardano richieste HTTP di elaborazione. Per ulteriori informazioni su questi file di registro, vedere la documentazione del server Web Apache. IIS (Windows): Il server Web Microsoft IIS genera file di registro degli accessi e mostra gli errori nel Visualizzatore eventi di Windows anziché registrarli in un file di registro. Il file di registro degli accessi, incluso per default nell'Extended Log File Format W3C, è un registro di tutte le richieste HTTP in ingresso sul server Web. È anche possibile usare il Common Logfile Format per il registro degli accessi. Per ulteriori informazioni consultare la documentazione del server Web Microsoft IIS. Per informazioni sul W3C Common Logfile Format e sul W3C Extended Log File Format, consultare il sito Web del World Wide Web Consortium all'indirizzo www.w3.org. Utilizzo del registro dell'applicazione Motore per la Pubblicazione Web Per impostazione predefinita, il Motore per la Pubblicazione Web genera un file di registro dell'applicazione che è un registro delle informazioni sugli errori, sugli script e sugli utenti. 1 Le informazioni del registro errori descrivono gli eventuali errori insoliti del Motore per la Pubblicazione Web. Gli errori comunemente segnalati agli utenti Web, come ad esempio "Database non aperto", non vengono registrati. 1 Le informazioni dei registri degli script descrivono gli errori generati durante l'esecuzione di script da parte degli utenti. Ad esempio, elenca le istruzioni di script non compatibili con il Web che vengono saltate. 1 I messaggi di registro sugli utenti contengono messaggi generati dall'elemento <xsl:message> XSLT nei fogli di stile XSLT. Ogni volta che gli utenti Web accedono ad un foglio di stile XSLT, le informazioni comprese nell'elemento <xsl:message> vengono registrate nel file di registro dell'applicazione. Vedere capitolo 6, "Sviluppo di fogli di stile XSLT FileMaker". Il registro dell'applicazione si chiama pe_application_log.txt e si trova nella cartella Logs nella cartella FileMaker Server sull'host del Motore di pubblicazione sul Web. Il file pe_application_log.txt viene generato se nel Motore per la Pubblicazione Web è attivata una delle seguenti opzioni. Opzione registro abilitata Informazioni registrate in pe_application_log.txt Registrazione errori Errori insoliti del Motore per la Pubblicazione Web. Gli errori comunemente segnalati agli utenti Web, come ad esempio "Database non aperto", non vengono registrati. Registrazione script Errori generati durante l'esecuzione di script da parte degli utenti. Ad esempio, elenca le istruzioni di script non compatibili con il Web che vengono saltate. Registrazione utenti Messaggi generati ogniqualvolta gli utenti Web accedono alla soluzione Pubblicazione Web personalizzata. Capitolo 7 | Preparazione, test e monitoraggio di un sito 87 Per impostazione predefinita tutte e tre queste opzioni sono attivate. Per informazioni sull'impostazione queste opzioni attraverso l'Admin Console, vedere la Guida di FileMaker Server. Nota I dati del registro dell'applicazione non vengono cancellati automaticamente, quindi col tempo il file può diventare molto grande. Per risparmiare spazio su disco sul computer host si consiglia di archiviare regolarmente il file di registro dell'applicazione. Utilizzo del registro errori del Modulo Server Web Se il server Web non è in grado di connettersi al Motore per la Pubblicazione Web, il Modulo Server Web genera un file di registro che è un registro di tutti gli errori che si sono verificati in questa operazione. Questo file si chiama web_server_module_log.txt e si trova nella cartella Logs nella cartella FileMaker Server sull'host del server Web. Uso dei registri degli accessi interni Web Publishing Core Il componente software Web Publishing Core del Motore per la Pubblicazione Web genera due file di registro degli accessi interni, ossia registra tutti gli accessi al Web Publishing Core. 1 Il registro degli accessi wpc_access_log.txt è un registro di tutte le richieste degli utenti finali di generare dati XML e di usare la Pubblicazione Web Immediata di FileMaker Server. Queste richieste vengono inviate dal server Web direttamente al Web Publishing Core. 1 Il file degli accessi pe_internal_access_log.txt è un registro di tutte le richieste interne XML effettuate dal componente software XSLT-CWP del Motore per la Pubblicazione Web durante l'elaborazione di richieste XSLT. Queste richieste vengono indirizzate internamente al Motore per la Pubblicazione Web dal componente software XSLT-CWP al componente software Web Publishing Core. Questi file di registro si trovano nella cartella Logs nella cartella FileMaker Server sull'host del Motore per la Pubblicazione Web. I registri degli accessi interni vengono generati se l'opzione Registrazione accessi è abilitata nel Motore per la Pubblicazione Web. Per impostazione predefinita questa opzione è abilitata. Per informazioni sull'impostazione l'opzione Registrazione accessi nell'Admin Console, vedere la Guida di FileMaker Server. 88 Pubblicazione Web personalizzata con XML e XSLT di FileMaker Server Appendice A Nomi validi usati nelle stringhe delle query In questa appendice sono descritti i nomi validi dei comandi e dei parametri delle query utilizzabili in una stringa di query durante l'accesso ai dati FileMaker usando il Motore di pubblicazione sul Web. Comandi e parametri delle query Di seguito è riportato un elenco completo dei nomi dei comandi e dei parametri delle query: Nomi comandi query Nomi parametri query –dbnames (vedere pagina 93.) –delete (vedere pagina 93.) –dup (vedere pagina 94.) –edit (vedere pagina 94.) –find, –findall, –findany (vedere pagina 94.) –findquery (vedere pagina 95.) –layoutnames (vedere pagina 95.) –new (vedere pagina 95.) –process (solo XSLT) (vedere pagina 96.) –scriptnames (vedere pagina 96.) –view (vedere pagina 96.) –db (Vedere pagina 96.) –encoding (solo XSLT) (vedere pagina 97.) –field (vedere pagina 97.) nomeCampo (vedere pagina 97.) fieldname.op (vedere pagina 98.) –grammar (solo XSLT) (vedere pagina 99.) –lay (vedere pagina 99.) –lay.response (vedere pagina 99.) –lop (vedere pagina 100.) –max (vedere pagina 100.) –modid (vedere pagina 100.) –query (vedere pagina 100.) –recid (vedere pagina 101.) –relatedsets.filter (vedere pagina 102.) –relatedsets.max (vedere pagina 102.) –script (vedere pagina 103.) –script.param (vedere pagina 103.) –script.prefind (vedere pagina 103.) –script.prefind.param (vedere pagina 103.) –script.presort (vedere pagina 104.) –script.presort.param (vedere pagina 104.) –skip (vedere pagina 105.) –sortfield.[1-9] (vedere pagina 105.) –sortorder.[1-9] (vedere pagina 105.) –stylehref (vedere pagina 106.) –styletype (vedere pagina 106.) –token.[stringa] (solo XSLT) (vedere pagina 107.) Importante Il parametro –lay per specificare un formato è necessario con tutti i comandi delle query, tranne –dbn ames, –layoutnames, –scriptnames e–process (solo richieste XSLT). 90 Pubblicazione Web personalizzata con XML e XSLT di FileMaker Server Linee guida per l'uso dei comandi e dei parametri delle query Durante l'uso dei comandi e dei parametri delle query in una stringa di una query, tenere a mente le seguenti linee guida: 1 Una stringa di query deve contenere un solo comando query; né uno di più né uno di meno. Ad esempio, la stringa di una query può contenere –new per aggiungere un nuovo record, ma non può contenere –new and –edit nella stessa stringa. 1 Per la maggior parte dei comandi delle query sono necessari parametri di query corrispondenti nella stringa della query. Ad esempio, tutti i comandi delle query tranne –dbnames e –process necessitano del parametro –db, che specifica il database in cui eseguire la query. Consultare la tabella dei parametri necessari nella sezione "Utilizzo di stringhe query FileMaker per richiedere dati XML" a pagina 47. 1 Per i nomi dei campi e i parametri delle query specificare il valore particolare da usare, come ad esempio –db=employees. Per i comandi delle query, non specificare un segno o un valore uguale ("=") dopo il nome del comando, come ad esempio –findall. 1 I nomi dei comandi e dei parametri delle query devono essere in caratteri minuscoli, come ad esempio –delete o –lay. 1 I nomi dei database, i nomi dei formati e i nomi dei campi utilizzati nelle stringhe delle query non fanno differenza tra maiuscole e minuscole, come ad esempio –lay=mylayout per indicare MyLayout. Nota I nomi dei campi e dei database usati nelle istruzioni XSLT all'esterno delle stringhe delle query fanno differenza tra maiuscole e minuscole e devono corrispondere esattamente ai nomi effettivamente usati nel database. Ad esempio, in questa istruzione: <xsl:value-of select="fmrs:field[@name='LastName']"/> il riferimento al campo "LastName" deve corrispondere esattamente al nome del campo LastName nel database. 1 I nomi dei campi possono contenere periodi, con le seguenti eccezioni: 1 Il periodo non può essere seguito da un numero. Ad esempio, myfield.9 è un nome di campo non valido. 1 Il periodo non può essere seguito dalla stringa di testo op (dalle lettere "op"). Ad esempio, myfield.op è un nome di campo non valido. 1 Il periodo non può essere seguito dalla stringa di testo globale (la parola "globale"). Ad esempio, myfield.global è un nome di campo non valido. Non è possibile accedere attraverso XML o XSLT ai nomi dei campi che contengono queste eccezioni utilizzando una query HTTP. Questi costrutti sono riservati agli ID dei record, come descritto nella sezione "Sintassi di un nome di campo completamente qualificato," illustrata di seguito. 1 Per il comando –find, per il valore di un campo non si fa differenza tra maiuscole e minuscole. Per esempio, è possibile utilizzare Field1=Blue o Field1=blue. Per i comandi –new e –edit, le maiuscole e le minuscole utilizzate per il valore di un campo vengono mantenute e memorizzate nel database esattamente nel modo in cui sono specificate nella stringa della query. Ad esempio, LastName=Doe. Appendice A | Nomi validi usati nelle stringhe delle query 91 Guida di riferimento stringhe query FileMaker Questa release comprende un database FileMaker chiamato Guida di riferimento XSLT.fp7 che contiene brevi descrizioni ed esempi di tutti i comandi e di tutti i parametri delle query FileMaker. Questo database può trovarsi nella seguente directory su qualsiasi macchina in cui è installato FileMaker Server 9 (master o worker): Mac: /Libreria/FileMaker Server/Esempi/XSLT Windows: <unità>:\Programmi\FileMaker\FileMaker Server\Esempi\XSLT Dove: <unità> è l'unità primaria da cui viene avviato il sistema. Sintassi di un nome di campo completamente qualificato Un nome completamente qualificato identifica un'istanza esatta di un campo. Poiché i campi con nomi comuni possono essere basati su diverse tabelle, in alcuni casi è necessario utilizzare nomi completamente qualificati per evitare errori. La sintassi per specificare un nome di campo completamente qualificato è: nome-tabella::nome-campo(numero-ripetizioni).id-record dove: 1 nome-tabella è il nome della tabella che contiene il campo. Il nome della tabella è necessario solo se il campo non si trova nella tabella sottostante del formato specificato nella stringa della query. 1 nome-campo(numero-ripetizioni) è il valore specifico in un campo multiplo; è necessario soltanto per i campi multipli. Il numero di ripetizioni comincia a contare dal numero 1. Ad esempio, nome-campo(2) indica il secondo valore nel campo multiplo. Se non si specifica un numero di ripetizioni per un campo multiplo, viene utilizzato il primo valore del campo multiplo. Il numero-ripetizioni è necessario per i comandi query –new e –edit che coinvolgono campi multipli, ma non è necessario per il comando –find. 1 id-record è l'ID del record, ed è necessario soltanto se si usa una stringa di query per aggiungere o modificare record nei campi portale. Vedere le sezioni "Aggiunta di record ad un portale," and "Modifica dei record in un portale". L'Id-del record è necessario per i comandi query –new e –edit che coinvolgono campi portale, ma non è necessario per il comando –find. Nota Per poter essere accessibili, i campi devono trovarsi sul formato specificato nella stringa della query. Utilizzo dei comandi di query con campi portale Le seguenti sezioni descrivono il modi in cui i comandi di query funzionano con i campi portale. Aggiunta di record ad un portale Per aggiungere un nuovo record ad un portale mentre si aggiunge un record principale, usare il comando query –new ed eseguire le seguenti operazioni nella stringa della query per la richiesta: 1 1 1 1 Utilizzare il nome di campo completamente qualificato per il campo del portale correlato. Specificare 0 per ID record dopo il nome del campo del portale correlato. Specificare almeno uno dei campi per il record principale prima di specificare il campo del portale correlato. Specificare i dati per il campo di confronto (campo chiave) nel record principale. 92 Pubblicazione Web personalizzata con XML e XSLT di FileMaker Server Ad esempio, il seguente URL aggiunge contemporaneamente un nuovo record principale Employee per John Doe, ed un nuovo record correlato per Jane nel portale. Il nome della tabella correlata è Dependents e il nome del campo correlato nel portale è Names. Il campo di confronto, ID, memorizza il codice di un dipendente. http://192.168.123.101/fmi/xml/fmresultset.xml?–db=employees&–lay=family&FirstName=John&LastName=Doe &ID=9756&Dependents::Names.0=Jane&–new Nota Per ogni richiesta è possibile aggiungere un solo record correlato ad un portale. Modifica dei record in un portale Per modificare uno o più record in un portale, usare il comando –edit e un ID record per specificare il record principale che contiene i record del portale da modificare. Specificare il particolare record del portale da modificare utilizzando il suo ID record in un nome di campo completamente qualificato. È possibile determinare un ID record dall'attributo ID record dell'elemento <record> nell'elemento <relatedset> nei dati XML. Vedere "Utilizzo della grammatica fmsresultset" a pagina 39. Per esempio, il seguente URL modifica un record in un portale dove il record principale ha l'ID 1001. Dependents è il nome della tabella correlata, Names è il nome del campo correlato nel portale, e il 2 di Names.2 è l'ID del record di un portale. http://192.168.123.101/fmi/xml/fmresultset.xml?–db=employees&–lay=family&–recid=1001 &Dependents::Names.2=Kevin&–edit Di seguito vi è un esempio di come usare una richiesta per modificare più record di portale attraverso il record principale: http://192.168.123.101/fmi/xml/fmresultset.xml?–db=employees&–lay=family&–recid=1001 &Dependents::Names.2=Kevin&Dependents::Names.5=Susan&–edit È anche possibile utilizzare il comando –edit e specificare 0 come ID del record del portale per aggiungere un nuovo record correlato nel portale per un record principale esistente. Ad esempio: http://192.168.123.101/fmi/xml/fmresultset.xml?–db=employees&–lay=family&–recid=1001 &Dependents::Names.0=Timothy&–edit Eliminazione dei record del portale Per eliminare i record del portale, utilizzare il parametro –delete.related con il comando –edit al posto del comando –delete. Ad esempio, il seguente URL elimina il record 1001 dalla tabella dipendenti: http://192.168.123.101/fmi/xml/fmresultset.xml?–db=employees&–lay=family&–recid=1001&–delete Il seguente URL invece elimina un record del portale con un ID record 3 dalla tabella correlata dipendenti con ID record principale 1001. http://192.168.123.101/fmi/xml/fmresultset.xml?–db=employees&–lay=family&–recid=1001 &–delete.related=Dependents.3&–edit Per ulteriori informazioni, vedere "parametro query –delete.related (Elimina record portale)" a pagina 97. Interrogazione dei campi del portale In una soluzione con molti record correlati, l'interrogazione e l'ordinamento dei record del portale potrebbe richiedere molto tempo. Per limitare il numero di record e di righe da visualizzare nel set correlato, utilizzare i parametri –relatedsets.filter e–rrelatedsets.max con richieste di ricerca. Per ulteriori informazioni, vedere "Parametro query–relatedsets.filter (Filtra record portale)" a pagina 102 e "Parametro query –relatedsets.max (Limita record portale)" a pagina 102. Appendice A | Nomi validi usati nelle stringhe delle query 93 Sintassi per specificare un campo globale La sintassi per specificare un campo globale è: nome-tabella::nome-campo(numero-ripetizioni).globale dove globale identifica un campo che usa la memorizzazione globale. Per informazioni su nome-tabella e nome-campo(numero-ripetizioni), vedere "Sintassi di un nome di campo completamente qualificato" a pagina 91. Per informazioni sui campi globali, vedere la Guida di FileMaker Pro. È necessario usare la sintassi .global per identificare un campo globale in una stringa di query. Il Motore per la Pubblicazione Web imposta i valori dei parametri per i campi globali prima di eseguire il comando della query o impostare qualsiasi altro valore di parametro nella stringa della query. Per le richieste XML dirette e le richieste effettuate tramite fogli di stile XSLT che non usano le sessioni, i valori globali scadono immediatamente dopo l'invio della richiesta. Per le richieste inviate attraverso un foglio di stile XSLT che usa le sessioni, i valori globali rimangono validi per la durata della sessione definita nel foglio di stile, o finché non vengono nuovamente cambiati con un'altra richiesta. Se non si usa la sintassi .global per identificare un campo globale in una stringa di query, il Motore per la Pubblicazione Web valuta il campo globale insieme con il resto della stringa di query senza impostare prima il valore del campo globale. Ad esempio: http://192.168.123.101/fmi/xml/fmresultset.xml?–db=employees&–lay=departments &Country.global=USA&–recid=1&–edit Importante Se si sta usando un campo globale in un foglio di stile XSLT, utilizzare Admin Console per attivare l'opzione Sessioni di database XSLT del Motore per la Pubblicazione Web. In caso contrario i valori dei campi globali non vengono mantenuti tra le richieste. Vedere la Guida di FileMaker Server. Riferimento comando query Questa sezione contiene informazioni sui comandi delle query disponibili per i fogli di stile XML e XSLT. Nota Soltanto per le richieste XSLT, tutti i seguenti comandi query richiedono il parametro di query –grammar. Comando query –dbnames (Nomi database) Recupera i nomi di tutti i database ospitati da FileMaker Server e attivati per la Pubblicazione Web personalizzata con XML o XSLT. Parametri query richiesti: (nessuno) Esempio: Per recuperare i nomi dei database: http://192.168.123.101/fmi/xml/fmresultset.xml?–dbnames Comando query –delete (Elimina record) Elimina il record specificato dal parametro –recid Parametri query richiesti: –db, –lay, –recid Parametro query opzionale: –script Esempio: Per eliminare un record: http://192.168.123.101/fmi/xml/fmresultset.xml?–db=employees&–lay=departments&–recid=4&–delete 94 Pubblicazione Web personalizzata con XML e XSLT di FileMaker Server Comando query –dup (Duplica il record) Duplica il record specificato da –recid Parametri query richiesti: –db, –lay, –recid Parametro query opzionale: –script Esempio: Per duplicare il record specificato: http://192.168.123.101/fmi/xml/fmresultset.xml?–db=employees&–lay=departments&–recid=14&–dup Comando query –edit (Modifica il record) Aggiorna il record specificato dal parametro –recid, popolando i campi con il contenuto di qualsiasi coppia nome/valore campo. Il parametro –recid indica il record da modificare. Parametri query richiesti: –db, –lay, –recid uno o più nomi di campo Parametro query opzionale: –modid, –script Nota Per informazioni su come modificare i record di un portale, vedere "Modifica dei record in un portale" a pagina 92. Esempio: Per modificare un record: http://192.168.123.101/fmi/xml/fmresultset.xml?–db=employees&–lay=departments&–recid=13&Country=USA&–edit –find, –findall o –findany (record Trova) comandi della query Invia una richiesta di ricerca utilizzando determinati criteri Parametri query richiesti: –db, –lay Parametri query opzionali: –recid, –lop, –op, –max, –skip, –sortorder, –sortfield, –script, –script.prefind, –script.presort, nome campo Esempi: Per trovare un record in base al nome del campo: http://192.168.123.101/fmi/xml/fmresultset.xml?–db=employees&–lay=family&Country=USA&–find Nota Non è possibile indicare più volte un campo in una singola richiesta; FileMaker Server analizza tutti i valori, ma usa solo l'ultimo valore analizzato. Per trovare un record in base all'ID: http://192.168.123.101/fmi/xml/fmresultset.xml?–db=employees&–lay=family&–recid=427&–find Per trovare tutti i record del database, utilizzare –findall: http://192.168.123.101/fmi/xml/fmresultset.xml?–db=employees&–lay=family&–findall Per trovare un record a caso, utilizzare –findany: http://192.168.123.101/fmi/xml/fmresultset.xml?–db=employees&–lay=family&–findany Appendice A | Nomi validi usati nelle stringhe delle query 95 Comando query –findquery (ricerca composta) Invia una richiesta di ricerca utilizzando più richieste di ricerca e richieste Ometti record. Parametri query richiesti: –db, –lay, –query Parametri di query opzionali: –max, –skip, –sortorder, –sortfield, –script, –script.prefind, –script.presort Esempio: Ricercare i record per i gatti e i cani che non hanno il nome "Fluffy". http://host/fmi/xml/fmresultset.xml?–db=vetclinic&–lay=animals&–query=(q1);(q2);!(q3) &–q1=typeofanimal&–q1.value=Cat&–q2=typeofanimal&–q2.value=Dog&–q3=name&–q3.value=Fluffy&–findquery Usando il comando -findquery per le ricerche composte Un'istruzione –findquery è costituita da questo parti nel seguente ordine: 1 Parametro –query 1 Dichiarazioni di richiesta query, costituite dalle dichiarazioni dell'identificativo di query e dalle operazioni della richiesta. 1 Definizioni del valore e del campo di ricerca per tutti gli identificativi delle query. 1 Comando –findquery, alla fine dell'istruzione completa. Per ulteriori informazioni sull'utilizzo del parametro –query, vedere "Parametro query –query (richiesta di ricerca composta)" a pagina 100. Comando query –layoutnames (Nomi formati) Recupera i nomi di tutti i formati disponibili per un database specificato ospitato da FileMaker Server e attivato per la Pubblicazione Web personalizzata con XML o XSLT. Parametri query richiesti: –db Esempio: Per recuperare i nomi dei formati disponibili: http://192.168.123.101/fmi/xml/fmresultset.xml?–db=employees&–layoutnames Comando query –new (Nuovo record) Crea un nuovo record e lo popola con il contenuto di qualsiasi coppia nome/valore campo. Parametri query richiesti: –db, –lay Parametro query opzionale: uno o più nomi di campo, –script Nota Per informazioni su come aggiungere nuovi dati in un portale vedere "Aggiunta di record ad un portale" a pagina 91. Esempio: Per aggiungere un nuovo record: http://192.168.123.101/fmi/xml/fmresultset.xml?–db=employees&–lay=departments&Country=Australia&–new 96 Pubblicazione Web personalizzata con XML e XSLT di FileMaker Server –process (Elabora fogli di stile XSLT) Elabora un foglio di stile XSLT senza richiedere dati dal database. Questo comando query può essere utilizzato soltanto con i fogli di stile XSLT. Parametro query richiesto: –grammar. necessario utilizzare la grammatica fmresultset o FMPXMLRESULT. Esempio: http://192.168.123.101/fmi/xsl/my_template/my_stylesheet.xsl?–grammar=fmresultset&–process Vedere "Elaborazione di richieste XSLT che non eseguono query su FileMaker Server" a pagina 61. Comando query –scriptnames (Nomi di script) Recupera i nomi di tutti gli script disponibili per un determinato database ospitato da FileMaker Server e attivato per la Pubblicazione Web personalizzata con XML o XSLT. Parametri query richiesti: –db Esempio: Per recuperare i nomi di tutti gli script: http://192.168.123.101/fmi/xml/fmresultset.xml?–db=employees&–scriptnames Comando query –view (Visualizza le informazioni sul formato) Se è specificata la grammatica FMPXMLLAYOUT, recupera le informazioni sul formato da un database e le visualizza nella grammatica FMPXMLLAYOUT. Se è stata specificata una grammatica di dati (fmresultset or FMPXMLRESULT), recupera la sezione di metadati del documento XML e un set di record vuoto. Parametri query richiesti: –db, –lay Parametro query opzionale: –script Esempi: Per recuperare informazioni sul formato: http://192.168.123.101/fmi/xml/FMPXMLLAYOUT.xml?–db=employees&–lay=departments&–view Per recuperare informazioni sui metadati: http://192.168.123.101/fmi/xml/fmresultset.xml?–db=employees&–lay=departments&–view Riferimento parametro query Questa sezione contiene informazioni sui parametri delle query disponibili per le richieste XML e XSLT. Per informazioni sui parametri disponibili soltanto per le richieste XSLT, vedere "Utilizzo di stringhe di query nei fogli di stile XSLT FileMaker" a pagina 57. Parametro query –db (Nome database) Specifica il database a cui è applicato il comando della query Valore: nome del database, non comprende l'eventuale estensione del nome del file Nota Per specificare il nome del database per il parametro –db nelle stringhe delle query, non comprendere l'estensione del nome del file. Il nome effettivo del database può includere un'estensione; tuttavia le estensioni non sono consentite come valori per il parametro –db. Obbligatorio con: tutti i comandi delle query tranne –dbnames e –process Esempio: http://192.168.123.101/fmi/xml/fmresultset.xml?–db=employees&–lay=departments&–findall Appendice A | Nomi validi usati nelle stringhe delle query 97 parametro query –delete.related (Elimina record portale) Elimina un record dal un campo del portale. Opzionale con: Comando query –edit Richiede: un nome tabella correlato e un id record Esempio: Nell'esempio seguente viene eliminato un record del portale con ID 20 dalla tabella correlata jobtable, con un ID record principale 7. http://host/fmi/xml/fmresultset.xml?–db=career&–lay=applications&–recid=7&–delete.related=jobtable.20&–edit Parametro query –encoding (Codifica richiesta XSLT) Specifica la codifica del testo per una richiesta XSLT. Questo comando di query può essere utilizzato soltanto con la Pubblicazione Web personalizzata con richieste XSLT. Valore: US-ASCII, ISO-8859-1, ISO-8859-15, ISO-2022-JP, Shift_JIS, or UTF-8 Opzionale con: tutti i comandi delle query in una richiesta XSLT Esempio: http://192.168.123.101/fmi/xsl/my_template/my_stylesheet.xsl?–db=employees&–lay=departments &–grammar=fmresultset&–encoding=Shift_JIS&–findall Vedere "Impostazioni della codifica di testo per le richieste" a pagina 59. Parametro query –field (Nome campo Contenitore) Specifica il nome di un campo Contenitore. Obbligatorio con: richiesta di dati in un campo Contenitore Vedere "Sintassi URL per oggetti Contenitore FileMaker in soluzioni XML" a pagina 37, e "Sintassi URL per oggetti Contenitore FileMaker in soluzioni XSLT" a pagina 56. Parametro query nome campo (Nome campo non Contenitore) I nomi dei campi sono utilizzati per controllare i criteri del comando query –find o per modificare il contenuto di un record. Per specificare un valore per un campo non Contenitore per un comando o un parametro di query, usare il nome del campo senza il trattino (–) come porzione del nome della coppia nome/valore. Nome: nome del campo nel database FileMaker. Se il campo non è nella tabella sottostante del formato specificata nella stringa della query, è necessario qualificare completamente il nome del campo. I nomi dei campi possono contenere periodi, con le seguenti eccezioni: 1 Il periodo non può essere seguito da un numero. Ad esempio, myfield.9 è un nome di campo non valido. 1 Il periodo non può essere seguito dalla stringa di testo op (dalle lettere "op"). Ad esempio, myfield.op è un nome di campo non valido. 1 Il periodo non può essere seguito dalla stringa di testo globale (la parola "globale"). Ad esempio, myfield.global è un nome di campo non valido. non è possibile accedere attraverso XML o XSLT ai nomi dei campi che contengono queste eccezioni utilizzando una query HTTP. Questi costrutti sono riservati agli ID dei record, come descritto nella sezione "Sintassi di un nome di campo completamente qualificato" a pagina 91. 98 Pubblicazione Web personalizzata con XML e XSLT di FileMaker Server Valore: per i comandi –new e –edit, specificare il valore da memorizzare nel campo nel record corrente. Per i comandi query –find, specificare il valore da ricercare nel campo. I valori dei campi data, ora o indicatore data e ora devono essere indicati in formato "fm", indipendentemente dal tipo di campo. I formati "fm" sono MM/gg/aaaa per la data, HH:mm:ss per l'ora e MM/gg/aaaa HH:mm:ss per l'Indicatore data e ora. Obbligatorio con: Comando query –edit Opzionale con: Comandi query –new e –find Esempio: http://192.168.123.101/fmi/xml/fmresultset.xml?–db=employees&–lay=departments&–op=eq&FirstName=Sam &–max=1&–find Nota Non è possibile indicare più volte un campo in una singola richiesta; FileMaker Server analizza tutti i valori, ma usa solo l'ultimo valore analizzato. parametro query fieldname.op (Operatore di confronto) Specifica l'operatore di confronto da applicare al nome del campo che precede l'operatore. Gli operatori di confronto sono usati con il comando di query –find. Valore: l'operatore che si desidera utilizzare. L'operatore predefinito è "inizia con". Gli operatori validi sono: Parola chiave Operatore FileMaker Pro equivalente eq =parola cn *parola* bw parola* ew *parola gt > parola gte >=parola lt < parola lte <=parola neq omit, parola Opzionale con: Comando query –find Richiede: un valore e un nome di campo La sintassi per specificare un operatore di confronto è: nome-tabella::nome-campo=nome-valore&tabella::nome-campo.op=simbolo-op dove: 1 nome-tabella è la tabella che contiene il campo; è necessario soltanto se il campo non si trova nella tabella di origine del formato specificato nella stringa della query. 1 op-symbol è una delle parole chiave nella tabella precedente, come ad esempio cn. Esempio: http://192.168.123.101/fmi/xml/fmresultset.xml?–db=employees&–lay=departments&name=Tim&name.op=cn&–find È possibile usare qualsiasi operatore di ricerca FileMaker Pro specificando la parola chiave bw. Ad esempio, per trovare una serie di valori usando l'operatore di intervallo (...), si deve specificare la parola chiave bw e mettere i caratteri "..." prima del criterio di ricerca. Appendice A | Nomi validi usati nelle stringhe delle query 99 Esempio: http://192.168.123.101/fmi/xml/fmresultset.xml?–db=employees&–lay=departments&IDnum=915...925&IDnum.op=bw &–find Per ulteriori informazioni sugli operatori che è possibile usare per trovare il testo, vedere la Guida di FileMaker Pro. Parametro query –grammar (Grammatica per fogli di stile XSLT) Specifica la grammatica da usare per un foglio di stile XSLT. Questo comando di query può essere utilizzato soltanto con la Pubblicazione Web personalizzata con richieste XSLT. Valore: fmresultset, FMPXMLRESULT o FMPXMLLAYOUT Obbligatorio con: tutte le richieste XSLT Esempio: http://192.168.123.101/fmi/xsl/my_template/my_stylesheet.xsl?–grammar=fmresultset&–db=mydatabase &–lay=mylayout&–findall Vedere "Specifica di una grammatica XML per un foglio di stile XSLT FileMaker" a pagina 57. Parametro query –lay (Formato) Specifica il formato di database da utilizzare. Valore: nome del formato Obbligatorio con: Tutti i comandi di query eccetto –dbnames, –layoutnames, –scriptnames e –process (solo richieste XSLT). Esempio: http://192.168.123.101/fmi/xml/fmresultset.xml?–db=employees&–lay=departments&–view Parametro query –lay.response (Applicazione del formato per la risposta) Specifica che FileMaker Server deve usare il formato specificato dal parametro –lay per l'elaborazione di una richiesta e applicare il formato specificato dal parametro –lay.response per l'elaborazione della risposta XML. Se non si include il parametro –lay.response, FileMaker Server usa il formato specificato dal parametro –lay durante l'elaborazione simultanea della richiesta e della risposta. È possibile usare il parametro –lay.response sia per le richieste XML sia per le richieste di fogli di lavoro XSLT. Valore: nome del formato Opzionale con: tutti i comandi di query eccetto –dbnames, –layoutnames, –scriptnames e –process (solo richieste XSLT) Esempio: http://192.168.123.101/fmi/xml/fmresultset.xml?–db=employees&–lay=Budget&Salary=100000&Salary.op=gt&–find &–lay.response=ExecList 100 Pubblicazione Web personalizzata con XML e XSLT di FileMaker Server Parametro query –lop (Operatore logico) Specifica il modo in cui i criteri di ricerca nel comando di query –find sono combinati come ricerca "and" oppure "or". Valore: and o or (devono essere scritti in minuscolo). Se il parametro query –lop non è compreso, il comando query –find usa il valore and. Opzionale con: Comando query –find Nota Non supportato dal comando query -findquery. Esempio: http://192.168.123.101/fmi/xml/fmresultset.xml?–db=employees&–lay=departments&Last+Name=Smith &Birthdate=2/5/1972&–lop=and&–find Parametro query –max (Record max) Specifica il numero massimo di record da restituire. Valore: un numero, oppure usare il valore all per fare in modo che vengano restituiti tutti i record. Il valore all deve essere specificato in minuscolo. Se –max non è specificato, vengono restituiti tutti i record. Opzionale con: Comandi query –find, –findall e -findquery Esempi: http://192.168.123.101/fmi/xml/fmresultset.xml?–db=employees&–lay=departments&–max=10&–findall http://192.168.123.101/fmi/xml/fmresultset.xml?–db=employees&–lay=departments&–max=all&–findall Parametro query –modid (ID modifica) L'ID modifica è un contatore incrementale che specifica la versione corrente di un record. Specificando un ID modifica quando si usa una comando query –edit, è possibile essere certi di modificare la versione corrente di un record. Se il valore ID modifica specificato non corrisponde al valore ID modifica corrente del database, il comando query –edit non viene accettato e viene restituito un codice di errore. Valore: un ID modifica, che è un identificatore univoco della versione corrente di un record in un database FileMaker. Opzionale con: Comando query –edit Richiede: Parametro –recid Esempio: http://192.168.123.101/fmi/xml/fmresultset.xml?–db=employees&–lay=departments&–recid=22&–modid=6 &last_name=Jones&–edit Parametro query –query (richiesta di ricerca composta) Specifica i nomi delle query e i criteri di ricerca per una richiesta di ricerca composta. Vedere "Comando query –findquery (ricerca composta)" a pagina 95. Valore: una espressione query. Obbligatorio con: comando query –findquery La sintassi per una richiesta di ricerca composta è: –query=<dichiarazione-richiesta><definizioni-richiesta>&–findquery Dove: <dichiarazione-richiesta> è per due o più dichiarazioni di richiesta. Appendice A | Nomi validi usati nelle stringhe delle query 101 1 Ogni dichiarazione di richiesta è costituita da uno o più identificativi di query separati da virgole e racchiusi tra parentesi. Un identificativo di query è la lettera "q" seguita da un numero. Ad esempio: q1 1 Racchiuse tra parentesi, più query funzionano come ricerche AND logiche che restringono il gruppo trovato. Ad esempio, (q1, q2) restituisce i record che corrispondono a q1 e q2. 1 Come per FileMaker Pro, ogni richiesta può essere una richiesta di ricerca oppure una richiesta di omissione. Una richiesta di ricerca aggiunge i record corrispondenti al gruppo trovato; una richiesta di omissione elimina i record corrispondenti dal gruppo trovato. L'impostazione predefinita è una richiesta di ricerca. Per una richiesta Ometti, inserire un punto esclamativo (!) davanti alla parentesi di apertura. Ad esempio: (q1);!(q2) In questo esempio q1 è una richiesta di ricerca; q2 è una richiesta di omissione perché è preceduta da un punto esclamativo. 1 Le richieste sono separate da punti e virgola. Più ricerche di richiesta funzionano come ricerche OR logiche che ampliano il gruppo trovato. Ad esempio, (q1);(q2) restituisce i record che corrispondono a q1 or q2. Le richieste Ometti non funzionano come ricerche logiche OR dato che le richieste Ometti rimuovono i record dal gruppo trovato. 1 Le richieste vengono eseguite nell'ordine specificato; il gruppo trovato comprende i risultati di tutte le richieste di ricerca composte. <definizioni-richiesta> è una definizione di richiesta per ogni dichiarazione di richiesta. Ogni definizione di richiesta è costituita da un campo di ricerca e da una definizione del valore. Il segno meno (–) avvia la definizione di richiesta. Sintassi: –<query-id>=<fieldname>&–<query-id>.value=<value> Ad esempio: –q1=typeofanimal&–q1.value=Cat –q2=name&–q2.value=Fluffy Esempio: Ricercare i record per i gatti grigi che non hanno il nome "Fluffy". http://host/fmi/xml/fmresultset.xml?–db=clinicaanimali&–lay=Pazienti&–query=(q1, q2);!(q3)&–q1=typeofanimal &–q1.value=Cat&–q2=color&–q2.value=Gray&–q3=name&–q3.value=Fluffy&–findquery Parametro query –recid (ID record) Specifica il record che si desidera elaborare. È utilizzato principalmente dai comandi query –edit e –delete. Utilizzato dal comando –view per recuperare i dati della lista valori correlata nella grammatica FMPXMLLAYOUT. Valore: l'ID di un record, cioè l'indicatore univoco del record in un database FileMaker Pro Obbligatorio con: Comandi query –edit, –delete, e –dup Opzionale con: Query –find e comandi –view Esempio 1: http://192.168.123.101/fmi/xml/fmresultset.xml?–db=employees&–lay=departments&–recid=22&–delete Esempio 2: http://localhost/fmi/xml/FMPXMLLAYOUT.xml?–db=test&–lay=empty&–view&–recid=9 102 Pubblicazione Web personalizzata con XML e XSLT di FileMaker Server Parametro query–relatedsets.filter (Filtra record portale) Specifica se filtrare le righe restituite per le query che utilizzano i campi del portale. Valore: formato oppure nessuno 1 Il valore predefinito è nessuno se questo parametro non è indicato. 1 Se nella query viene indicato formato, vengono rispettate le impostazioni indicate nella finestra dialogo Impostazione portale di FileMaker. I record sono ordinati in base all'ordinamento definito nella finestra di dialogo Impostazione portale, con il set di record filtrato per partire con la riga iniziale specificata. 1 Se l'impostazione Mostra la barra di scorrimento verticale è abilitata nella finestra di dialogo Impostazione portale, si può utilizzare l'opzione –relatedsets.max per specificare il numero massimo delle righe da restituire nella risposta alla query. 1 Se l'impostazione Mostra la barra di scorrimento verticale è disabilitata, l'impostazione Numero di righe della finestra di dialogo di Impostazione portale di FileMaker Pro determina il numero di righe da visualizzare. 1 Se –relatedsets.filter è impostato su nessuno, quindi il Motore per la Pubblicazione Web restituisce tutte le righe del portale e i record del portale che non sono preordinati. Opzionale con: –find, –edit, –new, –dup e –findquery. Esempi: http://localhost/fmi/xml/fmresultset.xml?–db=FMPHP_Sample&–lay=English&–relatedsets.filter=none&–findany http://localhost/fmi/xml/fmresultset.xml?–db=FMPHP_Sample&–lay=English&relatedsets.filter=layout &–relatedsets.max=all&–findany http://localhost/fmi/xml/fmresultset.xml?–db=FMPHP_Sample&–lay=English&–relatedsets.filter=layout &–relatedsets.max=10&–findany Parametro query –relatedsets.max (Limita record portale) Specifica il numero massimo di righe da restituire nei risultati della query. Valore: intero o tutti. 1 Se nella query viene indicato un numero intero, il Motore per la Pubblicazione Web restituisce un numero di righe pari a quel numero a partire dalla riga iniziale. 1 Se nella query viene indicato tutto, il Motore per la Pubblicazione Web restituisce tutti i record correlati. 1 Se nella query non viene indicato il parametro –relatedsets.max, il numero di righe è determinato dal valore indicato dal parametro –relatedsets.filter. Vedere "Parametro query–relatedsets.filter (Filtra record portale)" a pagina 102. Opzionale con: –find, –edit, –new, –dup e –findquery. Esempi: http://localhost/fmi/xml/fmresultset.xml?–db=FMPHP_Sample&–lay=English&relatedsets.filter=layout &–relatedsets.max=all&–findany http://localhost/fmi/xml/fmresultset.xml?–db=FMPHP_Sample&–lay=English&–relatedsets.filter=layout &–relatedsets.max=10&–findany Appendice A | Nomi validi usati nelle stringhe delle query 103 Parametro query –script (Script) Specifica lo script FileMaker da eseguire dopo l'esecuzione del comando della query e l'ordinamento. Vedere "Elaborazione delle richieste XML" a pagina 50. Valore: nome script Opzionale con: tutti i comandi query eccetto –dbnames, –layoutnames, –process e –scriptnames Esempio: http://192.168.123.101/fmi/xml/fmresultset.xml?–db=employees&–lay=departments&–script=myscript&–findall Parametro query –script.param (Trasferisci parametro a script) Trasferisce un parametro allo script FileMaker indicato da –script. Valore: un solo parametro di testo. 1 Per trasferire più parametri, è possibile creare una stringa che delimita i parametri e fare in modo che lo script analizzi il singolo parametro. Ad esempio, trasferire "param1|param2|param3" come lista con il "|" carattere URL-codificato come segue: param1 %7Cparam2 %7Cparam3. 1 Per trattare il parametro di testo come valore che non sia testo, lo script può convertire il valore del testo. Ad esempio, per convertire il valore di testo in un numero, lo script potrebbe comprendere i seguenti elementi: RicavaComeNumero(Get(ParametroScript)). 1 Se la query contiene –script.param senza –script, –script.param viene ignorato. 1 Se la query contiene più di un –script.param, il Motore per la Pubblicazione Web utilizza l'ultimo valore analizzato. Opzionale con: –script Esempio: http://192.168.123.101/fmi/xml/fmresultset.xml?–db=employees&–lay=departments&–script=myscript &–script.param=Smith%7CChatterjee%7CSu&–findall Parametro query –script.prefind (Script prima di trovare) Specifica lo script FileMaker da eseguire prima della ricerca e dell'ordinamento dei record (se specificati) durante l'elaborazione del comando query –find. Valore: nome script Opzionale con: tutti i comandi query eccetto –dbnames, –layoutnames, –process e –scriptnames Esempio: http://192.168.123.101/fmi/xml/fmresultset.xml?–db=employees&–lay=departments&–script.prefind=myscript&–findall Parametro query –script.prefind.param (Trasefrisci parametro a Script prima di trovare) Trasferisce un parametro allo script FileMaker indicato da –script.prefind. Valore: un solo parametro di testo. 104 Pubblicazione Web personalizzata con XML e XSLT di FileMaker Server 1 Per trasferire più parametri, è possibile creare una stringa che delimita i parametri e fare in modo che lo script analizzi il singolo parametro. Ad esempio, trasferire "param1|param2|param3" come lista con il "|" carattere URL-codificato come segue: param1 %7Cparam2 %7Cparam3. 1 Per trattare il parametro di testo come valore che non sia testo, lo script può convertire il valore del testo. Ad esempio, per convertire il valore di testo in un numero, lo script potrebbe comprendere i seguenti elementi: RicavaComeNumero(Get(ParametroScript)). 1 Se la query contiene –script.prefind.param senza –script.prefind, –script.prefind.param viene ignorato. 1 Se la query contiene più di un –script.prefind.param, il Motore per la Pubblicazione Web utilizza l'ultimo valore analizzato. Opzionale con: –script.prefind Esempio: http://192.168.123.101/fmi/xml/fmresultset.xml?–db=employees&–lay=departments&–script.prefind=myscript &–script.prefind.param=payroll&–findall Parametro query –script.presort (Script prima di ordinare) Specifica lo script FileMaker da eseguire dopo la ricerca dei record (se specificata) e prima dell'ordinamento dei record durante l'elaborazione del comando query –find Opzionale con: tutti i comandi query eccetto –dbnames, –layoutnames, –process e –scriptnames Esempio: http://192.168.123.101/fmi/xml/fmresultset.xml?–db=employees&–lay=departments&–script.presort=myscript &–sortfield.1=dept&–sortfield.2=rating&–findall Parametro query –script.presort.param (Trasefrisci parametro a Script prima di ordinare) Trasferisce un parametro allo script FileMaker indicato da –script.presort Valore: un solo parametro di testo. 1 Per trasferire più parametri, è possibile creare una stringa che delimita i parametri e fare in modo che lo script analizzi il singolo parametro. Ad esempio, trasferire "param1|param2|param3" come lista con il "|" carattere URL-codificato come segue: param1 %7Cparam2 %7Cparam3. 1 Per trattare il parametro di testo come valore che non sia testo, lo script può convertire il valore del testo. Ad esempio, per convertire il valore di testo in un numero, lo script potrebbe comprendere i seguenti elementi: RicavaComeNumero(Get(ParametroScript)). 1 Se la query contiene –script.presort.param senza –script.presort, –script.presort.param viene ignorato. 1 Se la query contiene più di un –script.presort.param, il Motore per la Pubblicazione Web utilizza l'ultimo valore analizzato. Opzionale con: –script.presort Esempio: http://192.168.123.101/fmi/xml/fmresultset.xml?–db=employees&–lay=departments&–script.presort=myscript &–script.presort.param=18 %7C65&–sortfield.1=dept&–sortfield.2=rating&–findall Appendice A | Nomi validi usati nelle stringhe delle query 105 Parametro query –skip (Salta record) Specifica quanti record devono essere saltati nel gruppo trovato. Valore: un numero. Se il valore è maggiore del numero di record nel gruppo trovato, non viene visualizzato nessun record. Il valore predefinito è 0. Opzionale con: Comando query –find Nell'esempio che segue, i primi 10 record nel gruppo trovato vengono saltati e vengono restituiti i record da 11 a 15. Esempio: http://192.168.123.101/fmi/xml/fmresultset.xml?–db=employees&–lay=departments&–skip=10&–max=5&–findall Parametro query –sortfield (Campo ordinamento) Specifica il campo da usare per l'ordinamento Valore: nome del campo Opzionale con: Comandi query –find o –findall Il parametro –sortfield può essere usato più volte per eseguire diversi ordinamenti. La sintassi per specificare la precedenza dei campi di ordinamento è: –sortfield.numeroprecedenza-nome-campo-completamente-qualificato dove numero-precedenza nel parametro query –sortfield.precedence-number è un numero (che inizia con 1) che specifica la precedenza da usare per più campi di ordinamento. Nell'esempio che segue, il campo dept viene ordinato per primo, seguito dal campo rating. Entrambi i campi vengono ordinati in ordine crescente perché il parametro query –sortorder non è specificato. Esempio: http://192.168.123.101/fmi/xml/fmresultset.xml?–db=employees&–lay=performance&–sortfield.1=dept &–sortfield.2=rating&–findall Parametro query –sortorder (Ordinamento) Indica il criterio di un ordinamento Valore: il criterio di ordinamento. Di seguito sono riportati i criteri di ordinamento validi, dove <nome-lista-valori> è il nome di una lista valori come ad esempio Personalizzata: Parola chiave Operatore FileMaker Pro equivalente ascend Ordinamento da a a z, da –10 a 10 descend Ordinamento da z a a, da 10 a –10 <nome-lista-valori> L'ordinamento usa la lista di valori associata al campo nel formato 106 Pubblicazione Web personalizzata con XML e XSLT di FileMaker Server Opzionale con: Comandi query –find o –findall Richiede: Parametro query –sortfield Il parametro query –sortorder può essere usato con il parametro –sortfield per specificare il criterio di ordinamento di più campi di ordinamento. La sintassi per specificare il criterio di ordinamento di un campo è: –sortorder.numeroprecedenza-numero=metodo-ordinamento dove: 1 numero-precedenza nel parametro –sortorder.precedence-number è un numero compreso da 1 a 9 che specifica il parametro query –sortfield a cui è applicato il parametro query –sortorder. 1 metodo-ordinamento è una delle parole chiave nella tabella precedente per specificare il criterio di ordinamento, come ad esempio ascend. Nell'esempio che segue, il criterio di ordinamento del campo di ordinamento con la precedenza più alta (dept) è crescente (ascend), e il criterio di ordinamento del campo di ordinamento con la seconda precedenza (rating) è decrescente (descend). Il numero-precedenza 2 in –sortorder.2 indica che il parametro query –sortorder.2=descend viene applicato al parametro query –sortfield.2=rating. Esempio: http://192.168.123.101/fmi/xml/fmresultset.xml?–db=employees&–lay=performance&–sortfield.1=dept &–sortorder.1=ascend&–sortfield.2=rating&–sortorder.2=descend&–findall Nota Se per un campo di ordinamento non è specificato un parametro di query –sortorder, viene usato il criterio di ordinamento predefinito, crescente. Parametro query –stylehref (HREF stile) Genera un'istruzione di elaborazione di foglio di stile XML all'interno del documento di output —impostando il valore dell'attributo href (href=/mystylesheet.css oppure href=/stylesheets/mystylesheet.xsl)—che permette di usare fogli di stile CSS o XSLT lato client con il documento XML. Il valore del parametro –stylehref deve utilizzare un percorso assoluto. Il nome del foglio di stile può essere qualsiasi nome, ma deve contenere l'estensione .css oppure .xsl. Vedere "Uso dell'elaborazione lato server e lato client dei fogli di stile" a pagina 50. Questo parametro è usato insieme al parametro –styletype. Opzionale con: tutti i comandi delle query Richiede: Parametro –styletype Esempio (si presume che il file mystylesheet.xsl si trovi nella cartella principale del software del server Web): http://192.168.123.101/fmi/xml/fmresultset.xml?–db=employees&–lay=departments&–styletype=text/xsl &–stylehref=/mystylesheet.xsl&–findall Parametro query –styletype (Tipo di stile) Genera un'istruzione di elaborazione di foglio di stile XML all'interno del documento di output — impostando il valore dell'attributo tipo (type=text/css oppure type=text/xsl)—che permette di usare fogli di stile CSS o XSLT lato client con il documento XML. Vedere "Uso dell'elaborazione lato server e lato client dei fogli di stile" a pagina 50. Questo parametro è usato insieme al parametro –stylehref. Opzionale con: tutti i comandi delle query Richiede: Parametro –stylehref Esempio (si presume che il file mystylesheet.css si trovi nella cartella principale del software del server Web): http://192.168.123.101/fmi/xml/fmresultset.xml?–db=employees&–lay=departments&–styletype=text/css &–stylehref=/mystylesheet.css&–findall Appendice A | Nomi validi usati nelle stringhe delle query 107 Parametro query –token.[stringa] (Scambio di valori tra fogli di stile XSLT) Trasferisce le eventuali informazioni definite dall'utente tra i fogli di stile XSLT senza usare sessioni o cookie. Questo parametro query può essere usato soltanto con la Pubblicazione Web personalizzata con richieste XSLT. stringa in –token.[stringa] è: qualsiasi stringa alfanumerica di qualsiasi lunghezza, eccetto gli spazi vuoti, compresi i numeri 0-9, le lettere in minuscolo dalla a alla z, le lettere in maiuscolo dalla A alla Z. Il valore di un parametro definito dall'utente è: qualsiasi stringa di caratteri con codifica URL. Opzionale con: tutte le richieste XSLT Esempio: http://192.168.123.101/fmi/xsl/template/my_stylesheet.xsl?–db=employees&–lay=departments &–grammar=fmresultset&–token.D100=Active&–findall Vedere "Utilizzo di token per scambiare informazioni tra i fogli di stile" a pagina 62. 108 Pubblicazione Web personalizzata con XML e XSLT di FileMaker Server Appendice B Codici di errore per Pubblicazione Web personalizzata Il Motore per la Pubblicazione Web supporta tre tipi di codici di errore che possono verificarsi per la Pubblicazione Web personalizzata: 1 Errori di database e stringhe query. Il Motore per la Pubblicazione Web genera un codice di errore per i database pubblicati ogni volta che si verifica una richiesta di dati XML. Vedere la sezione successiva, "Codici di errore per database FileMaker". 1 Errori del Motore per la Pubblicazione Web. Quando il Motore per la Pubblicazione Web si trova in modo di sviluppo, genera una pagina di errori specifica quando si verifica un errore nel Motore per la Pubblicazione Web stesso. Quando si trova in modo di produzione, viene visualizzato un messaggio di testo generico. Vedere "Codici di errore per il Motore per la Pubblicazione Web" a pagina 116. 1 Errori delle funzioni di estensione XSLT FileMaker. È possibile usare la funzione di estensione fmxslt:check_error_status() all'interno di un foglio di stile XSLT per controllare lo stato di errore delle funzioni di estensione quando vengono richiamate. Vedere "Codici di errore per le funzioni di estensione XSLT FileMaker" a pagina 118. Per una lista dei codici errore aggiornati, vedere la Knowledge Base FileMaker (http://www.filemaker.com/kb/). Codici di errore per database FileMaker Il Motore per la Pubblicazione Web genera un codice di errore per i database pubblicati in formato XML ogni volta che si verifica una richiesta di dati. Questo tipo di valore di codice di errore è inserito all'inizio del documento XML nell'elemento <error code> per la grammatica fmresultset, oppure nell'elemento <ERRORCODE> element per le grammatiche FMPXMLRESULT o FMPDSORESULT. Un codice di errore di 0 indica che non si è verificato nessun errore. Di seguito vi è un esempio di codice di errore di database con la grammatica fmresultset: <?xml version="1.0" encoding="UTF-8" standalone="no"?> <!DOCTYPE fmresultset PUBLIC "-//FMI//DTD fmresultset//EN" "/fmi/xml/fmresultset.dtd"> <fmresultset xmlns="http://www.filemaker.com/xml/fmresultset" version="1.0"> <error code="0"></error> Di seguito vi è un esempio di codice di errore di database con la grammatica FMPXMLRESULT: <?xml version="1.0" encoding="UTF-8" standalone="no"?> <!DOCTYPE FMPXMLRESULT PUBLIC "-//FMI//DTD FMPXMLRESULT//EN" "/fmi/xml/FMPXMLRESULT.dtd"> <fmpxmlresult xmlns="http://www.filemaker.com/fmpxmlresult"> <ERRORCODE>0</ERRORCODE> 110 Pubblicazione Web personalizzata con XML e XSLT di FileMaker Server Spetta allo sviluppatore della soluzione Pubblicazione Web personalizzata controllare il valore dell'elemento <error code> o <ERRORCODE> e gestirlo opportunamente. Il Motore per la Pubblicazione Web non gestisce gli errori di database. Codice errore Descrizione -1 Errore sconosciuto 0 Nessun errore 1 Azione annullata dall'utente 2 Errore di memoria 3 Comando non disponibile (ad esempio, sistema operativo non appropriato, modo errato e così via) 4 Comando sconosciuto 5 Comando non valido (ad esempio, un'istruzione di script Imposta campo priva di calcolo) 6 File di sola lettura 7 Memoria esaurita 8 Risultato vuoto 9 Privilegi insufficienti 10 Dati richiesti non disponibili 11 Nome non valido 12 Il nome esiste già 13 File o oggetto in uso 14 Fuori intervallo 15 Impossibile dividere per zero 16 Operazione non riuscita, nuovo tentativo richiesta (ad esempio una query dell'utente) 17 Tentativo di convertire il set di caratteri stranieri in UTF-16 non riuscito 18 Il client deve fornire le informazioni sull'account per procedere 19 La stringa contiene caratteri diversi da A-Z, a-z, 0-9 (ASCII) 20 Comando o operazione annullata dallo script attivato 100 Manca un file 101 Manca un record 102 Manca un campo 103 Manca una relazione 104 Manca uno script 105 Manca un formato 106 Manca una tabella 107 Manca un indice 108 Manca una lista valori 109 Manca un set di privilegi 110 Mancano tabelle correlate 111 Ripetizione campo non valida 112 Manca una finestra Appendice B | Codici di errore per Pubblicazione Web personalizzata Codice errore Descrizione 113 Manca una funzione 114 Manca un riferimento al file 115 Set di menu mancante 116 Oggetto del formato mancante 117 Origine dati mancante 130 File danneggiati o non presenti; reinstallarli 131 Impossibile trovare i file del supporto per la lingua (come i file modello) 200 Accesso al record negato 201 Impossibile modificare il campo 202 Accesso al campo negato 203 Nel file non c'è nessun record da stampare o la password non consente l'accesso alla stampa 204 Nessun accesso ai campi nei criteri di ordinamento 205 L'utente non dispone dei privilegi di accesso per creare nuovi record; l'importazione sovrascriverà i dati esistenti 206 L'utente non dispone del privilegio per cambiare la password o il file non è modificabile 207 L'utente non ha privilegi sufficienti per cambiare lo schema del database, oppure il file non è modificabile 208 La password non contiene abbastanza caratteri 209 La nuova password deve essere diversa da quella esistente 210 L'account utente è inattivo 211 La password è scaduta 212 Account utente e/o password non validi. Riprovare 213 Il nome utente e/o la password non esistono 214 Troppi tentativi di accesso 215 I privilegi di amministratore non possono essere duplicati 216 L'account Ospite non può essere duplicato 217 L'utente non dispone di privilegi sufficienti per modificare l'account Admin 300 File bloccato o in uso 301 Record usato da un altro utente 302 Tabella usata da un altro utente 303 Schema database usato da un altro utente 304 Formato usato da un altro utente 306 ID modifica del record non corrispondente 400 Criteri di ricerca vuoti 401 Nessun record soddisfa la richiesta 402 Il campo selezionato non è un campo di confronto per un riferimento 403 Limite massimo di record per la versione di prova di FileMaker Pro superato 404 Criterio di ordinamento non valido 405 Il numero di record specificato supera il numero di record che possono essere omessi 111 112 Pubblicazione Web personalizzata con XML e XSLT di FileMaker Server Codice errore Descrizione 406 Criteri di sostituzione/riserializzazione non validi 407 Manca uno o entrambi i campi di confronto (relazione non valida) 408 Tipo di dati associato al campo specificato non valido per questa operazione 409 Ordine di importazione non valido 410 Ordine di esportazione non valido 412 Per recuperare il file è stata usata una versione errata di FileMaker Pro 413 Tipo di campo non valido 414 Il formato non può visualizzare il risultato 415 Uno o più record correlati richiesti non sono disponibili 416 È necessaria una chiave primaria dalla tabella delle origini dati 417 Il database non è un'origine dati supportata 500 Il valore della data non soddisfa le opzioni di verifica 501 Il valore dell'ora non soddisfa le opzioni di verifica 502 Il valore del numero non soddisfa le opzioni di verifica 503 Il valore nel campo non è compreso nell'intervallo specificato nelle opzioni di verifica 504 Il valore del campo non è univoco come richiesto dalle opzioni di verifica 505 Il valore del campo non esiste nel file di database come richiesto dalle opzioni di verifica 506 Il valore nel campo non è elencato nella lista di valori specificata nelle opzioni di verifica 507 Il valore nel campo non ha superato il test del calcolo dell'opzione di verifica 508 Valore non valido immesso in modo Trova 509 Il campo richiede un valore valido 510 Valore correlato vuoto o non disponibile 511 Il valore immesso nel campo supera il numero massimo di caratteri consentiti 512 Il record è stato già modificato da un altro utente 513 Per creare un record, il record deve avere un valore in almeno un campo 600 Errore di stampa 601 La combinazione di intestazione e piè di pagina supera una pagina 602 Il corpo non rientra in una pagina per l'impostazione della colonna corrente 603 Connessione di stampa interrotta 700 Tipo di file errato per l'importazione 706 File EPSF privo di immagine di anteprima 707 Impossibile trovare traduttore per immagini 708 Impossibile importare il file. È necessario un computer a colori 709 Non è riuscita l'importazione del filmato QuickTime 710 Impossibile aggiornare il riferimento al file QuickTime. Il file di database è di sola lettura. 711 Impossibile trovare il traduttore per l'importazione 714 Operazione non consentita dai privilegi della password Appendice B | Codici di errore per Pubblicazione Web personalizzata 113 Codice errore Descrizione 715 È stato specificato un foglio di lavoro di Excel o un intervallo con nome mancante 716 Una query SQL che impiega istruzioni DELETE, INSERT o UPDATE non è consentita per l'importazione ODBC 717 Informazioni XML/XSL insufficienti per procedere con l'importazione o l'esportazione 718 Errore di analisi del file XML (da Xerces) 719 Errore di conversione XML usando XSL (da Xalan) 720 Errore durante l'esportazione; il formato desiderato non supporta i campi multipli 721 Errore sconosciuto nel parser o nel convertitore 722 Impossibile importare dati in un file che non ha campi 723 Non si dispone dell'autorizzazione per aggiungere o modificare record nella tabella di destinazione 724 Non si dispone dell'autorizzazione per aggiungere record alla tabella di destinazione 725 Non si dispone dell'autorizzazione per modificare record nella tabella di destinazione 726 Vi sono più record nel file di importazione che nella tabella di destinazione. Non tutti i record sono stati importati 727 Vi sono più record nella tabella di destinazione che nel file di importazione. Non tutti i record sono stati aggiornati 729 Errori durante l'importazione. Impossibile importare i record 730 Versione Excel non supportata. Convertire il file in formato Excel 7.0 (Excel 95), 97, 2000, XP o 2007 e riprovare. 731 Il file da importare non contiene dati 732 Questo file non può essere inserito perché contiene altri file 733 Una tabella non può essere importata in se stessa 734 I file di questo tipo non possono essere visualizzati come immagine 735 I file di questo tipo non possono essere visualizzati come immagine. Verranno inseriti e visualizzati come file 736 Vi sono troppi dati da esportare in questo formato. Sarà troncato 737 La tabella Bento che si intende importare è assente. 800 Impossibile creare il file su disco 801 Impossibile creare il file temporaneo sul disco di sistema 802 Impossibile aprire il file Questo errore può essere provocato da una o o più delle seguenti cause: 1Nome database non valido 1Il file è chiuso in FileMaker Server 1Autorizzazione non valida 803 Il file è per un singolo utente oppure non è stato possibile trovare l'host 804 Impossibile aprire il file. 805 Usare il comando Recupera 806 Impossibile aprire il file con questa versione di FileMaker Pro 807 Il file non è un file FileMaker Pro oppure è gravemente danneggiato 808 Impossibile aprire il file. I privilegi di accesso sono danneggiati 809 Il disco o il volume è pieno 810 Il disco o il volume è protetto 811 Impossibile aprire il file temporaneo come file di FileMaker Pro 114 Pubblicazione Web personalizzata con XML e XSLT di FileMaker Server Codice errore Descrizione 813 Errore di sincronizzazione del record in rete 814 Impossibile aprire i file. È già aperto il numero massimo 815 Impossibile aprire il file di riferimento 816 Impossibile convertire il file 817 Impossibile aprire il file poiché non fa parte di questa soluzione 819 Impossibile salvare una copia locale di un file remoto 820 File in fase di chiusura 821 L'host ha forzato una disconnessione 822 File FMI non trovati; reinstallare i file non presenti 823 Impossibile impostare il file su utente singolo; alcuni ospiti sono connessi 824 Il file è danneggiato o non è un file FileMaker 825 Il file non è autorizzato a fare riferimento al file protetto 900 Errore generico del modulo di gestione del controllo ortografico 901 Dizionario principale non installato 902 Impossibile avviare la Guida 903 Impossibile usare il comando in un file condiviso 904 Il comando può essere usato solo in un file che si trova in FileMaker Server 905 Non è selezionato nessun campo attivo; il comando può essere usato solo se un campo è attivo 906 Il file corrente non è condiviso; il comando può essere utilizzato solo se il file è condiviso 920 Impossibile inizializzare il modulo di gestione del controllo ortografico 921 Impossibile caricare il dizionario utente per la modifica 922 Impossibile trovare il dizionario utente 923 Il dizionario utente è di sola lettura 951 Errore imprevisto 954 Grammatica XML non supportata 955 Nessun nome per il database 956 È stato superato il numero massimo di sessioni del database 957 Conflitto tra i comandi 958 Parametro mancante nella query 959 Tecnologia di Pubblicazione Web Personalizzata disabilitata 1200 Errore di calcolo generico 1201 Troppi pochi parametri nella funzione 1202 Troppi parametri nella funzione 1203 Fine calcolo non previsto 1204 Sono previsti un numero, una costante di testo, un nome di campo o una "(" 1205 Il commento non termina con "*/" 1206 La costante di testo deve terminare con un punto interrogativo Appendice B | Codici di errore per Pubblicazione Web personalizzata 115 Codice errore Descrizione 1207 Parentesi mancante 1208 Operatore mancante, funzione non trovata o "(" non prevista 1209 Nome (come nome campo o nome formato) mancante 1210 La funzione del plug-in è già stata registrata 1211 Utilizzo della lista valori non consentito in questa funzione 1212 Qui è previsto un operatore (ad esempio, +, -, *) 1213 Questa variabile è già stata definita nella funzione Dichiara 1214 MEDIO, CONTEGGIO, ESPANSO, RICAVARIPETIZIONI, MAX, MIN, VPN, DEVST, SOMMA e RICAVARIASSUNTO: espressione trovata dove è necessario un campo solo 1215 Questo parametro è un parametro non valido per la funzione Get 1216 Solo i campi Riassunto sono consentiti come primo argomento in RICAVARIASSUNTO 1217 Il campo di separazione non è valido 1218 Impossibile valutare il numero 1219 Non è possibile usare un campo nella propria formula 1220 Il campo deve essere di tipo normale o Calcolo 1221 I dati devono essere di tipo Numero, Data, Ora o Indicatore data e ora 1222 Impossibile memorizzare il calcolo 1223 La funzione a cui si fa riferimento non è ancora implementata 1224 La funzione a cui si fa riferimento non esiste 1225 La funzione a cui si fa riferimento non è supportata in questo contesto 1400 Errore nell'inizializzazione del driver ODBC; assicurarsi che i driver del client ODBC siano installati correttamente. 1401 Allocazione ambiente fallita (ODBC) 1402 Impossibile liberare l'ambiente (ODBC) 1403 Impossibile disconnettersi (ODBC) 1404 Impossibile allocare la connessione (ODBC) 1405 Impossibile liberare la connessione ( ODBC) 1406 Controllo SQL API (ODBC) fallito 1407 Impossibile allocare l'istruzione (ODBC) 1408 Errore esteso (ODBC) 1409 Errore esteso (ODBC) 1410 Errore esteso (ODBC) 1411 Errore esteso (ODBC) 1412 Errore esteso (ODBC) 1413 Errore esteso (ODBC) 1450 L'azione richiede un'estensione dei privilegi PHP 1451 L'azione richiede che il file corrente sia remoto 1501 Errore autenticazione SMTP 1502 Connessione rifiutata da server SMTP 116 Pubblicazione Web personalizzata con XML e XSLT di FileMaker Server Codice errore Descrizione 1503 Errore SSL 1504 Il Server SMTP richiede che la connessione sia crittografata 1505 Autenticazione specificata non supportata dal server SMTP 1506 Impossibile inviare messaggio/i e-mail 1507 Impossibile accedere al server SMTP Codici di errore per il Motore per la Pubblicazione Web Quando il Motore per la Pubblicazione Web si trova in modo di sviluppo, genera una pagina di errore specifica quando si verifica un errore nel Motore per la Pubblicazione Web stesso. Gli errori di questo tipo possono essere provocati da molte cause diverse; ad esempio il Motore per la Pubblicazione Web può non essere in grado di: 1 1 1 1 1 trovare un file di foglio di stile richiesto o nidificato (attraverso <xsl:include>) eseguire il parsing di un file di foglio di stile richiesto o nidificato a causa di un errore XML nel file generare un foglio di stile dal file a causa di un errore XSLT o XPath nel file elaborare la richiesta perché la grammatica XML non è specificata correttamente nel CGI comunicare con il Web Publishing Core per recuperare i dati XML Se il Motore per la Pubblicazione Web è in modo di sviluppo, la pagina di errore per questo tipo di errore contiene un messaggio di errore e un numero di errore tra parentesi. Ad esempio: Esempio di pagina di errore quando il Motore per la Pubblicazione Web è in modo di sviluppo Appendice B | Codici di errore per Pubblicazione Web personalizzata 117 Di seguito vi è una lista parziale dei valori dei codici di errore Motore per la Pubblicazione Web: Valore del codice di errore Descrizione QUERY-ER0001 Non è stata specificata nessuna grammatica XML nel parametro di query –grammar QUERY-ER0002 "xxx" non è una grammatica XML valida per FileMaker XSLT FILE-ER0001 Impossibile trovare il foglio di stile richiesto FILE-ER0002 Impossibile trovare il file richiesto SCONOSCIUTO Si è verificato un errore imprevisto MCS-000 - MCS-600 Si è verificato un errore imprevisto MCS-601 Non è stato possibile caricare la risorsa "x" perché non sono supportate le risorse di tipo: "x" MCS-602 Impossibile trovare l'URL "x" MCS-603 La richiesta HTTP per "x" ha restituito un errore di tipo "x" MCS-604 Non è stato possibile caricare la risorsa "x" a causa di un errore imprevisto MCS-605 Non è stato possibile caricare la risorsa "x" perché il contenuto non era di tipo valido MCS-606 Non è stato possibile caricare la risorsa "x" a causa di un errore XML nel documento MCS-607 Non è stato possibile caricare la risorsa "x" a causa di un problema di autenticazione MCS-700 Si è verificato un errore imprevisto MCS-800 Si è verificato un errore imprevisto Se il Motore per la Pubblicazione Web si trova in modo di produzione, viene visualizzato il seguente messaggio di testo generico predefinito nella pagina di errore pe_server_error.html per gli errori del Motore per la Pubblicazione Web: Si è verificato un errore imprevisto durante l’uso di Pubblicazione Web personalizzata FileMaker con XSLT. Il file predefinito pe_server_error.html contiene il messaggio di testo precedente in sei lingue. Gli sviluppatori possono modificare il testo della pagina di errore pe_server_error.html per adattarla alla propria soluzione. Il file pe_server_error.html si trova nella cartella cwpe all'interno della cartella publishing-engine sull'host su cui è stato installato il Motore per la Pubblicazione Web. Per informazioni su come impostare il Motore per la Pubblicazione Web in modo di sviluppo o di produzione, vedere la Guida di FileMaker Server. 118 Pubblicazione Web personalizzata con XML e XSLT di FileMaker Server Codici di errore per le funzioni di estensione XSLT FileMaker La funzione di estensione fmxslt:check_error_status() (vedere "Controllo dello stato di errore delle funzioni di estensione" a pagina 79), restituisce uno degli errori contenuti nella seguente tabella: Valore del codice di errore Descrizione -1 Errore sconosciuto 0 Nessun errore Errori generali 10000 Nome intestazione non valido 10001 Codice stato HTTP non valido Errori di sessione 10100 Errore di sessione sconosciuto 10101 Il nome di sessione richiesto è già in uso 10102 Impossibile accedere alla sessione. È possibile che non esista 10103 La sessione è scaduta 10104 L'oggetto della sessione specificato non esiste Errori di messaggi 10200 Errore di messaggio sconosciuto 10201 Errore di formattazione del messaggio 10202 Errore campi SMTP messaggio 10203 Errore campo "A" messaggio 10204 Errore campo "Da" messaggio 10205 Errore campo "CC" messaggio 10206 Errore campo "BCC" messaggio 10207 Errore campo "Oggetto" messaggio 10208 Errore campo "Rispondi" messaggio 10209 Errore corpo messaggio 10210 Errore di invio ricorsivo. È stato effettuato un tentativo di richiamare send_email() all'interno di un foglio di stile XSLT 10211 Errore autenticazione SMTP. Accesso non riuscito oppure tipo di autenticazione fornito non corretto 10212 Uso non valido della funzione. È stato effettuato un tentativo di richiamare set_header(), set_status_code() oppure set_cookie() all'interno di un foglio di stile XSLT e-mail 10213 Il server SMTP non è valido o non è in funzione. Errori di formattazione 10300 Errore formattazione sconosciuta 10301 Formato data/ora non valido Appendice B | Codici di errore per Pubblicazione Web personalizzata Valore del codice di errore Descrizione 10302 Formato data non valido 10303 Formato ora non valido 10304 Formato giorno non valido 10305 Stringa data/ora formattata in modo non corretto 10306 Stringa data formattata in modo non corretto 10307 Stringa ora formattata in modo non corretto 10308 Stringa giorno formattata in modo non corretto 10309 Codifica testo non supportata 10310 Codifica URL non valida 10311 Errore modello espressione regolare 119 120 Pubblicazione Web personalizzata con XML e XSLT di FileMaker Server Indice A account e privilegi Account Ospite 20 attivazione per Pubblicazione Web personalizzata 19 script 22 Account Ospite attivazione 20 con Pubblicazione Web personalizzata 20 disattivazione 20 Admin Console di FileMaker Server 35 Admin Console per il Motore per la Pubblicazione Web 35 applicazione di formati per una risposta XML 49 attivazione di Pubblicazione Web personalizzata in un database 19 attributo del metodo, elemento <xsl:output> 60 Autenticazione di base per utenti Web 19, 64 autenticazione di utenti Web 19 fondamentali 64 password 65 auto-enter, attributo 41 B break_encode(), funzione di estensione 73 browser Web ricezione dell'output 12 ruolo nelle richieste XML 34 ruolo nelle richieste XSLT-CWP 26 buffering del contenuto, utilizzo 66 buffering, utilizzo nei fogli di stile 66 C campi Contenitore in che modo gli utenti Web accedono ai dati 22 pubblicazione del contenuto di 21, 30 sintassi URL per accedere a soluzioni XSLT 56 URL, sintassi per l'accesso a soluzioni XML 37 campi globali sessioni del database, attivazione 69, 93 sintassi di 93 utilizzo con le sessioni 69, 93 caratteri ASCII, in documenti XML 47 caricamento di altri documenti 65 cartella dei modelli xslt 27, 30, 65 cartella Registri 86 cartella Web, copia degli oggetti campo Contenitore 21 caselle di controllo, controllo dei valori 74 check_error_status(), funzione di estensione 79, 118 codici errore database 39 codifica dati XML 38, 47 fogli di stile XSLT 61 output attraverso l'elemento <xsl:output> 60 Parametro query –encoding 59, 97 richieste 60 URL 37, 67 utilizzo funzioni di estensione per manipolazione stringhe 73 codifica ISO-2022-JP 60 codifica ISO-8859-1 60 codifica ISO-8859-15 60 codifica Shift_JIS 60 codifica testo dati XML generati 38 impostazioni di codifica 60 impostazioni predefinite iniziali 60 impostazioni predefinite per pagine di output e richieste 60 Parametro query –encoding 59, 97 per richieste XSLT 59 URL 37, 67 utilizzo funzioni di estensione per manipolazione stringhe 73 codifica US-ASCII 60 comandi per le query. Vedere stringhe di query Comando query –dbnames 93 Comando query –delete 93 Comando query –dup 94 Comando query –edit 94 Comando query –find 94 Comando query –findall 94 Comando query –findany 94 Comando query –findquery 95 Comando query –layoutnames 95 Comando query –new 95 Comando query –process 61, 96 Comando query ricerca composta 95 Comando query –scriptnames 96 Comando query –view 96 122 Pubblicazione Web personalizzata con XML e XSLT di FileMaker Server compare_date(), funzione di estensione 76 Compare_datetime ( ), funzione di estensione 76 compare_day(), funzione di estensione 76 compare_time(), funzione di estensione 76 confronto di stringhe 74 Console di amministrazione per il Motore per la Pubblicazione Web 27 contains_checkbox_value(), funzione di estensione 74 Convert_datetime(), funzione di estensione 76 cookie funzioni di estensione, utilizzo 72 memorizzazione dell'ID di una sessione 67 create_session(), funzione di estensione 67 creazione di un nuovo record 95 crittografia Secure Sockets Layer (SSL) 21 D database, protezione dei database pubblicati 20 <datasource> elemento 40 definizione delle funzioni di estensione 79 –delete.parametro di query correlato 92 determinazione del formato per richiedere dati XML 49 document(), funzione 65 documentazione 9 documentazione di installazione 9 documentazione elettronica 9 Documentazione JDBC 9 Documentazione ODBC 9 documentazione online 9 documenti, caricamento attraverso la funzione document() 65 DTD (Document Type Definitions) 39, 43 E elaborazione dei fogli di stile XSLT 96 elaborazione di una richiesta del Motore per la Pubblicazione Web 12 elementi codice errore database 39 con la grammatica FMPXMLLAYOUT 44 con la grammatica FMPXMLRESULT 43 nella grammatica fmresultset 40 Eliminazione dei record del portale 92 <error code> e <ERRORCODE>, elementi 109 errori codici di errore 109 codici di errore database 109 Codici di errore del Motore per la Pubblicazione Web 116 controllo dello stato di errore delle funzioni di estensione 79, 118 elementi codici errore database 39 file registro per server Web 86 funzioni estensione, codici errore 118 pe_application_log.txt, file registro 86 pe_server_error.html, pagina di errore 117 esempi di dati generati con la grammatica FMPXMLLAYOUT 46 dati generati con la grammatica FMPXMLRESULT 44 dati generati con la grammatica fmresultset 42 esportazione di dati XML 33 espressioni regolari Perl, confronto di stringhe 74 Extensible Markup Language (XML). Vedere XML F <field-definition> elemento 41 file GIF, pubblicazione sul Web 22 file JPEG, pubblicazione sul Web 22 file registro 84, 87 descrizione 86 pe_application_log.txt 86 pe_internal_access_log.txt 87 registrazione tramite l'elemento <xsl:message> 79 server Web, accesso 86 web_server_module_log.txt 87 <xsl:message>, elemento 86 file registro accessi per server Web, descrizione 86 FileMaker API per PHP 13 definizione 13 FileMaker Pro, contrasti con Motore per la Pubblicazione Web 33 FileMaker Server documentazione 9 installazione 9 FileMaker Server Admin vedere Admin Console 20 FileMaker Site Assistant vedereXSLT Site Assistant filmati QuickTime, pubblicazione sul Web 21 filtraggio delle righe del campo del portale 102 filtrare i dati con i fogli di stile 25 | FMPDSORESULT, grammatica rispetto ad altre grammatiche 38 FMPXMLLAYOUT, grammatica 44–46 FMPXMLRESULT, grammatica 43–44 fmresultset, grammatica 33 rispetto ad altre grammatiche 38 fogli di stile buffering del contenuto, utilizzo 66 caselle di controllo, controllo dei valori 74 codifica 61 confronto di stringhe tramite espressioni regolari Perl 74 esempi di utilizzo 25 funzione della sessione, utilizzo 67 funzioni di estensione data, ora e giorno 75 funzioni di estensione dei cookie 72 funzioni di estensione per la manipolazione delle stringhe 73 funzioni di intestazione, utilizzo 71 istruzione di elaborazione di un foglio di stile XML 50 lato client 50 lato server 25, 53 linee guida per lo sviluppo 53 messaggi di posta elettronica, invio 69 Parametro –grammar per 57 pubblicazione 25 stato di errore delle funzioni di estensione, controllo 79 stringhe formato data e ora 77 stringhe query per 57 sviluppo 53 test 84, 85 utilizzo delle informazioni sul formato in 65 utilizzo di un sito Web o di programma 30 utilizzo di XSLT Site Assistant per creare 28 XSLT, descrizione 25 fogli di stile lato client 35, 50 fogli di stile XSLT lato server 25, 53 formati database disponibili 95 formati, applicazione per una risposta XML 49 formattare i dati con i fogli di stile 25 four-digit-year, attributo 41 funzioni di estensione data, utilizzo 75 Funzioni di estensione della sessione, utilizzo nei fogli di stile 67 Indice 123 funzioni di estensione fmxslt fmxslt:break_encode(), funzione 73 fmxslt:check_error_status(), funzione 79, 118 fmxslt:compare_date(), funzione 76 Fmxslt:compare_datetime(), funzione 76 fmxslt:compare_day(), funzione 76 fmxslt:compare_time(), funzione 76 fmxslt:contains_checkbox_value(), funzione 74 Fmxslt:convert_datetime(), funzione 76 fmxslt:create_session(), funzione 67 Fmxslt:get_cookie(), funzione 72 Fmxslt:get_cookies(), funzione 72 Fmxslt:get_date(), funzione 75 Fmxslt:get_datetime(), funzione 76 Fmxslt:get_day(), funzione 75 Fmxslt:get_fm_date_format(), funzione 75 Fmxslt:get_fm_time_format(), funzione 76 Fmxslt:get_fm_timestamp_format(), funzione 76 Fmxslt:get_header(), funzione 71 Fmxslt:get_long_date_format(), funzione 76 Fmxslt:get_long_day_format(), funzione 76 Fmxslt:get_long_time_format(), funzione 76 Fmxslt:get_session_object(), funzione 68 Fmxslt:get_short_date_format(), funzione 76 Fmxslt:get_short_day_format(), funzione 76 Fmxslt:get_short_time_format(), funzione 76 Fmxslt:get_time(), funzione 75 fmxslt:html_encode(), funzione 73 fmxslt:invalidate_session(), funzione 68, 69 fmxslt:regex_contains(), funzione 74 fmxslt:remove_session_object(), funzione 68 fmxslt:send_email(), funzioni 69 fmxslt:session_encode_url(), funzione 67, 68 fmxslt:session_exists(), funzione 67 Fmxslt:set_cookie(), funzione 72 Fmxslt:set_header(), funzione 71 Fmxslt:set_session_object(), funzione 68 fmxslt:set_session_timeout(), funzione 68 fmxslt:set_status_code(), funzione 71 fmxslt:url_decode(), funzione 73 fmxslt:url_encode(), funzione 73 funzioni di estensione giorno, utilizzo 75 funzioni di estensione ora, utilizzo 75 funzioni di estensione per FileMaker XSLT Vedere anche funzioni di estensione fmxslt funzioni di intestazione, utilizzo 71 G generazione di una pagina statica 61 Get_cookie(), funzione di estensione 72 Get_cookies(), funzione di estensione 72 124 Pubblicazione Web personalizzata con XML e XSLT di FileMaker Server Get_date(), funzione di estensione 75 Get_datetime(), funzione di estensione 76 Get_day(), funzione di estensione 75 Get_fm_date_format(), funzione di estensione 75 Get_fm_time_format(), funzione di estensione 76 Get_fm_timestamp_format(), funzione di estensione 76 Get_header(), funzione di estensione 71 Get_long_date_format(), funzione di estensione 76 Get_long_day_format(), funzione di estensione 76 Get_long_time_format(), funzione di estensione 76 Get_session_object(), funzione di estensione 68 Get_short_date_format(), funzione di estensione 76 Get_short_day_format(), funzione di estensione 76 Get_short_time_format(), funzione di estensione 76 Get_time(), funzione di estensione 75 globale, attributo 41 Grammatica FMPXMLLAYOUT 33 rispetto ad altre grammatiche 38 Grammatica FMPXMLRESULT 33 rispetto ad altre grammatiche 38 Grammatica fmresultset 39–42 grammatiche per XML, descrizione 38 grammatiche raccomandate per XSLT 57 Guida di riferimento stringhe di query 91 H HTML moduli per richieste XML 35 riformattazione di dati XML in 33 html_encode(), funzione di estensione 73 I importazione di dati XML 33 informazioni sul client, recupero attraverso i parametri XSLT 64 informazioni sul formato, utilizzo nei fogli di stile 65 informazioni sulla documentazione 9, 18 informazioni sulle query, accesso con una richiesta 63 integrazione dei dati con i fogli di stile 25 Interrogazione dei campi del portale 92 intestazione User-Agent, controllo 62 introduzione Pubblicazione Web personalizzata 11 invalidate_session(), funzione di estensione 68, 69 Istruzione di script Nuovo accesso 20 istruzioni XPath 62 J JavaScript definizione delle funzioni di estensione 79 jsessionid, parametro 67 L limitazione delle righe del campo portale 102 M max-characters, attributo 41 max-repeat, attributo 41 memorizzazione delle informazioni nelle sessioni 67 messaggi di posta elettronica funzioni di estensione 69 impostazione della codifica predefinita iniziale 60 messaggi di posta. Vedere messaggi di posta elettronica <metadata > elemento 41 metadata, da nascondere con i fogli di stile 25 Modo produzione, Motore per la Pubblicazione Web 117 Modo sviluppo, Motore per la Pubblicazione Web 116 monitoraggio di siti Web 86 Motore per la Pubblicazione Web Admin Console 35 Console di amministrazione 27 descrizione 12 elaborazione di una richiesta 12 generazione dati XML 34 generazione di codici di errore 109 generazione di documenti XML 35 generazione di pagine dai fogli di stile XSLT 26 Modo produzione 117 Modo sviluppo 116 registro dell'applicazione 86 vantaggi di 15 Motore per la Pubblicazione Web personalizzata (CWPE) 26, 34 N nascondere i metadata con i fogli di stile 25 nome campo completamente qualificato, sintassi | di 91 nome spazio per XML 38 XSLT 58 nome, attributo 41 nomecampo, parametro query (non Contenitore) 97 nomi campi, completamente qualificati, sintassi 91 nomi utente accesso a documenti XML 65 Autenticazione di base per utenti Web 19, 64 definizione per Pubblicazione Web personalizzata: 19 not-empty, attributo 41 numeri Codici di errore del Motore per la Pubblicazione Web 116 codici errore database 109 errori funzioni estensione 118 nuove funzioni in Pubblicazione Web personalizzata 16 O operatori di confronto per i campi 98 operatori, di confronto 98 ordine di elaborazione delle richieste XML 50 P pagine di output codifica, determinazione 60 impostazione della codifica predefinita iniziale 60 metodo di output, determinazione 60 <xsl:output>, elemento 60 parametri per le query. Vedere stringhe di query parametri per XSLT, specifici FileMaker 62 parametri XSLT specifici FileMaker 62 Parametro di query –token 62, 107 Parametro query (contenitore) –field 97 Parametro query –db 96 Parametro query –encoding 97 Parametro query –fieldname.op 98 Parametro query –grammar 57, 99 Parametro query –lay 49, 99 Parametro query –lay.response 49, 99 Parametro query –lop 100 Parametro query –max 100 Parametro query –modid 100 Parametro query –query 100 Indice 125 Parametro query –recid 101 Parametro query –relatedsets.filter 102 Parametro query –relatedsets.max 102 Parametro query ricerca composta 100 Parametro query –script 103 Parametro query –script.param 103 Parametro query –script.prefind 103 Parametro query –script.prefind.param 103 Parametro query –script.presort 104 Parametro query –script.presort.param 104 Parametro query –skip 105 Parametro query –sortfield 105 Parametro query –sortorder 105 Parametro query –stylehref 106 Parametro query –styletype 106 parametro URI di base 64 parametro URI di base autenticato 64 parola chiave fmxml per l'attivazione della pubblicazione XML 19, 35 parola chiave fmxslt per l'attivazione della pubblicazione XSLT 19, 27 parole chiave per l'attivazione di Pubblicazione Web personalizzata 19, 27, 35 password accesso a documenti XML 65 Autenticazione di base per utenti Web 19, 64 definizione per Pubblicazione Web personalizzata: 19 password non necessaria per l’accesso 20 Script Modifica password 20 PDF 9 pe_application_log.txt, file registro 86 pe_internal_access_log.txt, file registro 87 pe_server_error.html, pagina di errore 117 PHP risoluzione dei problemi 31 vantaggi 14 PHP API per Pubblicazione Web personalizzata 13 portali aggiunta di record 91 Eliminazione di record 92 formato 102 modifica dei record 92 ordinamento dei record 102 privilegi di accesso 20 privilegio esteso per Pubblicazione Web personalizzata 19 protezione dei database pubblicati 20 prove tecniche 31 126 Pubblicazione Web personalizzata con XML e XSLT di FileMaker Server pubblicazione statica, definizione 11 pubblicazione sul Web codici errore database 109 con XML 15, 35 connessione ad Internet o ad una rete intranet 18 filmati QuickTime 21 oggetti campo Contenitore 21, 30 protezione dei database 20 requisiti per 17 usando XSLT 16, 27, 53 Pubblicazione Web Immediata definizione 11 documentazione 9 Pubblicazione Web personalizzata accesso a soluzioni da parte di utenti Web 19, 64 Account Ospite 20 attivazione nel database 19 attivazione nel Motore per la Pubblicazione Web 20 con PHP 13 con XML 13, 33 con XSLT 13 definizione 11 descrizione 15, 16 introduzione 11 limitazione dell'accesso all'indirizzo IP nel server Web 21 nuove funzioni 16 privilegio esteso per 19 requisiti per 17 script 24 usando XSLT 26, 53 uso degli script 22 uso di indirizzo IP statico 18 Pubblicazione Web personalizzata XSLT 13 Q query campo portale 102 R Recupero dei nomi formato 95 recupero dei nomi script disponibili 96 Recupero di informazioni sul formato 96 regex_contains(), funzione di estensione 74 registro dell'applicazione 79, 86 <relatedset-definition, > elemento 41 remove_session_object(), funzione di estensione 68 requisiti per Pubblicazione Web personalizzata: 17 restituire i dati con i fogli di stile 25 <risultset > elemento 41 richiesta XML determinazione del formato 49 richieste di dati XML 35 riepilogo delle operazioni per accesso a dati XML 35 Pubblicazione XSLT 27 risoluzione dei problemi accesso a documenti XML 51 fogli di stile XSLT 31 Siti Web Pubblicazione Web personalizzata 84 risposta XML selezione del formato 49 risultato, attributo 41 S SAT vedere Admin Console 20 scambio di informazioni tra fogli di stile 62 script account e privilegi 22 in Pubblicazione Web personalizzata 22 Modifica password 20 Nuovo accesso 20 per richieste XML 35 sessioni del database, attivazione 69 suggerimenti e considerazioni 22 Trigger 24 script disponibili 96 Script Modifica password 20 selezione di un formato per una risposta XML 49 send_email(), funzioni di estensione 69 server Web file registro 86 ruolo nelle richieste XML 34 ruolo nelle richieste XSLT-CWP 26 supporto tipo MIME 21 session_encode_url(), funzione di estensione 67 session_exists(), funzione di estensione 67 sessioni del database, attivazione 69, 93 set di privilegi, assegnazione per Pubblicazione Web personalizzata 19 Set_cookie(), funzione di estensione 72 Set_header(), funzione di estensione 71 Set_session_object(), funzione di estensione 68 set_session_timeout(), funzione di estensione 68 set_status_code(), funzione di estensione 71 | sicurezza account e password: 21 documentazione 13 limitazione dell'accesso agli indirizzi IP 21 linee guida per la protezione dei database pubblicati. 20 stringhe query definite staticamente, utilizzo 58 sintassi URL per fogli di stile XSLT 55 oggetti Contenitore in soluzioni XML 37 oggetti Contenitore in soluzioni XSLT 56 richieste XML 36 Site Assistant descrizione 16 Site Assistant. vedereXSLT Site Assistant siti Web creazione con Motore per la Pubblicazione Web 15 monitoraggio 86 pagine di supporto per FileMaker 9 test 84 solo dati numerici, attributo 41 Specifica di una grammatica XML 57 stato, salvataggio nelle sessioni 67 stringhe confronto tramite espressioni regolari Perl 74 utilizzo delle funzioni di estensione per la manipolazione delle stringhe 73 stringhe del formato, data e ora 77 stringhe formato data 77 stringhe formato ora 77 stringhe query 47, 57, 89 aggiunta di record a un portale 91 campi globali, sintassi di 93 comandi e parametri 47, 57, 89 definite staticamente nei fogli di stile XSLT 58 fogli di stile XSLT, utilizzo nei 57 Guida di riferimento stringhe di query 91 linee guida per 90 modifica dei record nei portali 92 nome campo completamente qualificato, sintassi di 91 richiesta dati XML 47, 89 stringhe query definite staticamente in fogli di stile XSLT 58 strumenti per XSLT, descrizione 28 strumento per XSLT, descritto 16 SVG (Scalable Vector Graphics), trasformazione di dati XML in 33 Indice T test output XML 85 siti Web 84 test della pubblicazione PHP 31 time-of-day, attributo 41 tipi MIME (Multipurpose Internet Mail Extensions) 21 tipo, attributo 41 trasformare i dati con i fogli di stile 25 Trigger 24 U Unicode, caratteri 47 URL, codifica testo 37 url_decode(), funzione di estensione 73 url_encode(), funzione di estensione 73 utenti Web accesso ai database protetti 19, 64, 65 requisiti per l'accesso alle soluzioni di Pubblicazione Web personalizzata 17 uso dei dati dei campi Contenitore 22 UTF-8 (Unicode Transformation 8 Bit) formato 37, 47 impostazioni di codifica 60 V valori, controllo nelle caselle di controllo 74 Vantaggi di XML e XSLT 14 vCards, riformattazione di dati XML in 33 W Web Publishing Core illustrazione 26, 34 registri degli accessi interni 87 web_server_module_log.txt, file registro 87 wpc_access_log.txt, file 87 X XML attivazione nel database 19 codifica con il formato UTF-8 38, 47 descrizione 33 DTD (Document Type Definitions) 39, 43 filtraggio dei dati 33 fmresultset, grammatica 40 <datasource> elemento 40 <field-definition> elemento 41 127 128 Pubblicazione Web personalizzata con XML e XSLT di FileMaker Server <metadata > elemento 41 <relatedset-definition, > elemento 41 <risultset > elemento 41 generazione dati XML da richiesta 34 Grammatica FMPXMLLAYOUT 44 Grammatica FMPXMLRESULT 43 grammatiche, descrizione 38 istruzione di elaborazione di un foglio di stile XML 50 nome spazio per 38 ordine di elaborazione delle richieste 50 parser 35, 47 richiesta di dati 35 riepilogo dei passi per accedere a dati XML 35 risoluzione dei problemi, accesso a documenti XML 51 specifica XML 1.0 33 stringhe query 47, 89 URL, codifica testo 37 utilizzo di fogli di stile lato client 50 <xsl:stylesheet>, elemento 58, 62, 63, 85 <xsl:message>, elemento 79 <xsl:output>, elemento 60 <xsl:param name="authenticated-xml-base-uri"/> parameter 64 <xsl:param name="client-ip"/> parameter 64 <xsl:param name="client-password"/> parameter 64 <xsl:param name="client-user-name"/> parameter 64 <xsl:param name="request-query"/>, parametro 63 <xsl:param name="xml-base-uri"/> parameter 64 <xsl:param>, elemento 62 <xsl:template>, elemento 64, 85 <xsl:variable>, elemento 65 XSLT attivazione nel database 19 buffering del contenuto, utilizzo 66 cartella dei modelli xslt 27, 30, 65 caselle di controllo, controllo dei valori 74 confronto di stringhe tramite espressioni regolari Perl 74 descrizione 25 esempi di fogli di stile 25 Estensioni Javascript 79 fogli di stile lato server 25, 53 funzioni di estensione data, ora e giorno 75 funzioni di estensione dei cookie 72 funzioni di estensione per FileMaker 62 funzioni di estensione per la manipolazione delle stringhe 73 funzioni di intestazione, utilizzo 71 generazione di pagine dai fogli di stile XSLT 26 Guida di riferimento stringhe di query 91 informazioni sul formato, utilizzo 65 messaggi di posta elettronica, invio 69 nome spazio per 58 parametri XSLT specifici FileMaker 62 Parametro –grammar per 57 Richieste XSLT-CWP 26 riepilogo delle operazioni per la pubblicazione 27 risoluzione dei problemi dei fogli di stile 31 Specifica XSLT 1.0 25 stato di errore delle funzioni di estensione, controllo 79 stringhe formato data e ora 77 stringhe query per 57 sviluppo di fogli di stile 53 utilizzo di fogli di stile in un sito Web o in un programma 30 XSLT Site Assistant, utilizzo 28 XSLT Site Assistant avvio 29 descrizione 28 fogli di stile generati, descrizione 29 preparazioni per l'uso 28 utilizzo 29 <?xslt-cwp-buffer buffer-content="true"?>, istruzione di elaborazione 66 <?xslt-cwp-query?>, istruzione di elaborazione 54, 58