我有一個執行「編輯」操作的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