En ce qui concerne les XSD, ces gens sympas qui ont créé Spring-WS recommandent un contrat d'abord. Leur manuel explique pourquoi c'est le cas:
http://docs.spring.io/spring-ws/site/reference/html/why-contract-first.html
... ce qui est assez bon pour moi.
La génération de dynamique du WSDL n'est pas tellement un problème. Cependant, dans le passé, j'ai eu besoin de générer un WSDL qui est conforme aux normes d'entreprise strictes. Si c'est quelque chose que vous devez faire, vous devez vous en tenir à la statique. De plus, j'ai dû modifier WSDL pour m'assurer que la définition de service joue bien avec les clients .NET. Encore une fois, la seule façon de le faire est si vous avez écrit le WSDL vous-même.
Bien sûr, si vous apprenez toujours votre chemin autour de WSDL, vous trouverez peut-être plus facile de le générer au départ. Si vous devez aller statique plus tard, vous pouvez alors prendre une copie du WSDL généré comme point de départ.