To reduce interoperability issues due to differences between SOAP client implementations for different languages and operating environments, design decisions have been implemented that may affect how an application is designed to use the base and core component types.

Polymorphism

Extension is limited to the request type schema and response type schema. For example, AddItemRequestType extends AbstractRequestType. In all other cases, polymorphism is avoided. For example, when specifying shipping details (i.e., ShippingDetails,) you need to choose either a flat rate or a calculated rate. Rather than extending a common rate type, discrete FlatShippingRate and CalculatedShippingRate containers are defined. You can specify either of these in the shipping details, but not both. An application will need to handle such business logic (i.e., the or logic is not exposed in the schema).

Backward Compatibility

A versioning system has been implemented so that applications will be backward compatible when new elements appear in the server-side schema.

Cardinality/Multiplicity

For base components, the cardinality of major containers is set to minOccurs="0" but maxOccurs can vary. This enables the reuse of the same container objects across different use cases that might require different combinations of child components in the future.

Data conventions

The following conventions for representing data types in the schema have been adopted:

  • For numeric values:

    • int (32-bit) data type is used instead of long (64-bit)
    • For percentage values, float is used rather than decimal
  • The core monetary amount type is derived from double.
  • Time values are expressed in GMT/UTC using the ISO format. However, some development environments (e.g., the Java 2 Platform, the Microsoft .NET Framework,) convert time values returned in SOAP messages to the time zone specified in an environment's locale.

Additional information

For additional information, refer to:

When using an IDE that recognizes WSDL files and displays the annotations, it may be useful to browse the eBay WSDL file.