È XML, HTML / CSS, XSL analogo al modello, Visualizza, Controller?

1

Da un po 'di tempo in progetti personali ho usato XSL per convertire i miei dati XML grezzi in HTML / CSS umani (in progetti semplici, non ho JavaScript, quindi lasciamolo fuori dall'equazione per semplicità).

Ora sto cercando di capire il pattern di architettura MVC (non è la mia prima esperienza con esso, ma ci vuole del lavoro per passare dalla comprensione di base alla sua comprensione), e mi chiedo se c'è un'analogia tra i due.

  • XML : modello di dati; manca la complessità / logica di un componente del modello in piena regola, ma l'intento sembra simile
  • XSL : converte i dati non elaborati per la visualizzazione: sembra un controller
  • HTML / CSS (renderizzato): l'output visualizzabile

Questa analogia è adatta? Cosa contiene bene e cosa no?

(Una differenza, suppongo, è che nel mio esempio non ricevo alcun input dall'output di sola visualizzazione).

    
posta Kazark 16.05.2013 - 00:09
fonte

4 risposte

4

In questo caso, suggerirei di non avere un controller in sé. L'XML è il modello e l'XSL (producendo un output HTML) è una vista su quei dati. Se disponevi di un meccanismo che richiedeva alcuni input da parte dell'utente e filtrato (o causato il filtraggio) dell'XML grezzo prima della trasformazione XSL, allora potreste considerare tale meccanismo come il vostro controller.

    
risposta data 16.05.2013 - 00:15
fonte
2

Quasi, ma non del tutto. Se avessi un ipotetico server web che potrebbe passare le stringhe di query URL come parametri XSL, direi che eri abbastanza vicino, ciò ti consentirebbe di rispondere all'input dell'utente.

ad es. %codice% E il tuo xsl conteneva: http://www.example.com/path/file.xml?param1=foo;param2=bar

Ma anche allora, non c'è modo di modificare realmente i dati stessi. Quindi, di nuovo no.

    
risposta data 16.05.2013 - 04:24
fonte
1

La tua analogia è imperfetta.

Prima di tutto, se hai un sito web completamente statico (nessun contenuto dinamico), allora direi che hai solo un set di Views. Non esiste un Modello e la piccola parte di Controller di cui hai bisogno è completamente gestita dal server web.

Il compito del Controller è di aggiornare il Modello in base alle azioni e agli input dell'utente e decidere quale pagina mostrare successivamente in base al risultato di tale aggiornamento. Nel tuo XML / XSL / HTML non c'è nessun componente che riempie quel ruolo. Supponendo che l'XML sia generato dinamicamente, si potrebbe sostenere che il componente che genera l'XML sia (parte del) Controller. e la fonte per l'XML è il modello.

Quello che hai con il tuo XML / XSL è solo un componente View. Nella maggior parte dei framework, la View consiste in una raccolta di classi e i metodi della classe sono i mezzi per fornire i dati rilevanti alla View. Nel tuo caso, la vista è costituita da una raccolta di specifiche XSL e XML è il mezzo per fornire dati alla vista. In entrambi i casi, l'HTML è solo l'uscita (effimera) della vista.

Il contenuto statico di solito non è considerato nella triade MVC, ma se devo, lo classificherei come parte della vista.

    
risposta data 16.05.2013 - 11:17
fonte
0

No, non è MVC

XML è un protocollo dati. XSL è un linguaggio di specifica di traduzione, ma anche con il motore che esegue la traduzione, è ancora solo un meccanismo. I framework lato server come Struts possono utilizzare questo meccanismo per creare HTML e CSS

HTML e CSS possono definire viste.

JavaScript può funzionare all'interno di una pagina per spostare i dati dentro e fuori una vista, un po 'come un controller. Immagino che, come con qualsiasi cosa, tu possa scrivere un MVC completo in JavaScript - e altri già hanno (vedi Atwood's Law).

Saluti

    
risposta data 16.05.2013 - 00:46
fonte

Leggi altre domande sui tag