2.2.4.2 VersionData Complex Type

The VersionData complex type is used to represent the capability version of the client and server. The version data in this type MUST be represented by using a literal string and MUST conform to the format "a.b.c.d". Subversion value "a" MUST be the most major component of the version, value "b" MUST be the next most major, value "c" MUST be the next most major, and "d" MUST be the minor subversion value.

When a client makes a request, it SHOULD specify "1.0.0.0" as both the MinimumVersion parameter and as the MaximumVersion parameter, unless otherwise specified.

When the server receives a request, it SHOULD compare its capability version to the capability version range the client presents. The server SHOULD reject the request with a Microsoft.DigitalRightsManagement.Core.UnsupportedDataVersionException fault if the MaximumVersion value presented by the client is higher than the highest capability version of the server.

When the server responds to the client, including instances when the server responds with an error<3>, it SHOULD specify the lowest capability version it can support as the value for the MinimumVersion parameter. The server SHOULD specify the highest capability version it can support as the value for the MaximumVersion parameter.

 <xs:complexType name="VersionData">
   <xs:sequence>
     <xs:element name="MinimumVersion"
       type="string"
       minOccurs="0"
       maxOccurs="1"
      />
     <xs:element name="MaximumVersion"
       type="string"
       minOccurs="0"
       maxOccurs="1"
      />
   </xs:sequence>
 </xs:complexType>