2.2.2.2.6 GetExtendedUpdateInfo

Synopsis:

This method is invoked to obtain detailed metadata for an update.

As specified in section 1.3, the client does not download all the metadata at once during the call to SyncUpdates (section 2.2.2.2.4). Rather, the metadata is divided into fragments, and only the "core" fragment, which contains just enough metadata to allow the client to evaluate if the content is needed, is returned to the client. If the client determines the content is needed, it SHOULD then call this method to obtain the additional metadata fragments that it requires.

 <wsdl:operation name="GetExtendedUpdateInfo" />

The SOAP operation is defined as follows.

 <soap:operation soapAction="http://www.microsoft.com/
    SoftwareDistribution/Server/ClientWebService/GetExtendedUpdateInfo" 
    style="document" />

Request:

 <s:element name="GetExtendedUpdateInfo">
   <s:complexType>
     <s:sequence>
       <s:element minOccurs="0" maxOccurs="1" name="cookie" 
          type="s1:Cookie" />
       <s:element minOccurs="0" maxOccurs="1" name="revisionIDs" 
          type="s1:ArrayOfInt" />
       <s:element minOccurs="0" maxOccurs="1" name="infoTypes" 
          type="s1:ArrayOfXmlUpdateFragmentType" />
       <s:element minOccurs="0" maxOccurs="1" name="locales" 
          type="s1:ArrayOfString" />
       <s:element minOccurs="0" maxOccurs="1" name="GeoId" 
          type="s1:String" />
       <s:element minOccurs="0" maxOccurs="1" name="callerAttributes" type="s1:String" />
     </s:sequence>
   </s:complexType>
 </s:element>

cookie: Specifies a cookie that MUST have been obtained from a previous call to GetCookie (section 2.2.2.2.2), GetFileLocations (section 2.2.2.2.7), or SyncUpdates (section 2.2.2.2.4). This element MUST be present.

revisionIDs: Specifies the array of revision IDs for which extended metadata fragments are to be returned.

infoTypes: Specifies the type of metadata fragments to be returned. Its format (ArrayOfXmlUpdateFragmentType) MUST be as follows.

 <s:complexType name="ArrayOfXmlUpdateFragmentType">
   <s:sequence>
     <s:element minOccurs="0" maxOccurs="unbounded" 
        name="XmlUpdateFragmentType" type="s1:XmlUpdateFragmentType" />
   </s:sequence>
 </s:complexType>

XmlUpdateFragmentType: Specifies the type of metadata fragment. Its enumeration is as follows.

 <s:simpleType name="XmlUpdateFragmentType">
   <s:restriction base="s:string">
     <s:enumeration value="Published" />
     <s:enumeration value="Core" />
     <s:enumeration value="Extended" />
     <s:enumeration value="VerificationRule" />
     <s:enumeration value="LocalizedProperties" />
     <s:enumeration value="Eula" />
   </s:restriction>
 </s:simpleType>

locales: Optionally specifies the locales for which localizable extended metadata MUST be returned. Localizable metadata are elements such as human-readable strings, which are represented differently between locales, as specified in [MS-LCID]. The service SHOULD always return the EN locale extended metadata.

GeoId: Optionally specifies the region for which to retrieve end user license agreement (EULA) XML fragments and digests for the requested updates, as specified in the [ISO-3166] three-letter region codes.<25>

callerAttributes: Optionally specifies the attributes of the caller.

Response:

 <s:element name="GetExtendedUpdateInfoResponse">
   <s:complexType>
     <s:sequence>
       <s:element minOccurs="0" maxOccurs="1" 
          name="GetExtendedUpdateInfoResult" type="s1:ExtendedUpdateInfo" />
     </s:sequence>
   </s:complexType>
 </s:element>

GetExtendedUpdateInfoResult: Upon successful completion of this operation, this element MUST be returned. Its format MUST be follows.

 <s:complexType name="ExtendedUpdateInfo">
   <s:sequence>
     <s:element minOccurs="0" maxOccurs="1" name="Updates" 
        type="s1:ArrayOfUpdateData" />
     <s:element minOccurs="0" maxOccurs="1" name="FileLocations" 
        type="s1:ArrayOfFileLocation" />
     <s:element minOccurs="0" maxOccurs="1" name="OutOfScopeRevisionIDs" 
        type="s1:ArrayOfInt" />
   </s:sequence>
 </s:complexType>

Updates: An array of entries containing the extended metadata requested for each update. Its format (ArrayOfUpdateData) MUST be as follows.

 <s:complexType name="ArrayOfUpdateData">
   <s:sequence>
     <s:element minOccurs="0" maxOccurs="unbounded" name="Update" 
        nillable="true" type="s1:UpdateData" />
   </s:sequence>
 </s:complexType>

UpdateData: Specifies the extended metadata for an update. Its format MUST be as follows.

 <s:complexType name="UpdateData">
   <s:sequence>
     <s:element minOccurs="1" maxOccurs="1" name="ID" type="s:int" />
     <s:element minOccurs="0" maxOccurs="1" name="Xml" type="s:string" />
   </s:sequence>
 </s:complexType>

ID: The revision ID of the revision.

Xml: An extended metadata fragment for this update. This element MUST be present. These fragments are created as specified in section 3.1.1. The format of the fragment is opaque to the server.

FileLocations: An array of locations for the content corresponding to each update. Its format (ArrayOfFileLocation) MUST be as follows.

 <s:complexType name="ArrayOfFileLocation">
   <s:sequence>
     <s:element minOccurs="0" maxOccurs="unbounded" name="FileLocation" 
        nillable="true" type="s1:FileLocation" />
   </s:sequence>
 </s:complexType>

FileLocation: Specifies the location of the file. Its format MUST be as follows.

 <s:complexType name="FileLocation">
   <s:sequence>
     <s:element minOccurs="0" maxOccurs="1" name="FileDigest" 
        type="s:base64Binary" />
     <s:element minOccurs="0" maxOccurs="1" name="Url" 
        type="s:string" />
   </s:sequence>
 </s:complexType>

FileDigest: This field MUST be present. The value MUST be the SHA-1 hash computed over the content of the file. This value is used to retrieve the file's download location using the GetFileLocations (section 2.2.2.2.7) method. In addition, client implementations SHOULD use this value to authenticate the content file when it is downloaded from the server, by calculating the SHA-1 hash of the downloaded file and comparing the calculated hash to the FileDigest hash. Files whose hash does not match SHOULD<26> be discarded by the client.

Url: This field MUST be present. It is an HTTP URI from which it MUST be possible to download the file.

OutOfScopeRevisionIDs: Specifies an array of revision IDs that SHOULD be purged from the client's cache because these updates are no longer in-scope for the client.