2006-04-22 00:54:32 +02:00
|
|
|
<?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>
|
2006-06-03 02:46:59 +02:00
|
|
|
<xs:extension base="xs:NCName">
|
2006-04-22 00:54:32 +02:00
|
|
|
<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>
|
2006-06-03 02:46:59 +02:00
|
|
|
<xs:extension base="xs:NCName">
|
2006-04-22 00:54:32 +02:00
|
|
|
<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>
|