For Web services there two ways to represent what is commonly known as
null in programming.
minOccurs="0", it means the element is optional. In Taverna you can simply avoid connecting such an input port on the Web service or XML input splitter, in which case Taverna would skip creation of that element.
xsd:nillable="true", then you can make Taverna (since 2.2) send the special attribute
xsi:nil="true"by connecting the input port to a string constant with the string value
xsi:nil. Taverna will also send
xsi:nilif you have not connected the input port, the element is not optional but is nillable.
You may expect the intermediate outputs from the XML input splitter to see how Taverna represents the optional inputs. In the case of an element being neither optional or nillable, but no connection has been made to the port, Taverna will insert an empty string, which might or might not be valid, depending on the web service.
We generally advise Web service developers to use the optional elements rather than nillable – most Web service frameworks will treat either as
null or similar. However, the
xsi:nil solution is the only option if you want to represent
null as part of a list using the same element name.