home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
PC World Komputer 2010 April
/
PCWorld0410.iso
/
WindowsServerTrial
/
server.iso
/
sources
/
install.wim
/
2
/
Windows
/
security
/
KB.xsd
< prev
next >
Wrap
Extensible Markup Language
|
2008-01-19
|
24KB
|
668 lines
<?xml version="1.0" encoding="utf-8" ?>
<xs:schema elementFormDefault="qualified"
xmlns:xs="http://www.w3.org/2001/XMLSchema">
<!--
// This schema definition file can be used to validate
// two types of SCW knowledge base files:
//
// 1. KB files - Raw knowledge base files that contain
// no localization or registration information.
// 2. Loc files - Raw localization files that contain no
// knowledge base or registration information.
//
// This schema is included in KbRegistrationInfo.xsd which
// validates KB Registration Info files - Prepared knowledge
// base files that contain registration information and
// localization text for one or more languanges.
-->
<!-- Including the firewall schema -->
<xs:include schemaLocation="FirewallPolicy.xsd"/>
<!-- Root element for raw KB. -->
<xs:element name="SCWKnowledgeBase"
type="KBDataType"/>
<!-- Root element for raw localization file. -->
<xs:element name="SCWLocalization"
type="KBLocalizationDataType"/>
<xs:complexType name="ApplicableVersionsType">
<xs:sequence>
<!-- A single KB can support multiple versions
or service pack levels. -->
<xs:element name="Version"
type="KBExtVersionType"
minOccurs="1"
maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
<!-- A specific Windows OS Version and Service Pack
level that is supported by the KB extension. -->
<xs:complexType name="KBExtVersionType">
<xs:attribute name="OSVersionMajorInfo"
type="xs:nonNegativeInteger"
use="required"/>
<xs:attribute name="OSVersionMinorInfo"
type="xs:nonNegativeInteger"
use="required"/>
<xs:attribute name="ServicePackMajor"
type="xs:nonNegativeInteger"
use="required"/>
<xs:attribute name="ServicePackMinor"
type="xs:nonNegativeInteger"
use="required"/>
</xs:complexType>
<xs:complexType name="KBDataType">
<xs:sequence>
<!-- Roles are displayed on the Server Roles
or Client Roles Page -->
<xs:element name="Roles"
type="RolesType"
minOccurs="0"
maxOccurs="1"/>
<!-- Tasks are displayed on the Administration
and other Options page. -->
<xs:element name="Tasks"
type="TasksType"
minOccurs="0"
maxOccurs="1"/>
<!-- The services section provides further information
(e.g. Startup Mode) about services that are referenced
by all roles and tasks. -->
<xs:element name="Services"
type="ServicesType"
minOccurs="0"
maxOccurs="1"/>
<!-- This is where the list of Firewall rules
referenced by all roles goes. -->
<xs:element name="Firewall"
type="FirewallType"
minOccurs="0"
maxOccurs="1">
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:complexType name="RolesType">
<xs:sequence>
<xs:element name="Role"
type="RoleType"
minOccurs="0"
maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="RoleType">
<xs:all>
<!-- A Server Role can only depend on other server roles.
A Client Role can depend on Server Roles or Client Roles. -->
<xs:element name="DependsOn"
type="RoleDependsOnType"
minOccurs="0"
maxOccurs="1"/>
<!-- By default, a Role is satisfied if all services for
the role are installed. Use the satisfiable element
(and provide a function name and dll path) to override this
default behavior. If Role A depends on Role B and
Role B is not satisfied, then Role A is not satisfied. -->
<xs:element name="Satisfiable"
type="SatisfiableType"
minOccurs="0"
maxOccurs="1"/>
<!-- If a role is satisfied, the selected element determines
whether the role is checked by default. If Role A depends
on Role B and Role B is not checked by default, then Role A
is not checked by default. -->
<xs:element name="Selected"
type="SelectedType"
minOccurs="1"
maxOccurs="1"/>
<!-- References to services that are required by the role. -->
<xs:element name="Services"
type="RefServicesType"
minOccurs="0"
maxOccurs="1"/>
<!-- References to firewall rules used by the role -->
<xs:element name="Firewall"
type="RefFirewallType"
minOccurs="0"
maxOccurs="1">
<xs:unique name="UniqueFirewallRuleRefIdConstraint">
<xs:selector xpath="FirewallRule"/>
<xs:field xpath="@Id"/>
</xs:unique>
</xs:element>
</xs:all>
<!-- Indicates whether the role is a Server Role, Client Role,
or Independent Role. Independent Roles are not displayed
by the SCW UI. -->
<xs:attribute name="Type"
type="RoleTypeType"
use="required"/>
<!-- Internal Name of the Role. All internal names
are case-sensitive. -->
<xs:attribute name="Name"
type="NameType"
use="required"/>
<!-- Indicates whether or not the network security portion of the
wizard is skipped when the role is selected. Default is not
to skip. -->
<xs:attribute name="PrecludeNetworkSecurity"
type="PrecludeNetworkSecurityType"
use="optional"/>
<!-- Whether the role is Enabled or Disabled. -->
<xs:attribute name="Status"
type="StatusType"
use="required"/>
</xs:complexType>
<xs:complexType name="SelectedType">
<!-- If a role is satisfied, the Selected element
determines whether the role is checked by default.
The Value attribute for the Selected element
must be TRUE, FALSE, DEFAULT, or CUSTOM. -->
<xs:attribute name="Value"
type="SelectedValueType"
use="required"/>
<!-- FunctionName and DLLPath are only required if the
Value attribute is set to "CUSTOM". The Function
must return Boolean. -->
<xs:attribute name="FunctionName"
type="xs:string"
use="optional"/>
<xs:attribute name="DLLPath"
type="xs:string"
use="optional"/>
</xs:complexType>
<xs:complexType name="SatisfiableType">
<!-- The Satisfiable element only exists in order to
override the default method for determining
whether a role is satisfied.
If the Satisfiable element exists, a Function
Name and DLL Path are required to specify the
code that implements the override logic.
The function must return Boolean. -->
<xs:attribute name="FunctionName"
type="xs:string"
use="required"/>
<xs:attribute name="DLLPath"
type="xs:string"
use="required"/>
</xs:complexType>
<xs:complexType name="RoleDependsOnType">
<xs:sequence>
<!-- If the DependsOn element exists for a role,
it must contain a Roles element. -->
<xs:element name="Roles"
type="RoleDependsOnRolesType"
minOccurs="1"
maxOccurs="1"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="RoleDependsOnRolesType">
<xs:sequence>
<!-- If the DependsOn element exists, there must be at
least one role inside the contained Roles element. -->
<xs:element name="Role"
type="EntityReferenceType"
minOccurs="1"
maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="EntityReferenceType">
<!-- Case-sensitive name of a role that this
Role (or Task) Depends On -->
<xs:attribute name="Name"
type="NameType"
use="required"/>
</xs:complexType>
<xs:complexType name="RefServicesType">
<xs:sequence>
<xs:element name="Service"
type="RefServiceType"
minOccurs="0"
maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="RefServiceType">
<!-- Service names correspond to the internal service names
used by the Service Control Manager. Service names are
case-insensitive with respect to the Service Control
Manager names but are case-sensitive within the KB. -->
<xs:attribute name="Name"
type="NameType"
use="required"/>
<xs:attribute name="PlatformID"
type="PlatformType"
use="optional"/>
</xs:complexType>
<xs:complexType name="RefFirewallType">
<xs:sequence>
<!-- Ids (guids) pointing to the actual firewall rules -->
<xs:element name="FirewallRule"
type="RefFirewallRuleType"
minOccurs="0"
maxOccurs="unbounded">
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:complexType name="RefFirewallRuleType">
<xs:attribute name="Id"
type="xs:string"
use="required"/>
</xs:complexType>
<xs:complexType name="TasksType">
<xs:sequence>
<xs:element name="Task"
type="TaskType"
minOccurs="0"
maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="TaskType">
<xs:all>
<!-- Tasks appear on the "Administration and
other Options" Page. A task is defined
very much like a role. Exceptions noted below: -->
<!-- A task cannot depend on another task. A task can
only depend on a Server Role or Client Role. -->
<xs:element name="DependsOn"
type="TaskDependsOnType"
minOccurs="0"
maxOccurs="1"/>
<!-- By default, a task is satisfied if all services required
for the task are installed. Use the satisfiable element
(and provide a function name and dll path) to override this
default behavior. If Task A depends on Role A and Role A
is not selected, then Task A is not displayed. -->
<xs:element name="Satisfiable"
type="SatisfiableType"
minOccurs="0"
maxOccurs="1"/>
<!-- If a task is satisfied, the selected element determines
whether the task is checked by default. If Task A depends
on Role A and Role A is not selected, then Task A is not
displayed. -->
<xs:element name="Selected"
type="SelectedType"
minOccurs="1"
maxOccurs="1"/>
<!-- Services that are required by the task. -->
<xs:element name="Services"
type="RefServicesType"
minOccurs="0"
maxOccurs="1"/>
<!-- Firewall rules required by the task. -->
<xs:element name="Firewall"
type="RefFirewallType"
minOccurs="0"
maxOccurs="1"/>
</xs:all>
<!-- Unlike Roles, the type attribute for a task is optional
and the only type supported is "RemoteAdmin". -->
<xs:attribute name="Type"
type="TaskTypeType"
use="optional"/>
<!-- Internal Name of the Task. All internal
names are case-sensitive. -->
<xs:attribute name="Name"
type="NameType"
use="required"/>
<!-- Indicates whether or not the network security portion of
the wizard is skipped when the task is selected. Default
is not to skip. -->
<xs:attribute name="PrecludeNetworkSecurity"
type="PrecludeNetworkSecurityType"
use="optional"/>
</xs:complexType>
<xs:complexType name="TaskDependsOnType">
<xs:sequence>
<!-- If the DependsOn element exists for a task,
it must contain a Roles element -->
<xs:element name="Roles"
type="TaskDependsOnRolesType"
minOccurs="1"
maxOccurs="1"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="TaskDependsOnRolesType">
<xs:sequence>
<!-- If the DependsOn element exists, it must reference
the case-sensitive internal name of at least one role.
A Task that DependsOn a role is displayed only if the
corresponding role is selected. -->
<xs:element name="Role"
type="EntityReferenceType"
minOccurs="1"
maxOccurs="unbounded"/>
</xs:sequence>
<!-- The DependsOn relation for Tasks can be evaluated
using AND or OR logic. For example, Task A DependsOn
Role A or Role B. If not specified, AND logic is used -->
<xs:attribute name="Logic"
type="LogicType"
use="optional"/>
</xs:complexType>
<xs:complexType name="ServicesType">
<xs:sequence>
<!-- The Services section contains additional information
about the services that are associated with Roles or Tasks.
Not every service associated with a Role or Task needs to be
defined in the Services section. Specifically, if a service
that ships on the Windows CD is associated with a Role or Task
in an extension KB, then that service should not be specified
in the Services section of the extension KB. The reason for
this is that all services that ship on the Windows CD should
already be defined in the root KB that the extension KB is
extending. -->
<xs:element name="Service"
type="ServiceType"
minOccurs="1"
maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="ServiceType">
<xs:all>
<xs:element name="Optional"
type="OptionalType"
minOccurs="1"
maxOccurs="1"/>
<!-- Indicates the startup mode that should be used for the
service when the service is enabled by a Role or task. -->
<xs:element name="Startup_Default"
type="Startup_DefaultType"
minOccurs="1"
maxOccurs="1"/>
<xs:element name="Cluster_Startup_Default"
type="Startup_DefaultType"
minOccurs="0"
maxOccurs="1"/>
</xs:all>
<!-- The internal name of the service as it is known to the service
control manager. The service name is case-sensitive within the
KB, but not with respect to the service control manager name. -->
<xs:attribute name="Name"
type="NameType"
use="required"/>
</xs:complexType>
<xs:complexType name="KBLocalizationDataType">
<!-- Localization information for a prepared KB. -->
<xs:all>
<!-- Localization information (Displaynames, descriptions, etc.)
should be supplied for all Roles, Tasks, and Services
defined in the KB. -->
<xs:element name="RoleLocalization"
type="RoleLocalizationType"
minOccurs="0"
maxOccurs="1"/>
<xs:element name="TaskLocalization"
type="TaskLocalizationType"
minOccurs="0"
maxOccurs="1"/>
<xs:element name="ServiceLocalization"
type="ServiceLocalizationType"
minOccurs="0"
maxOccurs="1"/>
</xs:all>
<xs:attribute name="CultureName"
type="xs:string"
use="required"/>
</xs:complexType>
<xs:complexType name="RoleLocalizationType">
<xs:sequence>
<!-- If the RoleLocalization element exists, there must
be localization information for at least one role. -->
<xs:element name="Role"
type="RoleLocType"
minOccurs="1"
maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="RoleLocType">
<xs:all>
<!-- Displayname of the role. -->
<xs:element name="DisplayName"
type="xs:string"
minOccurs="1"
maxOccurs="1"/>
<!-- A brief description of the role. -->
<xs:element name="Description"
type="xs:string"
minOccurs="1"
maxOccurs="1"/>
<!-- Optional Advanced information about the role. -->
<xs:element name="Details"
type="xs:string"
minOccurs="0"
maxOccurs="1"/>
<!-- Optional SCW-specific information about the role. -->
<xs:element name="SCWDetails"
type="xs:string"
minOccurs="0"
maxOccurs="1"/>
</xs:all>
<!-- Case-sensitive internal name of the Client or Server
Role for which localization information is being provided. -->
<xs:attribute name="Name"
type="NameType"
use="required"/>
</xs:complexType>
<xs:complexType name="TaskLocalizationType">
<xs:sequence>
<!-- If the TaskLocalization element exists, there must
be localization information for at least one task. -->
<xs:element name="Task"
type="TaskLocType"
minOccurs="1"
maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="TaskLocType">
<xs:all>
<!-- Displayname of the task. -->
<xs:element name="DisplayName"
type="xs:string"
minOccurs="1"
maxOccurs="1"/>
<!-- A brief description of the task. -->
<xs:element name="Description"
type="xs:string"
minOccurs="1"
maxOccurs="1"/>
<!-- Optional Advanced information about the task. -->
<xs:element name="Details"
type="xs:string"
minOccurs="0"
maxOccurs="1"/>
<!-- Optional SCW-specific information about the task. -->
<xs:element name="SCWDetails"
type="xs:string"
minOccurs="0"
maxOccurs="1"/>
</xs:all>
<!-- Case-sensitive internal name of the Task for which
localization information is being provided. -->
<xs:attribute name="Name"
type="NameType"
use="required"/>
</xs:complexType>
<xs:complexType name="ServiceLocalizationType">
<xs:sequence>
<!-- If the ServiceLocalization element exists, there must
be localization information for at least one service. -->
<xs:element name="Service"
type="ServiceLocType"
minOccurs="1"
maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="ServiceLocType">
<xs:all>
<!-- Display Name of the service. Should be the same as
the Display Name exposed in service control manager. -->
<xs:element name="DisplayName"
type="NameType"
minOccurs="0"
maxOccurs="1"/>
<!-- Description of the service. Should be the same as
the description exposed in service control manager. -->
<xs:element name="Description"
type="xs:string"
minOccurs="0"
maxOccurs="1"/>
</xs:all>
<!-- Case-sensitive internal name of the service for which
localization information is being provided. -->
<xs:attribute name="Name"
type="NameType"
use="required"/>
</xs:complexType>
<xs:simpleType name="NameType">
<xs:restriction base="xs:string"/>
</xs:simpleType>
<xs:simpleType name="PlatformType">
<xs:restriction base="xs:string">
<xs:enumeration value="64"/>
<xs:enumeration value="32"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="RoleTypeType">
<xs:restriction base="xs:string">
<xs:enumeration value="Server"/>
<xs:enumeration value="Client"/>
<xs:enumeration value="Independent"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="PrecludeNetworkSecurityType">
<xs:restriction base="xs:string">
<xs:enumeration value="TRUE"/>
<xs:enumeration value="True"/>
<xs:enumeration value="FALSE"/>
<xs:enumeration value="False"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="SelectedValueType">
<xs:restriction base="xs:string">
<xs:enumeration value="DEFAULT"/>
<xs:enumeration value="TRUE"/>
<xs:enumeration value="FALSE"/>
<xs:enumeration value="CUSTOM"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="TaskTypeType">
<xs:restriction base="xs:string">
<xs:enumeration value="RemoteAdmin"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="LogicType">
<xs:restriction base="xs:string">
<xs:enumeration value="AND"/>
<xs:enumeration value="And"/>
<xs:enumeration value="OR"/>
<xs:enumeration value="Or"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="OptionalType">
<xs:restriction base="xs:string">
<xs:enumeration value="TRUE"/>
<xs:enumeration value="True"/>
<xs:enumeration value="FALSE"/>
<xs:enumeration value="False"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="Startup_DefaultType">
<xs:restriction base="xs:string">
<xs:enumeration value="Automatic"/>
<xs:enumeration value="Manual"/>
<xs:enumeration value="Ignored"/>
<xs:enumeration value="Disabled"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="StatusType">
<xs:restriction base="xs:string">
<xs:enumeration value="Enabled"/>
<xs:enumeration value="Disabled"/>
</xs:restriction>
</xs:simpleType>
</xs:schema>