Python 如何用Spyne描述元素属性
我可以接受,但当涉及到更复杂的事情时,我面临着缺乏文档和高级示例的问题。在我的例子中,我有一个服务方法,它接受这样的主体Python 如何用Spyne描述元素属性,python,xml,soap,spyne,Python,Xml,Soap,Spyne,我可以接受,但当涉及到更复杂的事情时,我面临着缺乏文档和高级示例的问题。在我的例子中,我有一个服务方法,它接受这样的主体 <OTA_HotelAvailRQ xmlns="http://www.opentravel.org/OTA/2003/05" Version="1.0" TimeStamp="2005-08-01T09:30:47+02:00" EchoToken="fb57388d" AvailRatesOnly="true"> <AvailRequestSegme
<OTA_HotelAvailRQ xmlns="http://www.opentravel.org/OTA/2003/05" Version="1.0" TimeStamp="2005-08-01T09:30:47+02:00" EchoToken="fb57388d" AvailRatesOnly="true">
<AvailRequestSegments>
<AvailRequestSegment AvailReqType="Room">
<HotelSearchCriteria>
<Criterion>
<HotelRef HotelCode="HOTEL1"/>
</Criterion>
</HotelSearchCriteria>
</AvailRequestSegment>
</AvailRequestSegments>
</OTA_HotelAvailRQ>
你能帮我实现一个接受这种请求的服务吗?我想:
class HotelReference(ComplexModel):
__namespace__ = 'http://www.opentravel.org/OTA/2003/05'
HotelCode = XmlAttribute(Unicode)
class Criterion(ComplexModel):
__namespace__ = 'http://www.opentravel.org/OTA/2003/05'
HotelRef = HotelReference
class AvailRequestSegment(ComplexModel):
__namespace__ = 'http://www.opentravel.org/OTA/2003/05'
AvailReqType = XmlAttribute(Unicode(values=["Room", "House", "Condo", "Castle"]))
HotelSearchCriteria = Criterion.customize(max_occurs='unbounded')
class HotelAvailRQ(ComplexModel):
__namespace__ = 'http://www.opentravel.org/OTA/2003/05'
Version = XmlAttribute(Unicode)
TimeStamp = XmlAttribute(DateTime)
EchoToken = XmlAttribute(ByteArray)
AvailRatesOnly XmlAttribute(Boolean)
AvailRequestSegments = Array(AvailRequestSegment)
不经意间:
class HotelReference(ComplexModel):
__namespace__ = 'http://www.opentravel.org/OTA/2003/05'
HotelCode = XmlAttribute(Unicode)
class Criterion(ComplexModel):
__namespace__ = 'http://www.opentravel.org/OTA/2003/05'
HotelRef = HotelReference
class AvailRequestSegment(ComplexModel):
__namespace__ = 'http://www.opentravel.org/OTA/2003/05'
AvailReqType = XmlAttribute(Unicode(values=["Room", "House", "Condo", "Castle"]))
HotelSearchCriteria = Criterion.customize(max_occurs='unbounded')
class HotelAvailRQ(ComplexModel):
__namespace__ = 'http://www.opentravel.org/OTA/2003/05'
Version = XmlAttribute(Unicode)
TimeStamp = XmlAttribute(DateTime)
EchoToken = XmlAttribute(ByteArray)
AvailRatesOnly XmlAttribute(Boolean)
AvailRequestSegments = Array(AvailRequestSegment)
好的,我知道了。现在,除了一件事,请求定义似乎很清楚<代码>OTA_HotelAvailRQ属性是必需的。我将它们描述为
xmltattribute(Mandatory.Unicode)
。但当我发布一个没有这些参数的请求时,验证意外通过。这很可能是一个bug。请在发送一个pull请求,其中包含一个测试用例,用于检查预期的xml架构输出。下面是我的pull请求和测试,以说明错误已修复的问题。解决方法是使用xmldattribute(…,use='required')
您能帮我一下吗,好的,我知道了。现在,除了一件事,请求定义似乎很清楚<代码>OTA_HotelAvailRQ属性是必需的。我将它们描述为xmltattribute(Mandatory.Unicode)
。但当我发布一个没有这些参数的请求时,验证意外通过。这很可能是一个bug。请在发送一个pull请求,其中包含一个测试用例,用于检查预期的xml架构输出。下面是我的pull请求和测试,以说明错误已修复的问题。解决方法是使用xmldattribute(…,use='required')
请您帮忙,好吗