Quando si tratta degli XSD, quelle simpatiche persone che hanno creato Spring-WS raccomandano il contratto. Il loro manuale spiega perché questo è il caso:
http://docs.spring.io/spring-ws/site/reference/html/why-conctact-first.html
... che è abbastanza buono per me.
Se generare dinamicamente il WSDL non è tanto un problema. Tuttavia, in passato ho bisogno di generare WSDL che è conforme a rigorosi standard aziendali. Se questo è qualcosa che devi fare, dovresti restare con statico. Inoltre, ho bisogno di modificare WSDL per garantire che la definizione del servizio sia perfetta con i client .NET. Ancora una volta, l'unico modo per farlo è se hai scritto tu stesso il WSDL.
Naturalmente, se stai ancora imparando a aggirare WSDL, potresti trovare più facile generarlo inizialmente. Se devi diventare statico in seguito, allora puoi prendere una copia del WSDL generato come punto di partenza.