Skip to topic | Skip to bottom
Home

TechWeb08
TechWeb08.ConvenzioniDataFormatterr1.23 - 19 Jun 2008 - 15:07 - GiacomoRituccitopic end

Start of topic | Skip to actions

Convenzioni Data Formatter

In questa pagina sono raccolte e mantenute aggiornate tutte le convenzioni che riguardano il Data Formatter.
Tutte le altre pagine sull'argomento sono da considerarsi obsolete.

Le seguenti convenzioni non compaiono nel protocollo e non sono di competenza del DF Working Group. Tuttavia di fatto sono necessarie per permettere l'interoperabilita' tra DF e AC di gruppi diversi.

Ogni convenzione ha la propria pagina di discussione.

Discussione generale per proposte di nuove convenzioni, segnalazione errori, etc.

In fondo alla pagina c'e' il sommario delle modifiche.

IMPORTANTE: mi prendo la responsabilita' di apportare modifiche minime "palesemente" giuste. Non voglio proporre un incontro extra solo per cambiare il content model di logo da Xlink ad a.
Se una modifica non va bene, fatevi sentire forte e chiaro nella pagina di discussione appropriata.

Elementi speciali

Leggi la discussione

Gli elementi speciali sono elementi con contenuto (X)HTML che possono essere specificati nella richiesta formatta descritta dal protocollo.

IMPORTANTE: queste sono convenzioni, non parti del protocollo. Se definiamo un content-model con XMLSchema, chi decide di non aderire a queste convenzioni (e' lecito) si ritrova a non poter validare. Ne devo parlare con Davide. Per ora i content-model sono molto semplici e sono descritti qui sotto in modo informale (a parole, niente DTD/Schema).

Menu di navigazione: navigazione

Il menu principale del sito.

Il content model e' una lista ul piatta, ovvero che non puo' contenere altre liste ul.
Il formatter DOVREBBE rispettare l'ordine degli elementi li.

Menu opzioni: opzioni

Un men¨ che pu˛ contenere opzioni varie, tra cui il cambio di layout e skin.

Il content model e' una lista ul profonda, ovvero puo' contenere altre liste ul.
Il formatter DOVREBBE rispettare l'ordine degli elementi li.

Messaggio: messaggio

Un generico messaggio che l'Application Controller vuole comunicare all'utente per mezzo di testo, immagini, etc.
Contenuto praticamente libero, le cosidette "pagine speciali" (ovvero qualsiasi pagina che non abbia contenuto fornito dal DS) possono usare il messaggio per specificare il proprio contenuto.

Ha pari dignita' di una scheda, errore, o response, quindi i formatter DOVREBBERO visualizzarlo in una parte "importante" del layout.

Ha lo stesso content model di un div XHTML.

Informazioni pagina: info-pagina

Informazioni relative alla pagina. Non i metadati della scheda, ma note di compatibilita' dei browser, link ai validatori W3C, autori del sito, versione del sito, etc.

Ha lo stesso content model di un div XHTML.

Logo: logo

Logo del sito, scelto dall'Application Logic.

Il content model e' un singolo tag img con l'attributo src contenente l'URL completo dell'immagine e un attributo alt adeguato.

Output dei Formatter (X)HTML

Leggi la discussione

Questa convenzione permette all'AC di riconoscere all'interno dell'output dei Formatter (X)HTML tutti gli elementi che aveva specificato nella richiesta formatta.

Parte centrale del lavoro dei formatter (X)HTML e' di trasformare in elementi (X)HTML tutti gli elementi discendenti di formatta/dati che non sono gia' elementi (X)HTML. L'elemento (X)HTML risultante da questa trasformazione deve avere class="marcatore-poliwiki" e un id che specifica il nome dell'elemento originale.

Unica eccezione sono gli elementi metadati e tutti i loro discendenti. Per loro natura possono comparire piu' volte nella pagina (esempio in un response); invece che con un id vengono marcati con un attributo title.

Inoltre il Formatter XHTML deve creare un div con id="cornice" per delimitare la zona in cui l'AC POTRA' operare inserimenti e sostituizioni di frammenti. Questo div indica la zona in cui il formatter di aspetta che l'AC compia modifiche. Le AC che non rispettano questa indicazione POTREBBERO rischiare di compromettere il layout.

Esempio

Dentro formatta/dati/scheda/metadati/expression il DF trova l'elemento

<etitle>Le Cosmicomiche</etitle>
e lo trasforma in
<h1 title="etitle" class="marcatore-poliwiki">Le Cosmicomiche</h1>

Se la classe "marcatore-poliwiki" disturba il formatter perche' gli impedisce di specificare una classe per una regola CSS, il formatter puo' rimediare usando uno span:

<h1 class="grosso-e-rosso">
    <span title="etitle" class="marcatore-poliwiki">Le Cosmicomiche</span>
</h1>
oppure un div:
<div title="etitle" class="marcatore-poliwiki">
    <h1 class="grosso-e-rosso">Le Cosmicomiche</h1>
</div>

La seconda soluzione, ovvero usare un elemento marcatore che racchiuda tutto l'(X)HTML generato a partire dall'elemento di input, DOVREBBE essere preferita alla prima; la prima infatti lascia del markup (h1) al di fuori del marcatore.

Esempio completo

Se inviamo a un Formatter di documenti XHTML la seguente richiesta formatta

<formatta>
    <info>...</info>
    <dati>
        <speciali>
            <navigazione>
                <ul>
                    <li><a onclick="load_home()">Home</a></li>
                    <li><a onclick="load_search()">Ricerca</a></li>
                </ul>
            </navigazione>
        </speciali>

        <scheda>
            <metadati>
                <work>
                    <widentifier>abcd001</widentifier>
                    <wcreator>Creatore Opera</wcreator>
                    <wtitle>Titolo Opera</wtitle>
                    ...
                </work>
                <expression>
                    <etitle>Titolo Expression</etitle>
                    <ecreator>Creatore Expression</ecreator>
                    ...
                </expression>
            </metadati>
            <body>
                <p>Bla bla bla bla</p>
                <img src="http://fotobelle.it/foto.jpg"/ alt="Bella foto">
                <p>Urca urca <em>tirulero</em> oggi splende il <strong>sol</strong>.</p>
            </body>
        </scheda>
    </dati>

un possibile output sarebbe

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="it" >
    <head>
       <title>PoliWiki: "Titolo Expression" di Autore Expression</title>
       <link rel="stylesheet" type="text/css" href="http://ltw0102/df/css/bello.css" />
    </head>

    <body>
        <div class="marcatore-poliwiki" id="navigazione">
            <ul class="css-stile-menu">
                <li><a onclick="load_home()">Home</a></li>
                <li><a onclick="load_search()">Ricerca</a></li>
            </ul>
        </div>

        <div id="cornice">
            <div class="marcatore-poliwiki" id="scheda">
                <div class="marcatore-poliwiki" title="metadati">
                    <div class="css-bordato">
                        <div class="marcatore-poliwiki" title="expression">
                            <h1 class="marcatore-poliwiki" title="etitle">
                                Titolo Expression
                            </h1>
                            <p>
                                di <span class="marcatore-poliwiki" title="ecreator" style="color:red">Creatore Expression</span>
                            </p>
                        </div>
                        <div class="marcatore-poliwiki" title="work">
                            <p class="css-piccolo-e-corsivo">
                                tratto dall'opera <span class="marcatore-poliwiki" title="wtitle">Nome Opera</span>
                                di <span class="marcatore-poliwiki" title="wcreator">Creatore Opera</span>
                            </p>
                        </div>
                    </div> <!-- /div bordato -->
                </div> <!-- /div metadati -->

                <div class="marcatore-poliwiki" id="body">
                    <p>Bla bla bla bla</p>
                    <img class="css-float-a-destra" src="http://fotobelle.it/foto.jpg" alt="Bella foto" />
                    <p>Urca urca <em>tirulero</em> oggi splende il <strong>sol</strong>.</p>
                </div>
            </div> <!-- /div scheda -->
        </div> <!-- /div cornice -->
    </body>
</html>

Questo esempio deve validare.
Per favore segnalate eventuali errori.

Modifiche

Output Formatter

19 giugno 2008

  • Corretto content model di logo da a a img (scusate, cappella mia).

29 maggio 2008

  • Cambiato content model di logo da Xlink ad a.

28 maggio 2008

  • L'elemento speciali non va marcato in output; serve solo per raggruppare gli elementi speciali nell'XMLSchema e non serve che compaia qualcosa di corrispondente in output. Tutti i suoi figli (navigazione, opzioni, logo, etc.) che sono stati specificati in una richiesta formatta e che il formatter decide di supportare, devono essere marcati normalmente.
  • Gli elementi in output vanno marcati con class="marcatore-poliwiki" e id="nome-elemento-originale". Unica eccezione sono gli elementi metadati e tutti i loro discendenti: possono comparire piu' volte nell'output e invece di usare id devono usare title="nome-elemento-originale"


to top

You are here: TechWeb08 > TWikiUsers > GiacomoRitucci > ConvenzioniDataFormatter

to top

Copyright © Fabio Vitali 2017 Last update of ConvenzioniDataFormatter on 19 Jun 2008 - 15:07 by GiacomoRitucci