Python泡沫:如何获得改为xsd:timeInstant的xsd:日期请求?

2024-09-29 01:23:33 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试使用一个需要xsd:timeInstant输入请求(请参阅WSDL):

<xsd:complexType name="QueryParams">
       <xsd:all>
            <xsd:element name="start" type="xsd:timeInstant" minOccurs="0"/>
            <xsd:element name="stop" type="xsd:timeInstant" minOccurs="0"/>                    
        </xsd:all>
</xsd:complexType>

因此,产生的SOAP-XML请求应该包含如下内容:

^{pr2}$

使用肥皂水,我创建了以下对象:

qp = client.factory.create("ns0:QueryParams")
qp.start = "2009-05-10T17:00:00Z"
qp.stop = "2009-06-10T17:00:00Z"

不幸的是,泡沫变成了xsd:日期被服务器拒绝。在

<query xsi:type="ns3:QueryParams">
    <start xsi:type="ns1:date">2009-05-10T17:00:00Z</start>
    <stop xsi:type="ns1:date">2009-06-10T17:00:00Z</stop>
</query>

有什么想法吗xsd:timeInstant?在


Tags: nametypeelementallquerystartxsdstop
1条回答
网友
1楼 · 发布于 2024-09-29 01:23:33

我想我已经找到了解决办法,所以不妨把答案贴出来以备将来参考。在

在泡沫/xsd中/sxbuiltin.py文件,有一个工厂类

class Factory:

    tags =\
    {
        # any
        'anyType' : XAny,
        ...
        # dates & times
        ...
        'gMonth' : XString,

在gMonth下,我补充道

^{pr2}$

WSDL类型xsd:timeInstant是现在正确复制。SOAP请求XML显示如下:

<query xsi:type="ns3:QueryParams">
    <start xsi:type="ns1:timeInstant">2009-05-10T17:00:00Z</start>
    <stop xsi:type="ns1:timeInstant">2009-06-10T17:00:00Z</stop>
</query>

服务器能够处理这些输入。在

相关问题 更多 >