Dove dovrebbe essere eseguita l'elaborazione dell'XML strutturato?

0

Mi è stato affidato il compito di riqualificare una soluzione "in house" per renderla espandibile e più facile da mantenere e amministrare.

La soluzione originale era stata sostituita nel tempo usando PHP come più requisiti sono stati aggiunti e la necessità di espandersi è prevista nel prossimo futuro.

La soluzione raccoglie molti file diversi, come documenti di parole e strutture variabili di documenti XML, da diverse "posizioni" e li converte in documenti XML specificamente strutturati che vengono inviati tramite un servizio web. Per aggiungere al mix, alcuni dei file XML originali vengono recuperati dalla stessa "posizione" ma hanno vari livelli di elaborazione richiesti a seconda di dove si trovano prima (identificati da un campo "cliente" nell'XML)

La mia intenzione è di rendere la nuova soluzione il più modulare possibile in modo che l'elaborazione possa essere sospesa a livello di singolo "cliente" o "posizione" senza influenzare nient'altro.

Mentre ho molti enigmi da superare e domande a cui rispondere, la domanda che mi sta tenendo sveglio di notte al momento è "Dove dovrebbe essere eseguita l'elaborazione dell'XML strutturato?" Al momento è fatto per "cliente" ma, come puoi immaginare, porta a un sacco di codice duplicato. Forse è inevitabile, a causa dell'elaborazione specifica del "cliente" richiesta a volte ma la sanità mentale mi dice che ci deve essere un modo migliore.

    
posta David 11.06.2013 - 17:26
fonte

2 risposte

1

Il mio consiglio sarebbe quello di investire nell'apprendimento di XSLT (ho trovato un tutorial decente dal punto di vista di un programmatore PHP qui ). Anche se è vero che probabilmente potresti realizzare la stessa cosa usando solo PHP, potrebbe diventare piuttosto complicato.

Per descrivere brevemente XSLT, in XSLT definisci una lista di regole che vengono attivate in base alla specificità dell'XPath usato per descrivere quali nodi sono interessati (i nodi molto specifici descritti da xpath hanno priorità più alta rispetto a regole più generiche). Ti permette di trasformare l'XML in qualsiasi cosa, incluso l'XML che, hai indovinato, significa che puoi eseguire operazioni separate se lo desideri. È inoltre possibile definire regole che si attivano solo quando determinati nodi sono disponibili, ad esempio, se si desidera applicare la trasformazione utilizzando il cliente o la posizione, semplicemente non si forniscono informazioni relative a qualcos'altro e la regola corrispondente non viene attivata.

Se si desidera spostare la logica sul servizio Web, XSLT è supportato praticamente in qualsiasi linguaggio che supporti XML stesso. In ogni caso, questo dovrebbe offrire una soluzione pulita che consente di utilizzare una tecnologia adeguata per la gestione di questi tipi di situazioni.

    
risposta data 11.06.2013 - 17:49
fonte
0

Hai detto che tutto questo XML va a un servizio web comune, quindi un'opzione potrebbe essere che l'elaborazione avvenga lì. Naturalmente, ciò richiederebbe modifiche al tuo servizio web in quanto dovrebbe accettare le nuove strutture XML, ma dal momento che verrà trasformato ed elaborato immediatamente, che potrebbe non costituire un problema.

    
risposta data 11.06.2013 - 17:30
fonte

Leggi altre domande sui tag