mirror of https://github.com/acidanthera/audk.git
410 lines
17 KiB
XML
410 lines
17 KiB
XML
<?xml version="1.0" encoding="UTF-8"?>
|
|
<!--
|
|
Filename: WorkspaceContent.xsd
|
|
|
|
Copyright (c) 2008, Intel Corp. All rights reserved.
|
|
|
|
This program and the accompanying materials are licensed and made available
|
|
under the terms and conditions of the BSD License which may be found at
|
|
http://opensource.org/licenses/bsd-license.php
|
|
|
|
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
|
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
|
|
|
-->
|
|
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
|
|
elementFormDefault="qualified"
|
|
targetNamespace="http://edk2.TianoCore.org/2008/1.0"
|
|
xmlns="http://edk2.TianoCore.org/2008/1.0">
|
|
<xs:annotation>
|
|
<xs:documentation xml:lang="en-us">This document covers the
|
|
WorkspaceContent.xml file that tracks what has been installed into an EDK
|
|
II development WORKSPACE.</xs:documentation>
|
|
</xs:annotation>
|
|
<xs:element name="WorkspaceContent">
|
|
<xs:annotation>
|
|
<xs:documentation xml:lang="en-us"> This file describes the distributions,
|
|
packages, stand-alone (non-package) modules and miscellaneous files that
|
|
have been installed in THIS WORKSPACE. Additionally, any tools that are
|
|
installed as part of a distribution are tracked (tools are not required
|
|
to be installed within a WORKSPACE.) </xs:documentation>
|
|
</xs:annotation>
|
|
<xs:complexType>
|
|
<xs:sequence>
|
|
<xs:element ref="Header" minOccurs="1" maxOccurs="1">
|
|
<xs:annotation>
|
|
<xs:documentation xml:lang="en-us"> This section tracks required
|
|
information about this WORKSPACE. </xs:documentation>
|
|
</xs:annotation>
|
|
</xs:element>
|
|
<xs:element ref="DistributionPackage" minOccurs="1"
|
|
maxOccurs="unbounded">
|
|
<xs:annotation>
|
|
<xs:documentation xml:lang="en-us"> The list of UEFI/PI distribution
|
|
packages that have been installed in this WORKSPACE.
|
|
</xs:documentation>
|
|
</xs:annotation>
|
|
</xs:element>
|
|
</xs:sequence>
|
|
</xs:complexType>
|
|
</xs:element>
|
|
|
|
<xs:element name="Header">
|
|
<xs:complexType>
|
|
<xs:sequence>
|
|
<xs:element minOccurs="0" maxOccurs="1" name="Name"
|
|
type="xs:normalizedString">
|
|
<xs:annotation>
|
|
<xs:documentation xml:lang="en-us"> This User Interface Name can be
|
|
entered during initialization of a WORKSPACE to permit a developer
|
|
to uniquely identify a WORKSPACE. </xs:documentation>
|
|
<xs:documentation xml:lang="en-us"> This value can be used by report
|
|
generators. </xs:documentation>
|
|
</xs:annotation>
|
|
</xs:element>
|
|
<xs:element minOccurs="1" maxOccurs="1" name="AbsolutePath"
|
|
type="xs:anyURI">
|
|
<xs:annotation>
|
|
<xs:documentation xml:lang="en-us"> When the WORKSPACE is first
|
|
initialized, this is the absolute path to the WORKSPACE. If the
|
|
user moves or re-names the directory, the RmPkg tool will need to
|
|
verify the content of this WORKSPACE before removing any content.
|
|
</xs:documentation>
|
|
</xs:annotation>
|
|
</xs:element>
|
|
<xs:element minOccurs="1" maxOccurs="1" name="LastModifiedDate"
|
|
type="xs:dateTime">
|
|
<xs:annotation>
|
|
<xs:documentation xml:lang="en-us"> The date and time of the last
|
|
Package Installation or Removal. The format is:
|
|
YYYY-MM-DDThh:mm:ss, for example: 2001-01-31T13:30:00 (note the T
|
|
character separator between the calendar date and the time.
|
|
</xs:documentation>
|
|
</xs:annotation>
|
|
</xs:element>
|
|
<xs:element minOccurs="1" maxOccurs="1"
|
|
name="WorkspaceContentSpecification" default="1.0" type="xs:decimal"
|
|
/>
|
|
</xs:sequence>
|
|
</xs:complexType>
|
|
</xs:element>
|
|
|
|
|
|
|
|
<xs:element name="ModuleList">
|
|
<xs:complexType>
|
|
<xs:sequence>
|
|
<xs:element minOccurs="1" maxOccurs="unbounded" name="Module">
|
|
<xs:complexType>
|
|
<xs:sequence>
|
|
<xs:element name="Name" minOccurs="1" maxOccurs="1">
|
|
<xs:annotation>
|
|
<xs:documentation xml:lang="en-us"> The User Interface Name of
|
|
the module. </xs:documentation>
|
|
</xs:annotation>
|
|
<xs:complexType>
|
|
<xs:simpleContent>
|
|
<xs:extension base="xs:normalizedString">
|
|
<xs:attribute name="BaseName" type="xs:NCName"
|
|
use="required">
|
|
<xs:annotation>
|
|
<xs:documentation xml:lang="en-us"> The BaseName is
|
|
used to create files and folders during a build, and
|
|
is used by packaging tools as a keyword to create
|
|
the INF file. </xs:documentation>
|
|
</xs:annotation>
|
|
</xs:attribute>
|
|
</xs:extension>
|
|
</xs:simpleContent>
|
|
</xs:complexType>
|
|
</xs:element>
|
|
<xs:element ref="GUID" minOccurs="1" maxOccurs="1">
|
|
<xs:annotation>
|
|
<xs:documentation xml:lang="en-us"> This is the GUID of the
|
|
module. Backward compatible versions of a module can use the
|
|
same GUID, however the version attribute must be changed
|
|
(incrementally.) Non-backward compatible versions of a
|
|
module must also provide a new GUID, while resetting the
|
|
version attribute is optional. </xs:documentation>
|
|
</xs:annotation>
|
|
</xs:element>
|
|
<xs:element name="InstalledFolder" minOccurs="1" maxOccurs="1"
|
|
type="xs:anyURI">
|
|
<xs:annotation>
|
|
<xs:documentation xml:lang="en-us"> This is the WORKSPACE
|
|
relative path that the Module was installed in.
|
|
</xs:documentation>
|
|
</xs:annotation>
|
|
</xs:element>
|
|
<xs:element name="InfFilename" minOccurs="1" maxOccurs="1"
|
|
type="xs:anyURI">
|
|
<xs:annotation>
|
|
<xs:documentation xml:lang="en-us"> This is filename of the
|
|
INF file created in the InstalledFolder (listed above)
|
|
during installation. </xs:documentation>
|
|
</xs:annotation>
|
|
</xs:element>
|
|
</xs:sequence>
|
|
</xs:complexType>
|
|
</xs:element>
|
|
</xs:sequence>
|
|
</xs:complexType>
|
|
</xs:element>
|
|
|
|
<xs:element name="DistributionPackage">
|
|
<xs:complexType>
|
|
<xs:sequence>
|
|
<xs:element minOccurs="1" maxOccurs="1" name="Name">
|
|
<xs:annotation>
|
|
<xs:documentation xml:lang="en-us"> The User Interface Name of the
|
|
distribution. </xs:documentation>
|
|
</xs:annotation>
|
|
<xs:complexType>
|
|
<xs:simpleContent>
|
|
<xs:extension base="xs:normalizedString">
|
|
<xs:attribute name="BaseName" type="xs:NCName" use="required">
|
|
<xs:annotation>
|
|
<xs:documentation xml:lang="en-us"> This is the actual
|
|
BaseName used during the installation. Since users may
|
|
change the Distribution Package's default BaseName (used
|
|
to create the PKG and MANIFEST files) this is the real
|
|
name used to create the files. </xs:documentation>
|
|
</xs:annotation>
|
|
</xs:attribute>
|
|
</xs:extension>
|
|
</xs:simpleContent>
|
|
</xs:complexType>
|
|
</xs:element>
|
|
<xs:element ref="GUID" minOccurs="1" maxOccurs="1">
|
|
<xs:annotation>
|
|
<xs:documentation xml:lang="en-us"> This is the GUID of the
|
|
distribution, backward compatible versions of a distribution can
|
|
use the same GUID, however the version attribute must be changed
|
|
(incrementally.) Non-backward compatible versions of a
|
|
distribution must also provide a new GUID, while resetting the
|
|
version attribute is optional. </xs:documentation>
|
|
</xs:annotation>
|
|
</xs:element>
|
|
<xs:element minOccurs="1" maxOccurs="1" name="PkgFilename"
|
|
type="xs:anyURI">
|
|
<xs:annotation>
|
|
<xs:documentation xml:lang="en-us"> This is the filename of the XML
|
|
distribution package surface area (PKG) file that was stored in
|
|
the Conf/Pkgs folder of the WORKSPACE for this distribution
|
|
package. </xs:documentation>
|
|
</xs:annotation>
|
|
</xs:element>
|
|
<xs:element minOccurs="1" maxOccurs="1" name="ManifestFilename"
|
|
type="xs:anyURI">
|
|
<xs:annotation>
|
|
<xs:documentation xml:lang="en-us"> This is the filename of the
|
|
distribution package manifest (.manifest) file that was created
|
|
and stored in the Conf/Pkgs folder of the WORKSPACE for this
|
|
distribution package. The InstallPkg tool must create this file
|
|
using the extracted locations of the content zip file (or,
|
|
alternatively, the user can create the file by redirecting the
|
|
output of the zip -Tv Contents.zip.) </xs:documentation>
|
|
</xs:annotation>
|
|
</xs:element>
|
|
<xs:element minOccurs="1" maxOccurs="1" name="InstalledDate"
|
|
type="xs:dateTime" />
|
|
<xs:element name="DistributionProperties" minOccurs="0" maxOccurs="1"
|
|
nillable="true">
|
|
<xs:annotation>
|
|
<xs:documentation xml:lang="en-us"> This section tracks information
|
|
and content that is not associated with either packages or
|
|
modules, or is not required for building packages or modules.
|
|
</xs:documentation>
|
|
</xs:annotation>
|
|
<xs:complexType>
|
|
<xs:attribute name="ReadOnly" type="xs:boolean" default="false"
|
|
use="optional">
|
|
<xs:annotation>
|
|
<xs:documentation xml:lang="en-us">If set to true, all content
|
|
within this distribution package should NOT be
|
|
modified.</xs:documentation>
|
|
</xs:annotation>
|
|
</xs:attribute>
|
|
<xs:attribute name="RePackage" type="xs:boolean" default="false"
|
|
use="optional">
|
|
<xs:annotation>
|
|
<xs:documentation xml:lang="en-us">If set to true, then the
|
|
content can be repackaged into another distribution
|
|
package.</xs:documentation>
|
|
</xs:annotation>
|
|
</xs:attribute>
|
|
<xs:attribute name="ModifiedToolsDef" type="xs:boolean"
|
|
default="false" use="optional">
|
|
<xs:annotation>
|
|
<xs:documentation xml:lang="en-us">If set to true, then either
|
|
the distribution or one of its packages has a user extensions
|
|
section that modified the tools_def.txt file.
|
|
</xs:documentation>
|
|
</xs:annotation>
|
|
</xs:attribute>
|
|
<xs:attribute name="ProvidesTools" type="xs:boolean" default="false"
|
|
use="optional">
|
|
<xs:annotation>
|
|
<xs:documentation xml:lang="en-us"> This is used to identify a
|
|
distribution that provides tools that may or may not be
|
|
installed in a WORKSPACE. </xs:documentation>
|
|
</xs:annotation>
|
|
</xs:attribute>
|
|
<xs:attribute name="ProvidesMiscellaneousFiles" type="xs:boolean"
|
|
default="false" use="optional">
|
|
<xs:annotation>
|
|
<xs:documentation xml:lang="en-us"> This is used to identify a
|
|
distribution that provides miscellaneous files that must be
|
|
installed in a WORKSPACE. </xs:documentation>
|
|
</xs:annotation>
|
|
</xs:attribute>
|
|
<xs:attribute name="UnknownUserExtensions" type="xs:boolean"
|
|
default="false" use="optional">
|
|
<xs:annotation>
|
|
<xs:documentation xml:lang="en-us"> This is used to identify a
|
|
distribution that has a UserExtensions section at the
|
|
Distribution, Package or Module level that uses an Identifier
|
|
other than BuildOptions, ToolsDef or DistributionPackage.
|
|
</xs:documentation>
|
|
</xs:annotation>
|
|
</xs:attribute>
|
|
</xs:complexType>
|
|
</xs:element>
|
|
<xs:element name="PackageList" minOccurs="0" maxOccurs="1">
|
|
<xs:annotation>
|
|
<xs:documentation xml:lang="en-us"> This section tracks individual
|
|
packages (collections of related items.) Each package listed in
|
|
this section must have a DEC file associated with it.
|
|
</xs:documentation>
|
|
</xs:annotation>
|
|
<xs:complexType>
|
|
<xs:sequence>
|
|
<xs:element name="Package" minOccurs="1" maxOccurs="unbounded">
|
|
<xs:complexType>
|
|
<xs:sequence>
|
|
<xs:element name="Name" minOccurs="1" maxOccurs="1">
|
|
<xs:annotation>
|
|
<xs:documentation xml:lang="en-us"> The User Interface
|
|
Name of the package. </xs:documentation>
|
|
</xs:annotation>
|
|
<xs:complexType>
|
|
<xs:simpleContent>
|
|
<xs:extension base="xs:normalizedString">
|
|
<xs:attribute name="BaseName" type="xs:NCName"
|
|
use="required">
|
|
<xs:annotation>
|
|
<xs:documentation xml:lang="en-us"> The BaseName
|
|
is used to create files and folders during a
|
|
build, and is used by packaging tools as a
|
|
keyword to create the DEC file.
|
|
</xs:documentation>
|
|
</xs:annotation>
|
|
</xs:attribute>
|
|
</xs:extension>
|
|
</xs:simpleContent>
|
|
</xs:complexType>
|
|
</xs:element>
|
|
<xs:element ref="GUID" minOccurs="1" maxOccurs="1">
|
|
<xs:annotation>
|
|
<xs:documentation xml:lang="en-us"> This is the GUID of
|
|
the package, backward compatible versions of a package
|
|
can use the same GUID, however the version attribute
|
|
must be changed (incrementally.) Non-backward
|
|
compatible versions of a package must also provide a
|
|
new GUID, while resetting the version attribute is
|
|
optional. </xs:documentation>
|
|
</xs:annotation>
|
|
</xs:element>
|
|
<xs:element name="InstalledFolder" type="xs:anyURI"
|
|
minOccurs="1" maxOccurs="1">
|
|
<xs:annotation>
|
|
<xs:documentation xml:lang="en-us"> This is used to
|
|
track the actual installation location, relative to
|
|
the WORKSPACE. During an installation, the user may be
|
|
presented with an option to relocate package content
|
|
from the ZIP portion of the archive into a different
|
|
location. </xs:documentation>
|
|
<xs:documentation> Any installation tools must modify
|
|
this value if the location is different from the
|
|
default location. </xs:documentation>
|
|
<xs:documentation> Any removal tools must check this
|
|
value to locate correctly, the items that will be
|
|
removed. </xs:documentation>
|
|
</xs:annotation>
|
|
</xs:element>
|
|
<xs:element name="DecFilename" minOccurs="1" maxOccurs="1"
|
|
type="xs:anyURI">
|
|
<xs:annotation>
|
|
<xs:documentation xml:lang="en-us"> This is the filename
|
|
of the package declaration (DEC) filename created
|
|
during installation in the InstalledFolder listed
|
|
above. </xs:documentation>
|
|
</xs:annotation>
|
|
</xs:element>
|
|
<xs:element ref="ModuleList" minOccurs="0" maxOccurs="1">
|
|
<xs:annotation>
|
|
<xs:documentation xml:lang="en-us"> This section is used
|
|
to track the actual installation location, relative to
|
|
the WORKSPACE. Every module that is part of this
|
|
package must be listed here. During an installation,
|
|
the user may be presented with an option to relocate
|
|
module content from the ZIP portion of the archive
|
|
into a different location, the installation tools must
|
|
modify this value if the location is different from
|
|
the default location. Any removal tools must check
|
|
this value to locate correctly, the items that will be
|
|
removed. </xs:documentation>
|
|
<xs:documentation xml:lang="en-us"> The name of any INF
|
|
files that were created during the installation of a
|
|
distribution must also be listed in this section.
|
|
</xs:documentation>
|
|
</xs:annotation>
|
|
</xs:element>
|
|
</xs:sequence>
|
|
</xs:complexType>
|
|
</xs:element>
|
|
</xs:sequence>
|
|
</xs:complexType>
|
|
</xs:element>
|
|
<xs:element ref="ModuleList" minOccurs="0" maxOccurs="1">
|
|
<xs:annotation>
|
|
<xs:documentation xml:lang="en-us"> This section is used to record
|
|
distribution packages that contain modules that are not part of a
|
|
package. Modules that are part of packages are listed under the
|
|
Package element of the PackageList section. </xs:documentation>
|
|
<xs:documentation xml:lang="en-us"> Module only distribution will
|
|
typically be for binary only modules, like the enhanced FAT
|
|
driver. </xs:documentation>
|
|
</xs:annotation>
|
|
</xs:element>
|
|
</xs:sequence>
|
|
</xs:complexType>
|
|
</xs:element>
|
|
|
|
<xs:element name="GUID">
|
|
<xs:complexType>
|
|
<xs:simpleContent>
|
|
<xs:extension base="RegistryFormatGuid">
|
|
<xs:attribute name="Version" type="xs:decimal" use="required" />
|
|
</xs:extension>
|
|
</xs:simpleContent>
|
|
</xs:complexType>
|
|
</xs:element>
|
|
|
|
<!-- Simple Types that further restrict allowed content. -->
|
|
|
|
<xs:simpleType name="RegistryFormatGuid">
|
|
<xs:annotation>
|
|
<xs:documentation xml:lang="en-us"> A Registry format GUID must contain
|
|
five different Hexadecimal character sets that are separated by a dash
|
|
(-) character. </xs:documentation>
|
|
</xs:annotation>
|
|
<xs:restriction base="xs:normalizedString">
|
|
<xs:pattern
|
|
value="\s*[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}\s*"
|
|
/>
|
|
</xs:restriction>
|
|
</xs:simpleType>
|
|
|
|
</xs:schema>
|