<?xml version="1.0" encoding="UTF-8"?> | |
<!-- | |
Filename: SurfaceArea.xsd | |
Copyright (c) 2006, 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://www.TianoCore.org/2006/Edk2.0" | |
xmlns="http://www.TianoCore.org/2006/Edk2.0"> | |
<xs:annotation> | |
<xs:documentation xml:lang="en"> This schema defines FDP Manifest </xs:documentation> | |
</xs:annotation> | |
<!--<xs:include schemaLocation="http://nwlxweb02.jf.intel.com/2006/Edk2.0/FrameworkHeaders.xsd"/>--> | |
<xs:include schemaLocation="FrameworkDataElements.xsd"/> | |
<xs:element name="FrameworkDevPkgManifest"> | |
<xs:annotation> | |
<xs:documentation xml:lang="en">At the top level of the Manifest we have four sections: | |
Header, Private, Public and Contents.</xs:documentation> | |
</xs:annotation> | |
<xs:complexType> | |
<xs:sequence> | |
<xs:element minOccurs="1" maxOccurs="1" ref="Header"/> | |
<xs:element minOccurs="0" maxOccurs="1" ref="Private"/> | |
<xs:element minOccurs="0" maxOccurs="1" ref="Public"/> | |
<xs:element minOccurs="1" maxOccurs="1" ref="Contents"/> | |
</xs:sequence> | |
</xs:complexType> | |
</xs:element> | |
<xs:element name="Header"> | |
<xs:annotation> | |
<xs:documentation xml:lang="en"> The Header contains some three elements that can | |
uniquely identify this package (PackageName, Guid, Version) as well as several | |
fields that identify the licensing and compyright status of the contents of the | |
package. The rest of the fields are there to idenify who created the package and | |
when it was made. The buid fields are here to identify when the package was created, | |
not when the package was compiled. </xs:documentation> | |
</xs:annotation> | |
<xs:complexType> | |
<xs:sequence> | |
<xs:element minOccurs="1" maxOccurs="1" ref="PackageName"/> | |
<xs:element minOccurs="1" maxOccurs="1" ref="Guid"/> | |
<xs:element minOccurs="1" maxOccurs="1" ref="Version"/> | |
<xs:element minOccurs="0" maxOccurs="1" ref="Copyright"/> | |
<xs:element minOccurs="1" maxOccurs="1" ref="License"/> | |
<xs:element minOccurs="1" maxOccurs="1" name="PackageType" type="PackageType"/> | |
<xs:element minOccurs="1" maxOccurs="1" ref="Description"/> | |
<xs:element minOccurs="1" maxOccurs="1" ref="Created"/> | |
<xs:element minOccurs="0" maxOccurs="1" ref="Creator"/> | |
<xs:element minOccurs="0" maxOccurs="1" ref="Vendor"/> | |
<xs:element minOccurs="0" maxOccurs="unbounded" ref="Updated"/> | |
<xs:element minOccurs="0" maxOccurs="unbounded" ref="Modifier"/> | |
<xs:element minOccurs="0" maxOccurs="unbounded" ref="DefaultInstallDir"/> | |
<xs:element minOccurs="0" maxOccurs="1" ref="BuildNumber"/> | |
<xs:element minOccurs="0" maxOccurs="unbounded" ref="BuildTarget"/> | |
<xs:element minOccurs="0" maxOccurs="1" ref="BuildSystem"/> | |
<xs:element minOccurs="0" maxOccurs="1" ref="BuildType"/> | |
<xs:element minOccurs="0" maxOccurs="1" ref="ReleaseType"/> | |
</xs:sequence> | |
</xs:complexType> | |
</xs:element> | |
<xs:element name="BuildNumber" type="xs:integer"> | |
<xs:annotation> | |
<xs:documentation> The Build number is an integer that is meant to represent the exact | |
build of the package. </xs:documentation> | |
</xs:annotation> | |
</xs:element> | |
<xs:element name="Type"> | |
<xs:annotation> | |
<xs:documentation> In the Type field we can record what kinds of modules are contained | |
in the package. The possibilities are source, binary and mixed (both source and | |
binary.) </xs:documentation> | |
</xs:annotation> | |
<xs:complexType> | |
<xs:attributeGroup ref="attlist.Type"/> | |
</xs:complexType> | |
</xs:element> | |
<xs:attributeGroup name="attlist.Type"> | |
<xs:attribute name="Value" use="required"> | |
<xs:simpleType> | |
<xs:restriction base="xs:token"> | |
<xs:enumeration value="Source"/> | |
<xs:enumeration value="Binary"/> | |
<xs:enumeration value="Mixed"/> | |
</xs:restriction> | |
</xs:simpleType> | |
</xs:attribute> | |
</xs:attributeGroup> | |
<xs:attributeGroup name="attlist.Guid"> | |
<xs:attribute name="Value" use="required" type="xs:NMTOKEN"/> | |
</xs:attributeGroup> | |
<xs:element name="BuildTarget" type="SupportedArchitectures"> | |
<xs:annotation> | |
<xs:documentation> The build target is used to record what target architecture the | |
modules within this package were compiled for. </xs:documentation> | |
</xs:annotation> | |
</xs:element> | |
<xs:element name="Creator"> | |
<xs:annotation> | |
<xs:documentation> In the creator field, we can record the name, user id, and email | |
address of the person who created this package. </xs:documentation> | |
</xs:annotation> | |
<xs:complexType> | |
<xs:attributeGroup ref="attlist.Creator"/> | |
</xs:complexType> | |
</xs:element> | |
<xs:attributeGroup name="attlist.Creator"> | |
<xs:attribute name="Name" use="required"/> | |
<xs:attribute name="UserId"/> | |
<xs:attribute name="Email"/> | |
</xs:attributeGroup> | |
<xs:element name="Modifier"> | |
<xs:annotation> | |
<xs:documentation> In the Modifier field, we can record the name, user id, and email | |
address of the person who changed/updated or modified this package. | |
</xs:documentation> | |
</xs:annotation> | |
<xs:complexType> | |
<xs:attributeGroup ref="attlist.Modifier"/> | |
</xs:complexType> | |
</xs:element> | |
<xs:attributeGroup name="attlist.Modifier"> | |
<xs:attribute name="Name" use="required"/> | |
<xs:attribute name="UserId"/> | |
<xs:attribute name="Email"/> | |
</xs:attributeGroup> | |
<xs:element name="Vendor" type="xs:token"> | |
<xs:annotation> | |
<xs:documentation> The name of the company, organization or individual that created or | |
distributes the package. </xs:documentation> | |
</xs:annotation> | |
</xs:element> | |
<xs:element name="BuildSystem"> | |
<xs:annotation> | |
<xs:documentation>This is the place to record the name and DNS name of the computer on | |
which the package was created.</xs:documentation> | |
</xs:annotation> | |
<xs:complexType> | |
<xs:attributeGroup ref="attlist.BuildSystem"/> | |
</xs:complexType> | |
</xs:element> | |
<xs:attributeGroup name="attlist.BuildSystem"> | |
<xs:attribute name="Name" use="required"/> | |
<xs:attribute name="NetAddr"/> | |
</xs:attributeGroup> | |
<xs:element name="BuildType"> | |
<xs:annotation> | |
<xs:documentation> The package may be Debug or Production. </xs:documentation> | |
</xs:annotation> | |
<xs:simpleType> | |
<xs:restriction base="xs:token"> | |
<xs:enumeration value="Debug"/> | |
<xs:enumeration value="Production"/> | |
</xs:restriction> | |
</xs:simpleType> | |
</xs:element> | |
<xs:element name="ReleaseType"> | |
<xs:annotation> | |
<xs:documentation> We may identify the quality level of the package here. | |
</xs:documentation> | |
</xs:annotation> | |
<xs:simpleType> | |
<xs:restriction base="xs:token"> | |
<xs:enumeration value="Developer Build"/> | |
<xs:enumeration value="Experimental Release"/> | |
<xs:enumeration value="Alpha Release"/> | |
<xs:enumeration value="Beta Release"/> | |
<xs:enumeration value="Release Canidate"/> | |
<xs:enumeration value="Official Release"/> | |
<xs:enumeration value="Patch Release"/> | |
<xs:enumeration value="Integration Build Release"/> | |
</xs:restriction> | |
</xs:simpleType> | |
</xs:element> | |
<xs:element name="DefaultInstallDir"> | |
<xs:annotation> | |
<xs:documentation> This is the directory, relative to the root of the workspace, where | |
the package will be installed by default. </xs:documentation> | |
</xs:annotation> | |
<xs:complexType> | |
<xs:attributeGroup ref="attlist.DefaultInstallDir"/> | |
</xs:complexType> | |
</xs:element> | |
<xs:attributeGroup name="attlist.DefaultInstallDir"> | |
<xs:attribute name="Name" use="required"/> | |
</xs:attributeGroup> | |
<xs:element name="Dependencies"> | |
<xs:annotation> | |
<xs:documentation> We can track the pakages that this package provides (these are the | |
packages contained in this pacakge.) We also record which packages are required by | |
this package. </xs:documentation> | |
</xs:annotation> | |
<xs:complexType> | |
<xs:sequence> | |
<xs:element minOccurs="0" ref="Requires"/> | |
<xs:element minOccurs="0" ref="Provides"/> | |
</xs:sequence> | |
</xs:complexType> | |
</xs:element> | |
<xs:element name="Requires"> | |
<xs:annotation> | |
<xs:documentation> This is a list of the packages that this package requires to be | |
installed in the workspace for package to function and/or build correctly. In the | |
case of source packages, these are the necessary dependencies for successful | |
build-time operation of the package. For binary packages these dependencies are | |
necessary for successful runtime operation.</xs:documentation> | |
</xs:annotation> | |
<xs:complexType mixed="true"> | |
<xs:choice minOccurs="0" maxOccurs="unbounded"> | |
<xs:element name="Package"> | |
<xs:annotation> | |
<xs:documentation xml:lang="en">This tag is used in the Framework Package | |
Database File to track individual package information. The Path is a | |
relative path to the SPD File.</xs:documentation> | |
</xs:annotation> | |
<xs:complexType> | |
<xs:sequence maxOccurs="unbounded"> | |
<xs:element minOccurs="0" maxOccurs="1" ref="PackageName"/> | |
<xs:element minOccurs="1" maxOccurs="1" ref="Guid"/> | |
<xs:element minOccurs="1" maxOccurs="1" ref="Version"/> | |
<xs:element minOccurs="1" maxOccurs="1" ref="Path"/> | |
<xs:element minOccurs="1" maxOccurs="1" ref="InstalledDate"/> | |
</xs:sequence> | |
<xs:attributeGroup ref="PackageAttributes"/> | |
</xs:complexType> | |
</xs:element> | |
<xs:element ref="Includes"/> | |
<xs:element name="Library"> | |
<xs:complexType> | |
<xs:simpleContent> | |
<xs:extension base="BaseNameConvention"> | |
<xs:attributeGroup ref="LibraryAttributes"/> | |
</xs:extension> | |
</xs:simpleContent> | |
</xs:complexType> | |
</xs:element> | |
<xs:element name="Protocol"> | |
<xs:complexType> | |
<xs:simpleContent> | |
<xs:extension base="C_Name"> | |
<xs:attributeGroup ref="ProtocolAttributes"/> | |
</xs:extension> | |
</xs:simpleContent> | |
</xs:complexType> | |
</xs:element> | |
<xs:element ref="Guid"/> | |
<xs:element ref="File"/> | |
</xs:choice> | |
</xs:complexType> | |
</xs:element> | |
<xs:element name="Provides"> | |
<xs:annotation> | |
<xs:documentation>The list of dependencies that the package fulfills.</xs:documentation> | |
</xs:annotation> | |
<xs:complexType> | |
<xs:choice minOccurs="0" maxOccurs="unbounded"> | |
<xs:element name="Package"> | |
<xs:annotation> | |
<xs:documentation xml:lang="en">This tag is used in the Framework Package | |
Database File to track individual package information. The Path is a | |
relative path to the SPD File.</xs:documentation> | |
</xs:annotation> | |
<xs:complexType> | |
<xs:sequence maxOccurs="unbounded"> | |
<xs:element minOccurs="0" maxOccurs="1" ref="PackageName"/> | |
<xs:element minOccurs="1" maxOccurs="1" ref="Guid"/> | |
<xs:element minOccurs="1" maxOccurs="1" ref="Version"/> | |
<xs:element minOccurs="1" maxOccurs="1" ref="Path"/> | |
<xs:element minOccurs="1" maxOccurs="1" ref="InstalledDate"/> | |
</xs:sequence> | |
<xs:attributeGroup ref="PackageAttributes"/> | |
</xs:complexType> | |
</xs:element> | |
<xs:element ref="Includes"/> | |
<xs:element name="Library"> | |
<xs:annotation><xs:documentation> | |
A library. It can be provided by or required by this or other packages. | |
</xs:documentation></xs:annotation> | |
<xs:complexType> | |
<xs:simpleContent> | |
<xs:extension base="BaseNameConvention"> | |
<xs:attributeGroup ref="LibraryAttributes"/> | |
</xs:extension> | |
</xs:simpleContent> | |
</xs:complexType> | |
</xs:element> | |
<xs:element name="Protocol"> | |
<xs:annotation> | |
<xs:documentation> | |
A protocol. It can be provided by or required by this or other packages. | |
</xs:documentation> | |
</xs:annotation> | |
<xs:complexType> | |
<xs:simpleContent> | |
<xs:extension base="C_Name"> | |
<xs:attributeGroup ref="ProtocolAttributes"/> | |
</xs:extension> | |
</xs:simpleContent> | |
</xs:complexType> | |
</xs:element> | |
<xs:element ref="Guid"/> | |
<xs:element ref="File"/> | |
</xs:choice> | |
</xs:complexType> | |
</xs:element> | |
<xs:attributeGroup name="attlist.Library"> | |
<xs:attribute name="Name" use="required"/> | |
</xs:attributeGroup> | |
<xs:attributeGroup name="attlist.Protocol"> | |
<xs:attribute name="Name" use="required"/> | |
<xs:attribute name="Guid" use="required" type="xs:NMTOKEN"/> | |
</xs:attributeGroup> | |
<xs:element name="Private"> | |
<xs:annotation> | |
<xs:documentation> The Private section is a place where the files are listed that should | |
not be seen by the users of this package. </xs:documentation> | |
</xs:annotation> | |
<xs:complexType mixed="true"> | |
<xs:sequence> | |
<xs:element minOccurs="0" maxOccurs="unbounded" ref="File"/> | |
</xs:sequence> | |
</xs:complexType> | |
</xs:element> | |
<xs:element name="Public"> | |
<xs:annotation> | |
<xs:documentation> The Public section is a list of files that are meant to be seen by | |
the users of the package. </xs:documentation> | |
</xs:annotation> | |
<xs:complexType mixed="true"> | |
<xs:sequence> | |
<xs:element minOccurs="0" maxOccurs="unbounded" ref="File"/> | |
</xs:sequence> | |
</xs:complexType> | |
</xs:element> | |
<xs:element name="Contents"> | |
<xs:annotation> | |
<xs:documentation>This is a list of all the files within this package. Each file is | |
identified by its path relative to the workspace root.</xs:documentation> | |
</xs:annotation> | |
<xs:complexType> | |
<xs:sequence> | |
<xs:element maxOccurs="unbounded" ref="File"/> | |
</xs:sequence> | |
</xs:complexType> | |
</xs:element> | |
<xs:element name="File"> | |
<xs:annotation> | |
<xs:documentation xml:lang="en">Specify a filename including the path</xs:documentation> | |
</xs:annotation> | |
<xs:complexType> | |
<xs:simpleContent> | |
<xs:extension base="xs:normalizedString"> | |
<xs:attributeGroup ref="attlist.File"/> | |
</xs:extension> | |
</xs:simpleContent> | |
</xs:complexType> | |
</xs:element> | |
<xs:attributeGroup name="attlist.File"> | |
<xs:attribute name="Type"/> | |
<xs:attribute name="Desc"/> | |
<xs:attribute name="Size" type="xs:NMTOKEN"/> | |
<xs:attribute name="CDate" type="xs:NMTOKEN"/> | |
<xs:attribute name="CTime" type="xs:NMTOKEN"/> | |
<xs:attribute name="MDate" type="xs:NMTOKEN"/> | |
<xs:attribute name="MTime" type="xs:NMTOKEN"/> | |
<xs:attribute name="ADate" type="xs:NMTOKEN"/> | |
<xs:attribute name="ATime" type="xs:NMTOKEN"/> | |
<xs:attribute name="Checksum" type="xs:NMTOKEN"/> | |
</xs:attributeGroup> | |
</xs:schema> |