At the moment, there's very little code in place to check for missing information in UL files, so it's important that this schema is followed according to these guidelines to get smooth operation with WUD.
A UL file is written in the following form:
<?xml version="1.0" encoding="utf-8"?> <updatelist product="" servicepack="" platform="" language="" lastupdate="" xmlns="http://www.windowsupdatesdownloader.com" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.windowsupdatesdownloader.com http://www.windowsupdatesdownloader.com/wud.xsd"> <categories> <category id=""></category> </categories> <updates> <update id="" category="" publishdate="" article=""> <title></title> <description></description> <filename></filename> <url></url> </update> </updates> </updatelist>
First, the general information about the UL file must be placed in the top-level <updatelist> tag.
<updatelist product="( Operating System )" servicepack="( ServicePack )" platform="( Platform )" language="( Language Code )" lastupdate="( Last Update )" xmlns="http://wud.jcarle.com" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://wud.jcarle.com http://wud.jcarle.com/wud.xsd">
- ( Operating System ) is the general title of the Operating System being covered. ie: "Windows XP", "Windows 2000 Professional", "Windows Vista".
- ( ServicePack ) is the base service pack that precedes the updates. This value is optional. ie: "Service Pack 1", "Service Pack 2", "Service Pack 3", "Service Pack 4" or "Service Pack 5".
- ( Platform ) is the platform identifier supported by the updates. ie: "x86", "x64" or "ia64".
- ( Language Code ) is one of the 24 Microsoft language codes. (See list below).
- ( Last Update) is the date the UL was updated in the form of YYYY-MM-DD.
Before adding the updates, the categories that will be used in the UL file must be declared.
<category id="( Category ID )">( Category Title)</category>
- ( Category ID ) must be an integer and must be unique for each category.
- Two categories MUST be declared, even if they're not both used. Category 1, Critical Updates and Category 2, Service Packs. Those categories are crucial for automated integration within third party applications.
The update items contain all the information on each individual update available.
<update id="( Update ID )" category="( Category ID )" publishdate="( Publish Date )" article="( Article URL )"> <title>( Title )</title> <description>( Description )</description> <filename>( Local Filename )</filename> <url>( Remote URL )</url> </update>
- ( Update ID ) can be any alphanumeric string but it must be a unique identifier for each update.
- ( Category ID ) is the ID of one of the previously declared categories.
- ( Publish Date ) is the date the update was published/released in the form of YYYY-MM-DD.
- ( Article URL ) is optional. If included, it is the HTTP URL of a knowledge base article related to this update. It is important that the URL be a fully qualified HTTP URL.
- ( Title ) is the display title used for the update.
- ( Description ) is the full description of the update. The description text is optional, but the tag, even if empty must be present.
- ( Local Filename ) is the filename that will be used to save the downloaded update. It is important that no path is used. The importance of this tag becomes clear when you wish to download both the .NET frameworks v1.1 and v2. Both have the filename dotnetfx.exe. So a good choice for this tag for both of those updates would be dotnetfx11.exe and dotnetfx20.exe, respectively.
- ( Remote URL ) is the HTTP URL where the update can be retrieved. It is important that the URL be a fully qualified HTTP URL.
And that pretty much makes up the UL files.
You can also use the W3C XSD Validation Tool to validate your UL once you've included the XML Schema Definition in the updatelist tag.
Microsoft Language Codes
ARA - Arabic CHS - Chinese (Simplified) CHT - Chinese (Traditional) CSY - Czech DAN - Danish NLD - Dutch ENU - English FIN - Finnish FRA - French DEU - German ELL - Greek HEB - Hebrew HUN - Hungarian ITA - Italian JPN - Japanese KOR - Korean NOR - Norwegian (Bokmål) PLK - Polish PTB - Portuguese (Brazil) PTG - Portuguese (Portugal) RUS - Russian ESN - Spanish SVE - Swedish TRK - Turkish
This post has been edited by jcarle: 26 February 2012 - 08:57 AM