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