Domanda

Sto considerando Altova MapForce (o qualcosa di simile) per produrre XSLT e/o una classe Java o C# per eseguire la traduzione.Oggi estraiamo i dati direttamente dal database e creiamo manualmente una stringa XML che pubblichiamo su un servizio web.

Dovrebbe essere db -> (interno)XML -> XSLT -> (esterno)XML?Cosa fate là fuori nel vasto mondo?

È stato utile?

Soluzione

Vorrei utilizzare una delle classi di serializzazione XML predefinite per eseguire la generazione XML interna, quindi utilizzare XSLT per trasformarla in XML esterno.Potresti anche generare uno schema per imporre che il codice di traduzione (qualunque cosa guiderà la tua traduzione XSLT) continui a ottenere l'XML che si aspetta per la traduzione nel caso in cui le modifiche all'oggetto interrompano le cose.

Sul mercato sono disponibili numerosi editor XSLT che ti aiuteranno a eseguire le mappature, ma preferisco utilizzare semplicemente un normale editor XML.

Altri suggerimenti

sì, penso che tu stia seguendo la strada giusta con MapForce.Se non vuoi scrivere codice per eseguire la trasformazione effettiva, MapForce può farlo anche per te.Questo potrebbe essere migliore a lungo termine perché è meno codice da mantenere.

Evita le opzioni più costose (ad es.BizTalk) a meno che non sia realmente necessaria l'integrazione e l'orchestrazione B2B.

che database stai usando?Oracle ha alcuni utili strumenti di mappatura XML.Esistono alcuni strumenti di associazione Java (uno è http://java.sun.com/developer/technicalArticles/WebServices/jaxb).Tuttavia, se hai il lusso, considera l'utilizzo di Ruby che ha dei simpatici metodi "to_xml" incorporati.

Suggerimento n. 1:Evitare qualsiasi utilizzo di XSLT.

Il supporto dello strumento fa schifo.La soluzione risultante sarà irraggiungibile.

Suggerimento n.2:Elimina tutti i passaggi non necessari.

Traduci semplicemente il tuo set di risultati (supponendo che tu stia utilizzando JDBC o equivalente) nell'XML in uscita.

Suggerimento n.3:Partire dal presupposto che qualsiasi utilizzo di uno strumento basato su schema sia errato e pianificare di conseguenza.

In altre parole, fingi e basta.Se devi creare un payload SOAP mutante (ridondante, lo so), crea semplicemente un messaggio SOAP funzionante e poi trasformalo in un modello.La velocità non fa schifo.

Detto questo, la risposta migliore/corretta è utilizzare una soluzione in stile "XML Writer".Ce ne sono alcuni.

La migliore è quella che ho scritto, LOX (oggetti leggeri per XML).

L'API pubblica utilizza un modello di progettazione Builder.A causa di qualche magia nascosta, è impossibile creare XML non valido.

Notare che: Se XML è la risposta, hai posto la domanda sbagliata.A volte, siamo costretti contro la nostra volontà a usarlo in qualche modo.Quando ciò accade, è fondamentale utilizzare strumenti che riducano al minimo lo sforzo degli sviluppatori e migliorino la manutenibilità del codice.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top