我有一个执行“编辑”操作的sql。如果值存在,编辑的功能应该更新,如果不存在则忽略,因此需要可选的输入参数。为了使这个功能正常工作,我需要让Data Services Server生成一个wsdl/xsd,其参数需要出现0次或更多次,但似乎我只能让它生成一个请求,要求所有输入中出现1次或多次参数。这意味着编辑操作将需要每个字段,而不是只发送那些将被更新的字段。WSO2数据服务服务器sql更新的可选输入参数
This Previous post!建议在param元素上使用defaultValue作为生成可选输入参数的一种方式。
下面的代码片段显示了wso2数据服务服务器附带的rdbms_sample中的一些代码。此代码片段包含工资输入的defaultValue = 1500。其中根据上面的帖子和defaultValues的wso2文档!它应该导致为工资字段生成可选的输入参数。
<query id="addEmployeeQuery" useConfig="default">
<sql>insert into Employees (employeeNumber, lastName, firstName, email, salary) values(:employeeNumber,:lastName,:firstName,:email,:salary)</sql>
<param name="employeeNumber" ordinal="1" paramType="SCALAR" sqlType="INTEGER" type="IN"/>
<param name="lastName" ordinal="2" paramType="SCALAR" sqlType="STRING" type="IN">
<validateLength maximum="20" minimum="3"/>
</param>
<param name="firstName" ordinal="3" paramType="SCALAR" sqlType="STRING" type="IN"/>
<param name="email" ordinal="4" paramType="SCALAR" sqlType="STRING" type="IN">
<validatePattern pattern="(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*|"(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21\x23-\x5b\x5d-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])*")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-z0-9-]*[a-z0-9]:(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21-\x5a\x53-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])+)\])"/>
</param>
<param defaultValue="1500" name="salary" ordinal="5" paramType="SCALAR" sqlType="DOUBLE" type="IN"/>
</query>
当观察片断下面请注意,如文档,似乎表明当默认值是存在的薪水期待恰好一个发生不是0或1发生。
<body>
<p:addEmployee xmlns:p="http://ws.wso2.org/dataservice/samples/rdbms_sample">
<!--Exactly 1 occurrence-->
<xs:employeeNumber xmlns:xs="http://ws.wso2.org/dataservice/samples/rdbms_sample">?</xs:employeeNumber>
<!--Exactly 1 occurrence-->
<xs:lastName xmlns:xs="http://ws.wso2.org/dataservice/samples/rdbms_sample">?</xs:lastName>
<!--Exactly 1 occurrence-->
<xs:firstName xmlns:xs="http://ws.wso2.org/dataservice/samples/rdbms_sample">?</xs:firstName>
<!--Exactly 1 occurrence-->
<xs:email xmlns:xs="http://ws.wso2.org/dataservice/samples/rdbms_sample">?</xs:email>
<!--Exactly 1 occurrence-->
<xs:salary xmlns:xs="http://ws.wso2.org/dataservice/samples/rdbms_sample">?</xs:salary>
</p:addEmployee>
</body>
什么我需要做的,使所有上添加/更新可选的情况下上述参数。
请参阅http://stackoverflow.com/questions/19326683/using-input-parameter-as-an-optional-input – 2016-05-04 17:44:19