FILE: C:\Program Files\Update Services\Schema\SoftwareDistributionPackage.xsd
--
A two-part version string, such as "1.0". This is used for informational purposes only and not for schema validation. The value should always be set to "1.0" for now.
A language that a LocalizedProperties element applies to. A LocalizedProperties element must apply to at least one language. The DefaultPropertiesLanguage attribute of the Properties element can specify which one of the languages should be used by default when no LocalizedProperties element exists for a given language.
The name or title of the package.
The descriptive text of the package. This will be rendered as text, not HTML.
The language-specific descriptive properties for the update.
Defines the possible Update Types used in identifying the package type.
Specifies that the package is a Software update. Software updates are the normal case for Local Publishing.
Specifies that the package is a Driver update. Driver updates are targetted to specific hardware and are differentiated from Software because they use a different Install handler.
Specifies that the package is a Detectoid. Detectoids are special updates that provide shared applicability rules across updates and pruning updates that shouldn't flow to the client if the detectoid prerequisite is not met.
The assessment of how installation/uninstallation of the update will impact the system.
Specifies that installing/uninstalling the update will result in the level of impact to the system that is typical to most updates. This means, in essence, that the update does not qualify for any of the special impact ratings defined below.
Specifies that the update qualifies as a "zero service interruption" (ZSI) update. Installing/uninstalling a ZSI update results in negligible impact on the system. This is the desired behavior for all updates. The update must meet stringent requirements to qualify for this rating, including but not limited to: it must not perform or require a reboot, it must not display any UI, and it must install/uninstall successfully even if it affects an application or service that is currently in use. Updates that qualify for this rating may be eligible for special handling within MSUS, such as accelerated distribution. Please see other specifications for details.
Specifies that installing/uninstalling the update results in such a high impact to the system that it must be installed "exclusively". This means the MSUS Client will install/uninstall this update by itself without batching it together with others. Update authors should avoid authoring exclusive updates if at all possible. Exclusive updates typically reboot during or after installation (although it is permitted to author an exclusive update that does not reboot). Exclusive updates may face restrictions in how they may be distributed. Please see other specifications for details.
The reboot behavior exhibited by the update during installation/uninstallation. Updates that cause or require reboots may face restrictions in how they may be distributed.
Specifies that the update never needs a reboot during or after installation/uninstallation. This is the desired behavior for all updates.
Specifies that the MSUS Client should always reboot the machine after successfully completing installation/uninstallation of the update. The Client may perform the reboot after installing or uninstalling other updates as part of a batch. This behavior can be overridden by setting Impact to RequiresExclusiveHandling.
Specifies that the underlying installer can request that the MSUS Client reboot the machine after successfully completing the installation/uninstallation of the update. If there is any possibility whatsoever that a reboot could be requested, this option must be chosen. Each update handler defines its own mechanism for receiving the reboot request from the underlying installer. The Client may perform the requested reboot after installing or uninstalling other updates as part of a batch. This behavior can be overridden by setting Impact to RequiresExclusiveHandling.
Specifies properties of the packages (un)install.
Specifies whether or not the package can request input from the user during installation/uninstallation. This attribute must be set to true if there is any possibility whatsoever that input will be requested. Updates that can exhibit this behavior may face some restrictions in how they may be distributed.
Specifies whether or not the package requires network connectivity for the installation/uninstallation to complete successfully. If true, the agent will not attempt the installation/uninstallation if the machine is not connected to a network. Note that this attribute does not test reachability of the Internet or any particular network server; that can be tested with applicability rules.
Data that is specific to the install handler (e.g., MSI, MSP, command-line, etc). This element is abstract. Each install handler derives a new complexType containing its own install-handler-specific elements and attributes.
Each package contains one or more installable items. Typically applications have a single installable item and updtes have several (e.g., one per locale).
Additional applicability rules for this installable item, if any. If present, the rules are added (and-ed) to the ones specified at the package level. So an item is not considered installable unless both it's IsInstallable and the package IsInstallable rules return true. If omitted, default to using the package-level rules.
Specifies that the package can be installed and the various behaviors for installation.
If present, specifies that the update can be uninstalled and the various behaviors for uninstallation. If not present, the update does not support uninstall.
If present, specifies the origin package file (e.g, on the Microsoft Download Center).
The language that the binary has been localized to. If unspecified, the item is language-independent. This refers to the languages of the binaries, as opposed to the languages that the meta-data supports.
The publication state of the update.
Specifies that the update is available to clients.
Specifies that the update has been expired and should not be offered to clients. Expired updates can not be revised.
The abstract base type for an applicability rule element.
The abstract base type for applicability metadata. This is used so that new applicability metadata can be defined in new XML schemas without revising the core schema. Applicability metadata is essentially information that is needed by multiple applicability rules but is large enough that it would significantly bloat the XML to duplicate it in each rule that needed it.
The applicability rules for the package. Each of the child elements checks for a different condition. The child elements are optional, as is the single element each one can contain. If a child element or the contained element is missing, the condition is assumed to be false. Please see other specifications for information about how applicability rules should be authored.
An applicability expression that evaluates to true if the package is actually installed. This expression is supposed to check for the exact package, not for something that supersedes it.
An applicability expression that evaluates to true if something else already installed on the machine supersedes the package. This allows package authors to declare ahead of time how to detect that their package is eventually superseded, rather than having (or in addition to having) the superseding packages "point back" to the superseded package via an entry in the SupersededPackages element. This is important because the superseding software may be installed on the machine before the publisher even authors the metadata for it. In that case, the IsInstalled rule will fail for the old package, and since metadata is not yet available for the new package, the only way to detect the supersedence is with the IsSuperseded rule. If there is no IsSuperseded rule, then the old package will appear to be not installed and not installable when the new software is on the machine. The state of the machine won't be harmed, but the administrator will think it may not be patched to the appropriate level, even though it is.
An applicability expression that evaluates to true if the package is even relevalant to this machine (e.g., SQL server on XP home). This rule allows the author to specify what prerequisite conditions are necessary for this package to be applicable. Note that a package should only be offered for install if IsInstalled is false, IsSuperseded is false, and IsInstallable is true.
Applicability metadata is essentially information that is needed by multiple applicability rules but is large enough that it would significantly bloat the XML to duplicate it in each rule that needed it. Rather than duplicating the data in each rule, it is specified once here and the rules are smart enough to retrieve it from here.
Miscelaneous properties of the package.
A URL providing more information than may have been available at publishing time, such as a KB article. This URL is only used if no MoreInfoUrl is specified in LocalizedProperties.
A URL which provides product support information for the update.
Specifies the marketing approved product name without the SKU distiction (e.g., Windows XP SP 1). For updates, refers to the name of the product(s) being patched.
An identity of this package. All variants of this package are published to SUS XML with this as the "legacy name".
The UTC date and time that this revision of the update's metadata was authored.
Specifies if source code, such as a companion CD, may be required for installation of the update. If true, or if the value is true for any bundled children (recursively), source code may be required for installation. Otherwise the update can be installed without a companion source code.
Specifies the name of the vendor who created the software package.
Specifies the Publication State of this software package. This is optional and defaults to Published.
Specifies whether this package is made available only through the Client Servicing API. This is optional and defaults to false. If true, agents talking to the WSUS web services will not receive this package.
Specifies the type of the software package. This is optional and defaults to Software.
A files that must be downloaded by the agent prior to installing the package.
A SHA1 hash of the file, that both uniquely identifies it and allows the agent to verify its integrity.
The file name that the file should have prior to attempting installation. (This is needed because the file is stored on the server using a different file name.)
The size of the file, in bytes.
The date and time the file was last modified. (Literally, the modified date from NTFS.)
The URI at which this package was originally hosted, if any (e.g., MSFT download center, FTP site, etc).
Data that is specific to the type of package (update, application, and in the future script, policy, etc). This element is abstract. Each type derives a new complexType containing its own type-specific elements and attributes.
Meta-data that is specific to applications. Currently none.
Meta-data that is specific to updates.
The classification of the update as specified by the SE cabinet.
A broadly released fix for a specific problem addressing a noncritical, non-security-related bug.
A broadly released fix for a specific problem addressing a critical, non-security related bug.
A broadly released fix for a product-specific, security-related vulnerability. Security vulnerabilities are rated based on their severity, which is indicated in the Microsoft security bulletin as critical, important, moderate, or low.
New product functionality that is first distributed outside the context of a product release, and usually included in the next full product release.
A tested, cumulative set of hotfixes, security updates, critical updates, and updates packaged together for easy deployment. A rollup generally targets a specific area, such as security, or a component of a product, such as Internet Information Services (IIS).
A tested, cumulative set of all hotfixes, security updates, critical updates, and updates, as well as additional fixes for problems found internally since the release of the product. Service packs may also contain a limited number of customer-requested design changes or features.
A utility or feature that aids in accomplishing a task or set of tasks.
Hotfixes address a specific customer situation and may not be distributed outside that customer organization.
A driver package.
The maximum severity rating of the Microsoft Security Response Center (MSRC) bulletin associated with the update. Because MSRC changes their rating scheme from time to time, we cannot restrict the possible values via this schema. Both a non-localized and localized representation of the rating are needed. This simpleType will be used for both. The non-localized values for the 2001 rating scheme are: "Low", "Moderate", and "Critical". For the 2002 scheme: "Low", "Moderate", "Important", and "Critical".
Specifies the security bulletin ID of a vulnerability fixed by an update.
Specifies the CVE ID of a vulnerability fixed by an update.
Specifies the Microsoft Knowledge Base article ID associated with an update.
A package that can be imported into the update services server for distribution.
Localized descriptive properties for this package. Whichever is listed first is the default, in case an exact match can't be found.
An applicability expression that evaluates to true if the package is even relevalant to this machine (e.g., SQL server on XP home). This rule allows the author to specify what prerequisite conditions are necessary for this package to be applicable. If not specified, assummed to be true.
An applicability expression that evaluates to true if the package is actually installed. This expression is supposed to check for the exact package, not for something that supersedes it.
A list of packages that are superseded by this one. All recursively superseded packages should be explicitly listed.
A list of prerequisite conditions that are evaluated during MSUS Client/Server communication to determine whether the update is relevant enough to the Client to evaluate the applicability rules. If all prerequisites are true, the Server sends the update to the Client for further evaluation. The Client then evaluates the applicability rules to determine the state of the update on the machine.
A prerequisite condition that contains other prerequisites and evaluates to true when at least one of them is true. If they are all false, the AtLeastOne is false.
A list of packages bundled by this one.
Each package can contain one or more installable items. All installable items that are applicable are installed with the package. At least one must be applicable for the package to be considered applicable. Updates typically contain one installable item per localized build of the patch.
--