2010-03-16 60 views
0

我有從外部Web服務這種簡單類型:ZSI.generate.Wsdl2PythonError:不支持本地的simpleType限制

<xsd:element name="card_number" maxOccurs="1" 
minOccurs="1"> 
<xsd:simpleType> 
    <xsd:restriction base="tns:PanType"> 
     <xsd:pattern value="\d{16}"></xsd:pattern> 
     <xsd:whiteSpace value="collapse"></xsd:whiteSpace> 
    </xsd:restriction> 
</xsd:simpleType> 
</xsd:element> 

但磨片我啓動wsdl2py -b filename.wsdl我得到這個錯誤:

ZSI.generate.Wsdl2PythonError: unsupported local simpleType restriction: <schema targetNamespace="https://xxxxx.yyyyy.zz/sss/"><complexType name="PaymentReq"><sequence><element name="card_number"><simpleType> 

我該如何解決這個問題?我試圖從simpleType更改爲compleType和wsdl2py生成沒有問題的Python代碼。這樣我就不能在我的python對象中使用card_number。

感謝您的幫助。

回答

1

我不確定這是否仍然如此,但谷歌表示,ZSI不支持用戶定義的限制庫的simpleTypes。

如果這仍是如此,那麼你可以修改「CARD_NUMBER」的限制,以卸下底座和更新的simpleType限制性內限制刻面,以反映該基地將已提供。

如果您發佈限制方面的內容PanType,我們可以告訴您這將是什麼。

+0

感謝您的回覆!如果我通過這個改變了這一行 ,但它改變了數據類型。 我不知道Pantype的內容,因爲它停留在外部服務器上:xmlns:tns =「https://xxx.yyy.it/sss/」 如何修改上述元素? 謝謝。 – diegor 2010-03-16 10:27:10

+0

你應該能夠解決'PanType',它是不是由'location'定義引用? – MattH 2010-03-16 10:44:18

+0

Nop!我在wsdl文件上看到的位置是「服務」標籤的位置。這個wsdl由銀行提供,我問他們PanType的定義。我對他們的積極迴應沒有信心。 : - | – diegor 2010-03-16 10:51:53