summaryrefslogtreecommitdiff
path: root/Tools/XMLSchema/FDPManifest.xsd
diff options
context:
space:
mode:
Diffstat (limited to 'Tools/XMLSchema/FDPManifest.xsd')
-rw-r--r--Tools/XMLSchema/FDPManifest.xsd376
1 files changed, 376 insertions, 0 deletions
diff --git a/Tools/XMLSchema/FDPManifest.xsd b/Tools/XMLSchema/FDPManifest.xsd
new file mode 100644
index 0000000000..f6b3715426
--- /dev/null
+++ b/Tools/XMLSchema/FDPManifest.xsd
@@ -0,0 +1,376 @@
+<?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>