Vorrei controllare l'ordine degli attributi nei file .java generati dal compilatore JAXB.Compilatore JAXB e ordine degli attributi
Sono consapevole che l'ordine di attributo non è importante per la convalida xml. L'ordine è importante per il confronto testuale di xml marshalled in un ambiente di test di regressione. L'ordine degli attributi in un file influenza direttamente l'ordine degli attributi nei tag xml marshalled.
Ogni volta che viene eseguito il compilatore JAXB, i gruppi di attributi vengono visualizzati in un ordine diverso, anche senza modifiche allo schema. Non è disponibile alcuna opzione apparente sul compilatore per impedire questo comportamento.
Vorrei evitare di eseguire uno script di post-compilazione per riordinare in ordine alfabetico gli attributi nei file .java generati poiché questo suddivide i gruppi di attributi, ma non sono sicuro che ci sia un'altra opzione.
Qualsiasi suggerimento è molto apprezzato.
Grazie, Dave
Il confronto è parte di un grande test di regressione di script bash guidato e non stiamo attualmente l'analisi di qualsiasi delle risposte XML. Potrei usare uno strumento diff XML ma non ho esperienza con loro. Sto lavorando in un ambiente Solaris: puoi suggerire uno strumento diff xml che può essere richiamato dalla riga di comando per questo scopo? Anche i file da confrontare potrebbero non essere validi rispetto allo schema perché alcune differenze note sono sostituite con valori costanti. – daveg
Inoltre stavo considerando di riordinare gli attributi nel file .java - non la risposta xml. Immagino che il marshaller usi la reflection perché l'ordine nel file .java sembra controllare direttamente l'ordine degli attributi nelle risposte marshalled. – daveg
Ho modificato la mia risposta per indirizzare i tuoi due punti. –