Web服务XML请求错误

时间:2012-10-30 11:10:33

标签: xml

根据此网址的架构定义 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>

1 个答案:

答案 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复杂类型。