Pubblicazione Web personalizzata con XML e XSLT

annuncio pubblicitario
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 "&" 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&[email protected]
&[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 "&". 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: ""
" (per l'avanzamento di riga)
oppure "
"(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 "&"
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+"&f=l1gh&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
Scarica