Skip to topic | Skip to bottom
Home
TechWeb07
TechWeb07.GrammaticaDFr1.81 - 27 Jun 2007 - 20:58 - LuigiEnricoTomasellitopic end

Start of topic | Skip to actions
-- LuigiEnricoTomaselli - 24 May 2007
  • Set ALLOWTOPICVIEW =
  • Set ALLOWTOPICCHANGE =

ALERT! AGGIORNAMENTI GRAMMATICHE ALERT!

ATTENZIONE: ho aggiornato la definizione di textarea di una form. Sono stati inoltre apportati dei bugfix trovati in queste settimane, l'ultimo zip caricato e' la copia esatta delle grammatiche attualmente usate dai validatori.

Per quanto riguarda la definizione di textarea ho fatto si che l'elemento textarea accetti al suo interno qualunque elemento del tipo complesso testo_t (quello usato dalla descrizione estesa ad esempio). Questa modifica si e' resa necessaria per permettere la creazione di editor per guide/itinerari/pdi che non obbligasse a funambolici giri di escaping (unica via possibile per chiedere al formatter di formattare una textarea contenente la descrizione estesa di una guida, ad esempio); modifica che spero semplifichi la vita a tutti voi.

Buon lavoro.

Io ed il chair DS abbiamo messo online il validatore ufficiale. D'ora in avanti bisognera' usare questo per essere sicuri della validita' dei propri documenti xml. Il validatore e' un servizio webservice, dunque dovrete crearvi un semplice SoapClient? per richiedere la validazione di un documento xml.

Esistono due validatori:

  1. http://tomasell.web.cs.unibo.it/cgi-bin/validatorDS/validate_service.php5 Validatore per le grammatiche del DS
  2. http://tomasell.web.cs.unibo.it/cgi-bin/validatorDF/validate_service.php5 Validatore per le grammatiche del DF

Il seguente codice php implementa un client webservice per la richiesta di validazione sul validatore DF:


<?php
 

$client;
try {

    ini_set('soap.wsdl_cache_enabled','0');

    //CREO UN SOAPCLIENT CHE PUNTI AL WSDL DEL VALIDATORE DF
    $client = new SoapClient("http://tomasell.web.cs.unibo.it/validatorDF.wsdl", array('trace' => 1) );


    //CARICO IL DOCUMENTO XML DA VALIDARE, CAMBIATE IL PATH A SECONDA DEL VOSTRO DOCUMENTO XML
    $file= file_get_contents('../../html/provaNamespace.xml');
    
  
    $result =  $client->__soapCall('validate', array(rawurlencode($file)));
    //STAMPO IL RISULTATO DELLA VALIDAZIONE, SE IL RISULTATO E' valido TUTTO OK, ALTRIMENTI VENGONO SEGNALATI GLI ERRORI VERIFICATISI
    printf("%s\n", rawurldecode($result));

} catch (Exception $e) {
echo "RESPONSE:\n" . $client->__getLastResponse() . "\n";
   printf("Message = %s\n",$e->__toString());
}
?>   



Il seguente codice php implementa un client webservice per la richiesta di validazione sul validatore DS:


<?php
 

$client;
try {

    ini_set('soap.wsdl_cache_enabled','0');

    //CREO UN SOAPCLIENT CHE PUNTI AL WSDL DEL VALIDATORE DF
    $client = new SoapClient("http://tomasell.web.cs.unibo.it/validatorDS.wsdl", array('trace' => 1) );


    //CARICO IL DOCUMENTO XML DA VALIDARE, CAMBIATE IL PATH A SECONDA DEL VOSTRO DOCUMENTO XML
    $file= file_get_contents('../../html/provaNamespace.xml');
    
  //DEVO INDICARE IL TIPO DI DOCUMENTO DA VALIDARE, I VALORI POSSIBILI SONO:
  // scheda      
  // elenco
  // commenti
  // guidacompleta

    $result =  $client->__soapCall('validate', array(rawurlencode($file), rawurlencode('scheda')));
    //STAMPO IL RISULTATO DELLA VALIDAZIONE, SE IL RISULTATO E' valido TUTTO OK, ALTRIMENTI VENGONO SEGNALATI GLI ERRORI VERIFICATISI
    printf("%s\n", rawurldecode($result));

} catch (Exception $e) {
echo "RESPONSE:\n" . $client->__getLastResponse() . "\n";
   printf("Message = %s\n",$e->__toString());
}
?>   



Come potete notare nei due esempi per utilizzare il validatore DF anzi che il DS, o viceversa, basta cambiare la url del WSDL inserita nell'oggetto SoapClient?.

  1. WSDL del DataFormatter: http://tomasell.web.cs.unibo.it/validatorDF.wsdl
  2. WSDL del DataSource: http://tomasell.web.cs.unibo.it/validatorDS.wsdl

Basta copiare ed incollare in un file con estensione php5 il codice riportato sopra per avere un client pronto e funzionante. Per validare file diversi basta cambiare il path del file da validare (nel codice del client). Sentitevi chiaramente liberi di crearvi client php piu' evoluti e specifici per le vostre esigenze, ovviamente essendo un webservice basta che rispettiate l'interfaccia WSDL. A tal riguardo i due validatori forniscono un solo metodo validate(String DocumentoXML?) che prende in input la stringa rappresentante il documento xml ed in output restituiscono una stringa avente uno dei due possibili valori:

  • valido se la validazione (sia SCHEMA che SCHEMATRON) e' andata a buon fine
  • Una stringa rappresentante l'errore incontrato se la validazione (SCHEMA o SCHEMATRON) non e' andata a buon fine

Sia chiaro che i due validatori conterranno sempre le grammatiche ufficiali ed aggiornate all'ultima versione uplodata. NOTA BENE: non abbiamo fatto tutto cio' per pura gloria, sia chiaro che d'ora in avanti se un documento xml non viene validato dal validatore ufficiale specifico allora tale documento xml NON E' VALIDO a livello di protocollo.

Buon lavoro

Luigi e Alessandro

SCHEMA ATTUALI:

  1. Gli schema da utilizzare sono i seguenti:
    • Schema principale: formatta.xsd
    • Catalogo: catalogoFormatter.xsd
    • Elenco del formatter: elencoFormatter.xsd
    • Frammenti: Schema non disponibile, leggere quanto riportato nel paragrafo 8.3
    • Errori: errori.xsd
    • Ajax: ajax.xsd
  2. Gli schema inclusi ed usati dai precedenti:
    • form.xsd
    • testo.xsd
    • DFtesto.xsd

Questa e' la history delle versioni:

Data Archivio Commenti
24/05/2007 13:00 240507MATTINA.zip Grammatiche aggiornate alle 13:00
24/05/2007 21:12 240507SERA.zip Grammatiche aggiornate alle 21:12
25/05/2007 12:26 250507MATTINA.zip Grammatiche aggiornate alle 12:26
25/05/2007 14:24 250507POMERIGGIO.zip Grammatiche aggiornate alle 14:24
25/05/2007 15:38 25052007POMERIGGIO2.zip Grammatiche aggiornate alle 15:38 (l'elemento titolo in formatta_t poteva comparire infinte volte, mentre al piu' puo' apparire una sola volta, fixed
29/05/2007 16:28 29052007DFPOMERIGGIO.zip Ultima versione delle grammatiche aggiornate con tutti i bugfix segnalati e scoperti
29/05/2007 21:29 29052007SERAILRITORNODELRE.zip Un fantastiliardo di bugfix, aggiunta di attributi per l'accessibilita'
30/05/2007 14:22 30052007MATTINA.zip Bug fix per una corretta validazione degli elementi inclusi dal DS
30/05/2007 16:40 30052007POMERIGGIO.zip Bugfix alla parte DS inclusa
31/05/2007 09:42 31052007MATTINA.zip Bug fix agli schematron del DS inclusi
31/05/2007 19:47 31052007SERA.zip Bug fix schematron a DF e DS
01/06/2007 09:59 01062007MATTINA.zip Erano sparite le nostre estensioni sul DS (arghhh!)
01/06/2007 11:27 01062007TARDAMATTINATA.zip Corretti gli ennesimi problemi schematron
06/06/2007 16:50 06062007POMERIGGIO.zip Queste sono esattamente quelle presenti nel validatore ufficiale
12/06/2007 11:04 12062007MATTINA.zip Aggiornata la parte DS, bugfix su quella DF
12/06/2007 17:13 12062007POMERIGGIO.zip Bug fix ai bug fix del DS, aggiunti colspan e rowspan ad entrambi DF e DS
27/06/2007 20:57 grammatiche.zip Modifiche a textarea e bug fix

Se avete trovato degli errori nelle grammatiche segnalatelo in questa tabella, grazie! ;-)

Nome file Grammatica Errore trovato Autore della segnalazione Commenti
elencoFormatter.xsd Il link non e' stato aggiornato, quello corretto e' elencoFormatter.xsd Manuel Bertuzzi Fixed!, grazie wink
Formatta.xsd Non so perche' , ma non si riesce a settare xmlns ad un valore diverso da stringa vuota Manuel Bertuzzi Riferito allo zip della MATTINA
Riferirsi all'esempio TemplateQueryLCDP Aggiornato
Formatta.xsd Oltre al problema sopracitato quando creo un link all'interno del MenuStatico mi richiede un elemento %inline all'interno dello stesso. (provato con Oxygen) Manuel Bertuzzi Riferito allo zip della SERA
FIXED, grazie
form.xsd Non e' un bug ma un consiglio: togliamo la definizione di <element name="form">, perche' continuano a pormi domande tipo :"ma perche' oxygen mi permette di fare come elemento radice l'elemento <form>?"
almeno cosi' tutti capiscono che l'unico elemento radice possibile e' <formatta>.
RobertoMaggi FIXED, grazie
Formatta.xsd Nella definizione degli elementi <query> e <editor> e' sbagliato il content model, anziche' <element ref="form"> deve essere <element name="form" type="form_t"> .
(Oxygen quando fa il completamento automatico a volte si aspetta delle cose come contenuto che non sono previste dagli schemi, tenete presente che non ha ragione su tutto)
RobertoMaggi FIXED, grazie
Formatta.xsd L'elemento titolo e' stato definito due volte (si vede che ti e' scappato quando hai fatto l'ultima correzione) Manuel Bertuzzi FIXED, grazie
Formatta.xsd in schedaDsConEstensioni ed elencoDsConEstensioni l'attributo namespace del DS e' http://vitali.web.cs.unibo.it/view/TechWeb07/WorkingGroupACDS mentre il targetNamespace nelle grammatiche del DS e' http://vitali.web.cs.unibo.it/view/TechWeb07/WorkinGroupACDS (senza la g di working) Maurizio Casimirri FIXED, grazie
*.xsd In generale si deve definire come funzioneranno nello specifico alcuni dei nuovi elementi possibili per l'elemento contentuto, in particolare: 1) TagCloud = come vengono passate le coppie tag-valore; 2) Navigazione = se i vari passi della navigazione sono una sequenza "libera" di link, o una lista di link. ManuelBertuzzi a tal riguardo avevo chiesto agli autori delle proposte di inviarmi una spiegazione a riguardo, ovviamente tutto tace.
RISPOSTA da ManuelBertuzzi : dato che mancano pochi giorni alla fiera, metto tra gli esempi un'approccio per tabelle per il TagCloud, se va bene per tutti manterrei quello.
DFtesto.xsd C'e' un errore nella regola schematron nel complexType DFa_t, nella prima asserts il test dovrebbe essere not(.//a) altrimenti ogni volta che un a non ha un a al suo interno genera un errore RobertoMaggi FIXED, grazie
Attributi di tipo anyUri Penso possa tornare utile: per poter validare le schede contenenti uri con il carattere "&" bisogna sostiure tutte le occorrenze di esso con la stringa "&amp;". MatteoMarchetti  
option delle select Quando si crea un menu a tendina il valore di ogni option deve essere messo come content dell'elemento, oppure lo si mette come valore dell'attributo label ? Nel primo caso a cosa serve l'attributo label per ogni singola voce del menu? ManuelBertuzzi  

Per aiutare ed aiutarvi a capire meglio il protocollo aggiungete a questa tabella degli esempi (template) validi per le grammatiche del DF (il vostro contributo e' importante!, grazie wink )

Nome Template Link Fatto da Commenti
TemplateQueryLCDP TemplateQueryLCDP Chair Una banale form di ricerca UPDATED
TemplateGenericoCaLindro TemplateGenericoCaLindro RobertoMaggi? Un template generico che spiega due particolarita' dei NameSpace?
TemplateTagCloud TemplateTagCloud ManuelBertuzzi Un esempio di come strutturare il contenuto di tipo TagCloud


to top

I Attachment sort Action Size Date Who Comment
240507MATTINA.zip manage 10.3 K 24 May 2007 - 21:12 LuigiEnricoTomaselli Grammatiche aggiornate alle 13:00 del 24/05/2007
240507SERA.zip manage 10.2 K 24 May 2007 - 21:13 LuigiEnricoTomaselli Grammatiche aggiornate alle 21:12 del 24/05/2007 dopo le segnalazioni di Roberto Maggi
250507MATTINA.zip manage 8.0 K 25 May 2007 - 12:25 LuigiEnricoTomaselli Grammatiche aggiornate alle 12:26 del 25/05/2007
250507POMERIGGIO.zip manage 9.2 K 25 May 2007 - 14:24 LuigiEnricoTomaselli Grammatiche aggiornate alle 14:24 del 25/05/2007
25052007POMERIGGIO2.zip manage 9.3 K 25 May 2007 - 15:37 LuigiEnricoTomaselli Grammatiche aggiornate alle 15:38 del 25/05/2007
29052007DFPOMERIGGIO.zip manage 22.2 K 29 May 2007 - 16:27 LuigiEnricoTomaselli Ultima versione delle grammatiche aggiornate con tutti i bugfix segnalati e scoperti
29052007SERAILRITORNODELRE.zip manage 23.6 K 29 May 2007 - 21:28 LuigiEnricoTomaselli Un fantastiliardo di bugfix, aggiunta di attributi per l'accessibilita'
30052007MATTINA.zip manage 23.1 K 30 May 2007 - 14:21 LuigiEnricoTomaselli Bug fix per una corretta validazione degli elementi inclusi dal DS
30052007POMERIGGIO.zip manage 23.2 K 30 May 2007 - 16:39 LuigiEnricoTomaselli Bugfix alla parte DS inclusa
31052007MATTINA.zip manage 20.5 K 31 May 2007 - 09:40 LuigiEnricoTomaselli Bug fix agli schematron del DS inclusi
31052007SERA.zip manage 21.6 K 31 May 2007 - 19:47 LuigiEnricoTomaselli Bug fix schematron a DF e DS
01062007MATTINA.zip manage 22.6 K 01 Jun 2007 - 09:58 LuigiEnricoTomaselli Erano sparite le nostre estensioni sul DS (arghhh!)
01062007TARDAMATTINATA.zip manage 22.9 K 01 Jun 2007 - 11:26 LuigiEnricoTomaselli Corretti gli ennesimi problemi schematron
06062007POMERIGGIO.zip manage 26.1 K 06 Jun 2007 - 16:44 LuigiEnricoTomaselli Queste sono esattamente quelle presenti nel validatore ufficiale
12062007MATTINA.zip manage 22.9 K 12 Jun 2007 - 11:04 LuigiEnricoTomaselli Aggiornata la parte DS, bugfix su quella DF
12062007POMERIGGIO.zip manage 23.8 K 12 Jun 2007 - 17:13 LuigiEnricoTomaselli Bug fix ai bug fix del DS, aggiunti colspan e rowspan ad entrambi DF e DS
grammatiche.zip manage 41.3 K 27 Jun 2007 - 20:57 LuigiEnricoTomaselli Modifiche a textarea e bug fix

You are here: TechWeb07 > GrammaticaDF

to top

Copyright? © Fabio Vitali + TechWeb students 2006