Come strutturare i dati enum per ottenere l'effetto desiderato

1

Sto creando un framework per la creazione di semplici siti Web html per un sistema embedded e voglio renderlo a prova di proiettile in modo che un utente non possa commettere errori nella creazione del documento html. Come ho imparato, è difficile creare e mantenere un markup html all'interno del codice c ++. In un framework che ho trovato (solo uno che ho trovato) è possibile aggiungere qualsiasi tag e aggiungere qualsiasi attributo a un nodo. Voglio controllarlo. Per fare ciò ho bisogno di avere un sacco di dati che ho raccolto da w3schools.com. Il mio prossimo passo sarebbe inserire i dati nel codice.

Per spiegare brevemente:

  • Ho un elenco di tag consentiti
  • Ogni tag supporta un elenco di attributi globali
  • Ogni tag supporta un elenco di attributi evento
  • Alcuni tag hanno attributi specifici del tag
  • Ogni attributo ha un elenco di valori consentiti

Il problema che sto avendo è come connettere correttamente queste liste. Potrei mettere tutto in enums , ma ciò vanificherebbe lo scopo di questo framework. Potrei anche avere una classe per ciascuno dei tag, ma risulterebbe in un sacco di codice ridondante.

Il risultato finale che desidero avere:

//tag temp(tag.type); 
// OR
//tag.type temp; 
tag.a temp;
//temp.addAttribute(attribute.type.value)
temp.addAttribute(att.href("http://www.w3schools.com"));
temp.addAttribute(att.target.blank);
temp.addAttribute(att.onclick("alert('You are goint away :(')"));
temp.value("Visit W3Schools!");
temp.ToString()
//document.addNode(temp);
//this will produce the following tag
//<a href="http://www.w3schools.com" target="_blank" onclick="alert('You are goint away :(')">Visit W3Schools!</a>

Qualche idea su come strutturare i dati per raggiungere questo o qualcosa di simile?

    
posta CodeBreaker 24.03.2016 - 00:38
fonte

0 risposte

Leggi altre domande sui tag