Taverna WSDL parser uses a simple data model which is not JAXB based.
taverna-wsdl-generic uses ***TypeDescriptor those are either
complex/simple/attribute.
TypeDescriptors.java parses XML Schema into the Taverna's data-model,
and then _splitters_ may extract/set the data.
As far as I remember WADL implementation doesn't use this model and do
not perform XML Schema analysis.
Cheers,
Dmitry
On 1/4/2018 5:04 PM, Stian Soiland-Reyes wrote:
I updated the package names of
https://github.com/apache/incubator-taverna-server/tree/master/taverna-server-client
which required some fixes and reindentation of the WADL file
https://github.com/apache/incubator-taverna-server/blob/master/taverna-server-client/src/main/wadl/tavserv.wadl
..which made me investigate how this all works.
This file seems to have a massive amalgamation of XML Schema definitions
with WADL service endpoint definitions. Why are they just in a single
massive file?
The XSD types correspond to the JAXB-annotated beans within
taverna-server-webapp - for instance
https://github.com/apache/incubator-taverna-server/blob/master/taverna-server-client/src/main/wadl/tavserv.wadl#L281
corresponds to
https://github.com/apache/incubator-taverna-server/blob/master/taverna-server-webapp/src/main/java/org/taverna/server/master/rest/DirectoryContents.java#L43
Are these auto-generated? How are they kept in sync?
I understand that we don't want a runtime dependency on
taverna-server-webapp from taverna-server-client
(as silly Grid client/server applications used to do)
.. but is it not better to move the "pure" beans into a separate module
and then use a Maven plugin to generate the XSD from the annotations?
I tried to use
http://www.mojohaus.org/jaxb2-maven-plugin/Documentation/v2.2/schemagen-mojo.html
but it became very upset with all the non-JAXB classes in
taverna-server-webapp (e.g. whenever it sees an abstract inner class) --
so I don't know how to extract out the current XML schema corresponding
to the various @XmlType files (except some big grep job).
I guess the XML schemas are generated as part of the WSDL interface at
runtime?
There's also all the "proto-schema" examples for the REST interface in
https://github.com/apache/incubator-taverna-server/blob/master/usage.md#resource-runsid
which would need to be in sync.
For now I assume these are "kind of OK" and that we can move forward
with the taverna-server release candidate?
Eager readers might want to publish these schemas on
https://taverna.incubator.apache.org/ns/
(which http://ns.taverna.org.uk/ redirects to)