1
我的模式是:元素類型(長)沒有內容
<xsd:element name="SetMonitor">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="period" type="xsd:long" />
<xsd:element name="refreshrate" type="xsd:long" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
而我將XML:
案例1.
<SetMonitor
xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:cb="http://schemas.cordys.com/1.0/coboc">
<period/>
<refreshrate/>
</SetMonitor>
OR 病例2
<SetMonitor
xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:cb="http://schemas.cordys.com/1.0/coboc">
<period>10</period>
<refreshrate>20</refreshrate>
</SetMonitor>
對於情況下2沒有任何問題。但對於情況1我得到以下錯誤:
Caused by: org.xml.sax.SAXException: cvc-datatype-valid.1.2.1: '' is not a valid value for 'integer'.
org.xml.sax.SAXParseException; lineNumber: 6; columnNumber: 14; cvc-datatype-valid.1.2.1: '' is not a valid value for 'integer'.
我如何修改WSDL,使它同時接受情況1和情況下2? 請幫忙。
我試圖修改的wsdl如上所述(頂部的那個)。但是我遇到了這個新問題,像'引起:org.xml.sax.SAXException:cvc-complex-type.2.4.b:元素'cb:SetMonitor'的內容不完整。期待「{」http://schemas.cordys.com/1.0/coboc":period}'之一。 org.xml.sax.SAXParseException; lineNumber:4; columnNumber:3; cvc-complex-type.2.4.b:元素'cb:SetMonitor'的內容不完整。期望'{「http://schemas.cordys.com/1.0/coboc":period}'之一。'如果我把**期**和**刷新**的moiOccurs ='0',那麼它作品。 – Ramesh
這意味着來自xml的' 不會映射 '。 –
Ramesh
'minOccurs =「0」'表示可選元素(可以省略)。 'nillable =「true」意味着它仍然需要在xml中有這個元素,但是你可以把它標記爲'xsi:nil =「true」'(類似於其他語言中的「null」) –