根据此网址的架构定义 Service URL
我请求XML像这样,但是当我向https://www.con-way.com/XMLj/X-Rate发送请求时收到错误。如何传递ItemType元素?
<RateRequest>
<OriginZip country='us'>97006</OriginZip>
<DestinationZip country='us'>33179</DestinationZip>
<CustNmbr shipcode="S">883885</CustNmbr>
<ChargeCode>P</ChargeCode>
<EffectiveDate>10/30/12</EffectiveDate>
<Item>
<CmdtyClass>775</CmdtyClass>
<Weight unit='lbs'>667</Weight>
</Item>
<ItemType>
<Quantity pkgtype='PCS'>100</Quantity>
</ItemType>
<Accessorial>SSC</Accessorial>
<Accessorial>DNC</Accessorial>
<Accessorial>GUR</Accessorial>
</RateRequest>
答案 0 :(得分:1)
就模式定义而言,ItemType不是RateRequest元素的有效子元素。这可能会导致错误。
<xs:element name="RateRequest">
<xs:complexType>
<xs:sequence>
<xs:element ref="OriginZip"/>
<xs:element ref="DestinationZip"/>
<xs:element name="CustNmbr" minOccurs="0">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:positiveInteger">
<xs:attribute name="shipcode" type="ShipCodeType" use="optional" default="S"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element ref="ChargeCode" minOccurs="0"/>
<xs:element name="DiscountRate" type="xs:decimal" minOccurs="0"/>
<xs:element name="EffectiveDate" type="DateMMDDYYType" minOccurs="0"/>
<xs:element name="Item" maxOccurs="4">
<xs:complexType>
<xs:sequence>
<xs:element ref="CmdtyClass"/>
<xs:element name="Weight" type="WeightWithUnitType"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="Accessorial" type="RatingAccessorialCodeType" minOccurs="0" maxOccurs="7"/>
<xs:element ref="TotalCubeVolume" minOccurs="0"/>
<xs:element ref="SIC" minOccurs="0"/>
</xs:sequence>
<xs:attribute name="schemaVersion" type="SchemaVersionType"/>
</xs:complexType>
</xs:element>
我查看了conway站点上RateRequest xml的建议用法,似乎ItemType复杂类型不能以任何方式用于请求中。但是,Item元素可以使用CmdtyClass类型引用引用(预定义)项目。在定义项目时,此CmdtyClass类型也用于ItemType复杂类型。