Initial import.

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
bbahnsen
2006-04-21 22:54:32 +00:00
commit 878ddf1fc3
2651 changed files with 624620 additions and 0 deletions

View File

@@ -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>

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,160 @@
<?xml version="1.0" encoding="UTF-8"?>
<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">
<!--
Filename: FrameworkHeaders.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:include schemaLocation="FrameworkDataElements.xsd"/>
<xs:element name="FdbHeader">
<xs:annotation>
<xs:documentation xml:lang="en">This is the header for the Framework Package Database file.</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="1" maxOccurs="1" ref="DatabaseName"/>
<xs:element minOccurs="1" maxOccurs="1" ref="Guid"/>
<xs:element minOccurs="1" maxOccurs="1" ref="Version"/>
<xs:element minOccurs="0" maxOccurs="1" ref="Path"/>
<xs:element minOccurs="1" maxOccurs="1" ref="Created"/>
<xs:element minOccurs="0" maxOccurs="1" ref="Updated"/>
<xs:element minOccurs="1" maxOccurs="1" ref="Abstract"/>
<xs:element minOccurs="1" maxOccurs="1" ref="Description"/>
<xs:element minOccurs="1" maxOccurs="1" ref="Copyright"/>
<xs:element minOccurs="1" maxOccurs="1" ref="License"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="MbdHeader">
<xs:annotation>
<xs:documentation xml:lang="en">This is the header for the Component Module Build Description (MBD) file. NOTE: The GUID may be different from the GUID in the MSA file, as the Guid is updated every time the file is changed, as the Guid may change if the contents of the file are changed.</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="1" maxOccurs="1" ref="BaseName"/>
<xs:element minOccurs="1" maxOccurs="1" ref="Guid"/>
<xs:element minOccurs="1" maxOccurs="1" ref="Version"/>
<xs:element minOccurs="1" maxOccurs="1" ref="Description"/>
<xs:element minOccurs="1" maxOccurs="1" ref="Copyright"/>
<xs:element minOccurs="1" maxOccurs="1" ref="License"/>
<xs:element minOccurs="1" maxOccurs="1" ref="Created"/>
<xs:element minOccurs="0" maxOccurs="1" ref="Modified"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="MbdLibHeader">
<xs:annotation>
<xs:documentation xml:lang="en">This is the header for the Library Module Build Description (MBD) file. NOTE: The Guid may be different from the Guid in the MSA file, as the Guid may change when the contents of the file are changed..</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="1" maxOccurs="1" ref="BaseName"/>
<xs:element minOccurs="1" maxOccurs="1" ref="Guid"/>
<xs:element minOccurs="1" maxOccurs="1" ref="Version"/>
<xs:element minOccurs="1" maxOccurs="1" ref="Description"/>
<xs:element minOccurs="1" maxOccurs="1" ref="Copyright"/>
<xs:element minOccurs="1" maxOccurs="1" ref="License"/>
<xs:element minOccurs="1" maxOccurs="1" ref="Created"/>
<xs:element minOccurs="0" maxOccurs="1" ref="Modified"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="MsaHeader">
<xs:annotation>
<xs:documentation xml:lang="en">This is the Component Module Surface Area Description Header - a replacement for INF files. The GUID may change when the contents of the file are changed.</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="1" maxOccurs="1" ref="BaseName"/>
<xs:element minOccurs="1" maxOccurs="1" ref="ModuleType"/>
<xs:element minOccurs="1" maxOccurs="1" ref="ComponentType"/>
<xs:element minOccurs="1" maxOccurs="1" ref="Guid"/>
<xs:element minOccurs="1" maxOccurs="1" ref="Version"/>
<xs:element minOccurs="1" maxOccurs="1" ref="Abstract"/>
<xs:element minOccurs="1" maxOccurs="1" ref="Description"/>
<xs:element minOccurs="1" maxOccurs="1" ref="Copyright"/>
<xs:element minOccurs="1" maxOccurs="1" ref="License"/>
<xs:element minOccurs="0" maxOccurs="1" ref="Specification"/>
<xs:element minOccurs="1" maxOccurs="1" ref="Created"/>
<xs:element minOccurs="0" maxOccurs="1" ref="Updated"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="MsaLibHeader">
<xs:annotation>
<xs:documentation xml:lang="en">This is the Library Module Surface Area Description Header - a replacement for INF files. The Guid may change when the contents of the file are changed.</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="1" maxOccurs="1" ref="BaseName"/>
<xs:element minOccurs="1" maxOccurs="1" ref="ModuleType"/>
<xs:element minOccurs="1" maxOccurs="1" ref="ComponentType"/>
<xs:element minOccurs="1" maxOccurs="1" ref="Guid"/>
<xs:element minOccurs="1" maxOccurs="1" ref="Version"/>
<xs:element minOccurs="1" maxOccurs="1" ref="Abstract"/>
<xs:element minOccurs="1" maxOccurs="1" ref="Description"/>
<xs:element minOccurs="1" maxOccurs="1" ref="Copyright"/>
<xs:element minOccurs="1" maxOccurs="1" ref="License"/>
<xs:element minOccurs="0" maxOccurs="1" ref="Specification"/>
<xs:element minOccurs="1" maxOccurs="1" ref="Created"/>
<xs:element minOccurs="0" maxOccurs="1" ref="Updated"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="PlatformHeader">
<xs:annotation>
<xs:documentation xml:lang="en">This head is for the Framework Platform Description file (FPD.)</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="1" maxOccurs="1" name="PlatformName" type="PlatformNamingConvention">
<xs:annotation>
<xs:documentation xml:lang="en">Define the Name of a Platform</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element minOccurs="0" maxOccurs="1" ref="Guid"/>
<xs:element minOccurs="0" maxOccurs="1" ref="Version"/>
<xs:element minOccurs="1" maxOccurs="1" ref="Abstract"/>
<xs:element minOccurs="1" maxOccurs="1" ref="Description"/>
<xs:element minOccurs="0" maxOccurs="1" ref="Copyright"/>
<xs:element minOccurs="0" maxOccurs="1" ref="License"/>
<xs:element minOccurs="1" maxOccurs="1" ref="Created"/>
<xs:element maxOccurs="1" minOccurs="1" ref="CreatedBy"/>
<xs:element minOccurs="0" maxOccurs="1" ref="Updated"/>
<xs:element minOccurs="0" maxOccurs="1" ref="PackageType"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="SpdHeader">
<xs:annotation>
<xs:documentation xml:lang="en">This head is for the Surface Area Package Description file (SPD) The Guid may change when the contents of the file are changed.</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="1" maxOccurs="1" ref="Abstract"/>
<xs:element minOccurs="1" maxOccurs="1" ref="Description"/>
<xs:element minOccurs="1" maxOccurs="1" ref="Copyright"/>
<xs:element minOccurs="1" maxOccurs="1" ref="License"/>
<xs:element minOccurs="1" maxOccurs="1" ref="Created"/>
<xs:element minOccurs="0" maxOccurs="1" ref="E-Mail"/>
<xs:element minOccurs="0" maxOccurs="1" ref="Updated"/>
<xs:element minOccurs="0" maxOccurs="1" ref="URL"/>
<xs:element minOccurs="1" maxOccurs="1" ref="PackageType"/>
<xs:element minOccurs="0" maxOccurs="1" ref="ReadOnly"/>
<xs:element minOccurs="0" maxOccurs="1" ref="RePackage"/>
<xs:element minOccurs="0" maxOccurs="unbounded" ref="Specification"/>
<xs:element minOccurs="0" maxOccurs="1" ref="OutputDirectory"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>

View File

@@ -0,0 +1,357 @@
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" xmlns="http://www.TianoCore.org/2006/Edk2.0" targetNamespace="http://www.TianoCore.org/2006/Edk2.0">
<!--
Filename: FrameworkPlatformDataElements.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:annotation>
<xs:documentation xml:lang="en"> This schema defines EFI and Framework Platform Data Elements that are specific to platform creation.</xs:documentation>
</xs:annotation>
<xs:include schemaLocation="NamingConvention.xsd"/>
<xs:include schemaLocation="FrameworkDataTypes.xsd"/>
<xs:include schemaLocation="FrameworkDataElements.xsd"/>
<xs:element name="Capsule">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="1" maxOccurs="1" name="CapsuleId" type="xs:string"/>
<xs:element minOccurs="0" maxOccurs="1" ref="CapsuleOptions"/>
<xs:element minOccurs="0" maxOccurs="1" ref="CapsuleAttributes"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="CapsuleAttributes">
<xs:annotation>
<xs:documentation xml:lang="en">This element is used specify different name value pairs.</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="unbounded" ref="NameValue"/>
<xs:element minOccurs="0" maxOccurs="unbounded" ref="Enable"/>
<xs:element minOccurs="0" maxOccurs="unbounded" ref="Disable"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="CapsuleOptions">
<xs:annotation>
<xs:documentation xml:lang="en">This element is used specify different name value pairs.</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="unbounded" ref="NameValue"/>
<xs:element minOccurs="0" maxOccurs="unbounded" ref="Enable"/>
<xs:element minOccurs="0" maxOccurs="unbounded" ref="Disable"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="Capsules">
<xs:annotation>
<xs:documentation xml:lang="en">Permit multiple Capsule Sections</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence minOccurs="1" maxOccurs="unbounded">
<xs:element ref="Capsule"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="Disable" type="xs:string"/>
<xs:element name="Enable" type="xs:string"/>
<xs:element name="Flash">
<xs:complexType>
<xs:annotation>
<xs:documentation xml:lang="en">We allow specifying the Flash layout in this directory, or we allow specifying a flashmap filename</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:choice>
<xs:element name="FlashDefinition" type="FlashData"/>
<xs:element name="FlashDefinitionFile" type="FileNameConvention"/>
</xs:choice>
<xs:element minOccurs="0" maxOccurs="unbounded" ref="FvImages"/>
<xs:element minOccurs="0" maxOccurs="unbounded" ref="Capsules"/>
</xs:sequence>
<xs:attribute name="MicrocodeFile" type="FileNameConvention" use="optional"/>
</xs:complexType>
</xs:element>
<xs:element name="FlashDeviceImage">
<xs:annotation>
<xs:documentation xml:lang="en">Define contents of the regions in flash. The files and data are placed in the output image in the order they are encountered in this definition. Multiple FlashDeviceImage sections may be defined. Which one the tool should use is specified by Name on the command line.</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence minOccurs="1" maxOccurs="unbounded">
<xs:element minOccurs="1" maxOccurs="1" name="Name" type="NameConvention"/>
<xs:element minOccurs="0" maxOccurs="unbounded" name="File" type="FvImageFileType"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="FlashDeviceInfo">
<xs:annotation>
<xs:documentation xml:lang="en">This is the Flash Devcie definition List</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="1" maxOccurs="1" name="Name" type="UCNameType"/>
<xs:element default="512KB" minOccurs="1" maxOccurs="1" name="FlashSize" type="FlashSize"/>
<xs:element minOccurs="1" maxOccurs="1" name="BaseAddress" type="HexAddressType"/>
<xs:element minOccurs="1" maxOccurs="1" name="OutputDirectory" type="DirectoryNamingConvention"/>
<xs:element minOccurs="0" maxOccurs="1" name="MicrocodeFile" type="FileNameConvention"/>
<xs:element minOccurs="1" maxOccurs="255" name="Block" type="BlockNameType"/>
<xs:element minOccurs="1" maxOccurs="unbounded" name="Region" type="RegionDataType"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="FlashDeviceOverrideImage">
<xs:annotation>
<xs:documentation xml:lang="en">Define OVERRIDE contents of the regions in flash. Only what is different here from what may defined in other areas (or files) is needed </xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="1" name="Name" type="NameConvention"/>
<xs:element minOccurs="0" maxOccurs="unbounded" name="File" type="FvImageOverrideFileType"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="FlashDeviceOverrideInfo">
<xs:annotation>
<xs:documentation xml:lang="en">This is the Flash Devcie Override Definition list. Only what is different from the previously defined stuff needs to be included.</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="1" name="Name" type="UCNameType"/>
<xs:element default="512KB" minOccurs="0" maxOccurs="1" name="FlashSize" type="FlashSize"/>
<xs:element minOccurs="0" maxOccurs="1" name="BaseAddress" type="HexAddressType"/>
<xs:element minOccurs="0" maxOccurs="1" name="OutputDirectory" type="DirectoryNamingConvention"/>
<xs:element minOccurs="0" maxOccurs="1" name="MicrocodeFile" type="FileNameConvention"/>
<xs:element minOccurs="0" maxOccurs="255" name="Block" type="BlockNameType"/>
<xs:element minOccurs="0" maxOccurs="unbounded" name="Region" type="RegionDataType"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="FvImage">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="1" maxOccurs="unbounded" ref="FvImageNames"/>
<xs:element minOccurs="0" maxOccurs="1" ref="FvImageOptions"/>
</xs:sequence>
<xs:attribute name="Type" type="xs:string" use="optional"/>
</xs:complexType>
</xs:element>
<xs:element name="FvImageName">
<xs:complexType>
<xs:sequence>
<xs:element ref="FvImageOptions"/>
</xs:sequence>
<xs:attribute name="Name" type="FvRegionTypes" use="required"/>
</xs:complexType>
</xs:element>
<xs:element name="FvImageNames" type="xs:string"/>
<xs:element name="FvImageOptions">
<xs:annotation>
<xs:documentation xml:lang="en">This element is used specify different name value pairs.</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="unbounded" ref="NameValue"/>
<xs:element minOccurs="0" maxOccurs="unbounded" ref="Enable"/>
<xs:element minOccurs="0" maxOccurs="unbounded" ref="Disable"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="FvImages">
<xs:annotation>
<xs:documentation xml:lang="en">This section allows the user to define specific information regarding the FvImage</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="unbounded" ref="NameValue"/>
<xs:element minOccurs="0" maxOccurs="unbounded" ref="FvImage"/>
<xs:element minOccurs="0" maxOccurs="unbounded" ref="FvImageName"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="ModuleSA">
<xs:annotation>
<xs:documentation xml:lang="en">This element is used to specify information in the Platform Description File.</xs:documentation>
<xs:documentation xml:lang="en">This is a mixed element, allowing the user to specify the name of the MSA file, as well as to optionally specify additional override information.</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence minOccurs="1">
<xs:element minOccurs="0" maxOccurs="1" ref="SourceFiles"/>
<xs:element minOccurs="0" maxOccurs="1" ref="Includes"/>
<xs:element minOccurs="0" maxOccurs="1" ref="Libraries"/>
<xs:element minOccurs="0" maxOccurs="1" ref="Protocols"/>
<xs:element minOccurs="0" maxOccurs="1" ref="Events"/>
<xs:element minOccurs="0" maxOccurs="1" ref="Hobs"/>
<xs:element minOccurs="0" maxOccurs="1" ref="PPIs"/>
<xs:element minOccurs="0" maxOccurs="1" ref="Variables"/>
<xs:element minOccurs="0" maxOccurs="1" ref="BootModes"/>
<xs:element minOccurs="0" maxOccurs="1" ref="SystemTables"/>
<xs:element minOccurs="0" maxOccurs="1" ref="DataHubs"/>
<xs:element minOccurs="0" maxOccurs="1" ref="Formsets"/>
<xs:element minOccurs="0" maxOccurs="1" ref="Guids"/>
<xs:element minOccurs="0" maxOccurs="1" ref="Externs"/>
</xs:sequence>
<xs:attributeGroup ref="MsaAttributes"/>
</xs:complexType>
</xs:element>
<xs:element name="NameValue">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="Name" type="xs:string" use="required"/>
<xs:attribute name="Value" type="xs:string" use="required"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="Overrides">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="1" ref="FlashDeviceOverrideInfo"/>
<xs:element minOccurs="0" maxOccurs="1" ref="FlashDeviceOverrideImage"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="PlatformDescriptions">
<xs:complexType>
<xs:sequence maxOccurs="unbounded">
<xs:element ref="Platform"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="TianoImage">
<xs:annotation>
<xs:documentation xml:lang="en">This defines the required sections of a valid EFI/Tiano binary image</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="1" maxOccurs="1" name="SEC" type="Components"/>
<xs:element minOccurs="1" maxOccurs="1" name="PEI_CORE" type="Components"/>
<xs:element minOccurs="1" maxOccurs="1" name="PEIM" type="Components"/>
<xs:element minOccurs="1" maxOccurs="1" name="DXE_CORE" type="Components"/>
<xs:element minOccurs="1" maxOccurs="1" name="DXE_DRIVERS" type="Components"/>
<xs:element minOccurs="0" maxOccurs="1" name="OTHER_COMPONENTS" type="Components"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:simpleType name="EfiFvAttributeType">
<xs:annotation>
<xs:documentation xml:lang="en">The list of EFI_FLASH_AREA Attributes</xs:documentation>
</xs:annotation>
<xs:restriction base="UCNameType">
<xs:enumeration value="EFI_FLASH_AREA_FV"/>
<xs:enumeration value="EFI_FLASH_AREA_MEMMAPPED_FV"/>
<xs:enumeration value="EFI_FLASH_AREA_SUBFV"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="EfiFvAreaType">
<xs:annotation>
<xs:documentation xml:lang="en">The list of valid EFI Area Types</xs:documentation>
</xs:annotation>
<xs:restriction base="UCNameType">
<xs:enumeration value="EFI_FLASH_AREA_EFI_VARIABLES"/>
<xs:enumeration value="EFI_FLASH_AREA_UNUSED"/>
<xs:enumeration value="EFI_FLASH_AREA_MAIN_BIOS"/>
<xs:enumeration value="EFI_FLASH_AREA_GUID_DEFINED"/>
<xs:enumeration value="EFI_FLASH_AREA_FTW_STATE"/>
<xs:enumeration value="EFI_FLASH_AREA_FTW_BACKUP"/>
<xs:enumeration value="EFI_FLASH_AREA_RECOVERY_BIOS"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="EfiNameGuidType">
<xs:annotation>
<xs:documentation xml:lang="en">Right now, only EFI_FLASH_MAP_HOB_GUID is defined</xs:documentation>
</xs:annotation>
<xs:restriction base="UCNameType">
<xs:enumeration value="EFI_FLASH_MAP_HOB_GUID"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="FlashSize">
<xs:restriction base="xs:string">
<xs:enumeration value="256KB"/>
<xs:enumeration value="512KB"/>
<xs:enumeration value="1MB"/>
<xs:enumeration value="2MB"/>
<xs:enumeration value="4MB"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="FvSubRegionTypes">
<xs:restriction base="UCNameType">
<xs:enumeration value="NV_VARIABLE_STORE"/>
<xs:enumeration value="MICROCODE"/>
<xs:enumeration value="NV_FTW_WORKING"/>
</xs:restriction>
</xs:simpleType>
<xs:complexType name="Components">
<xs:sequence minOccurs="1" maxOccurs="unbounded">
<xs:element ref="ModuleSA"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="FlashData">
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="unbounded" name="UserDefinedFvRegion" type="NameConvention"/>
<xs:choice minOccurs="0" maxOccurs="1">
<xs:sequence>
<xs:element minOccurs="1" maxOccurs="1" ref="FlashDeviceInfo"/>
<xs:element minOccurs="1" maxOccurs="1" ref="FlashDeviceImage"/>
</xs:sequence>
</xs:choice>
<xs:element minOccurs="0" maxOccurs="1" ref="Overrides"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="FvImageFileType">
<xs:sequence>
<xs:element minOccurs="1" maxOccurs="1" name="Name" type="FileNameConvention"/>
<xs:element minOccurs="1" maxOccurs="1" name="Region" type="FvRegionTypes"/>
<xs:element minOccurs="1" maxOccurs="unbounded" name="RawData" type="RawDataType"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="FvImageOverrideFileType">
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="1" name="Name" type="FileNameConvention"/>
<xs:element minOccurs="0" maxOccurs="1" name="Region" type="FvRegionTypes"/>
<xs:element minOccurs="0" maxOccurs="1" name="UserDefinedFvRegion" type="NameConvention"/>
<xs:element minOccurs="0" maxOccurs="unbounded" name="RawData" type="RawDataType"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="RawDataType">
<xs:sequence>
<xs:element minOccurs="1" maxOccurs="1" name="Name" type="NameConvention"/>
<xs:element minOccurs="0" maxOccurs="1" name="Region" type="FvRegionTypes"/>
<xs:element minOccurs="0" maxOccurs="1" name="UserDefinedFvRegion" type="NameConvention"/>
<xs:element minOccurs="1" maxOccurs="1" name="SubRegion" type="FvSubRegionTypes"/>
<xs:element minOccurs="1" maxOccurs="1" name="Data" type="HexDataType"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="RegionDataType">
<xs:annotation>
<xs:documentation xml:lang="en">Define the regions and their uses for the device</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element minOccurs="1" maxOccurs="1" name="Name" type="UCNameType"/>
<xs:element minOccurs="1" maxOccurs="1" name="Size" type="HexAddressType"/>
<xs:element minOccurs="1" maxOccurs="unbounded" name="Attributes" type="EfiFvAttributeType"/>
<xs:element minOccurs="1" maxOccurs="1" name="AreaType" type="EfiFvAreaType"/>
<xs:element minOccurs="0" maxOccurs="unbounded" name="SubRegion" type="SubRegionType"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="SubRegionType">
<xs:annotation>
<xs:documentation xml:lang="en">Define the regions and their uses for the device</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element default="true" minOccurs="1" maxOccurs="1" name="CreateHob" type="xs:boolean"/>
<xs:element minOccurs="1" maxOccurs="1" name="Name" type="UCNameType"/>
<xs:element minOccurs="1" maxOccurs="1" name="Size" type="HexAddressType"/>
<xs:element minOccurs="1" maxOccurs="unbounded" name="Attributes" type="EfiFvAttributeType"/>
<xs:element minOccurs="1" maxOccurs="1" name="AreaType" type="EfiFvAreaType"/>
<xs:element minOccurs="1" maxOccurs="1" name="NameGuid" type="EfiNameGuidType"/>
</xs:sequence>
</xs:complexType>
</xs:schema>

View File

@@ -0,0 +1,307 @@
<?xml version="1.0" encoding="UTF-8"?>
<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">
<!--
Filename: NamingConvention.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:annotation>
<xs:documentation xml:lang="en"> This schema defines various data types and naming conventions including: base name, filename and directory naming conventions. These are all simple data types.</xs:documentation>
</xs:annotation>
<xs:simpleType name="BaseNameConvention">
<xs:annotation>
<xs:documentation xml:lang="en"> Base Names must start with an upper case character, followed by one or more alphanumeric characters and/or an optional underscore (_) character followed by one or more alphanumeric characters. Examples: Base_name3, BASE_NAME3, BaseName3 </xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string">
<xs:pattern value="[A-Z]([a-zA-Z0-9])*(_)?([a-zA-Z0-9])*"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="C_Name">
<xs:annotation>
<xs:documentation xml:lang="en"> C_Names must start with either an underscore (_) character followed by one or more alpha characters, followed by any combination of underscore or alphanumeric characters.</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string">
<xs:pattern value="((_)*([a-zA-Z])+((_)*[a-zA-Z0-9]*))*"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="DirectoryNamingConvention">
<xs:annotation>
<xs:documentation xml:lang="en"> Directory naming convention is a UNION of DOS an UNIX directory path names </xs:documentation>
</xs:annotation>
<xs:union memberTypes="Directory_DOS Directory_UNIX"/>
</xs:simpleType>
<xs:simpleType name="Directory_DOS">
<xs:annotation>
<xs:documentation xml:lang="en"> Directory naming convention for Windows backslash (\) directory path name </xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string">
<xs:pattern value="([a-zA-Z]:\\)?(((\\?_*-*.*[a-zA-Z0-9]*)*(_*-*.*[a-zA-Z0-9])*)+(\\)?)*"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="Directory_UNIX">
<xs:annotation>
<xs:documentation xml:lang="en"> Directory naming convention for UNIX forwardslash (/) directory path name </xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string">
<xs:pattern value="(\/)?(((_*-*.*[a-zA-Z0-9]*)*(_*-*.*[a-zA-Z0-9])*)+(\/)?)*"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="E-Mail">
<xs:restriction base="xs:string">
<xs:pattern value="[a-zA-Z]+(( )*.?-?[a-zA-Z]*)*@[a-zA-Z]+(( )*.?-?[a-zA-Z]*)*"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="FileNameConvention">
<xs:annotation>
<xs:documentation xml:lang="en"> This defines what a Filename is: Alphanumeric characters and optional underscore (_) or dash (-) characters, followed by a optional dot and more alphanumeric characters. </xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string">
<xs:pattern value="[a-zA-Z][a-zA-Z0-9]*((_)*(-)*(.)*[a-zA-Z0-9]*)*"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="GuidArrayType">
<xs:annotation>
<xs:documentation xml:lang="en"> This defines the minimum specification for a GUID Array which is 8 Hex Digits - 4 Hex Digits - 4 Hex Digits - 8 Hex Bytes, the last 16 Hex Digits can be enclosed in sqiggle {} brackets.</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string">
<xs:pattern value="0x[a-fA-F0-9]{1,8},( )*0x[a-fA-F0-9]{1,4},( )*0x[a-fA-F0-9]{1,4}(,( )*\{)?(,?( )*0x[a-fA-F0-9]{1,2}){8}( )*(\})?"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="GuidNamingConvention">
<xs:annotation>
<xs:documentation xml:lang="en"> A GUID must contain five different Hexadecimal character sets that are separated by a dash (-) character. </xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string">
<xs:pattern value="[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}"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="GuidType">
<xs:annotation>
<xs:documentation xml:lang="en"> The GUID data is union of GuidNaming Convetion and GuidArrayType. </xs:documentation>
</xs:annotation>
<xs:union memberTypes="GuidArrayType GuidNamingConvention"/>
</xs:simpleType>
<xs:simpleType name="Hex64BitDataType">
<xs:annotation>
<xs:documentation xml:lang="en">Define a Hex 64 Bit Value to be 0x[a-f0-9]{16}</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string">
<xs:pattern value="(0x)?[a-fA-F0-9]{1,16}"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="HexAddressType">
<xs:annotation>
<xs:documentation xml:lang="en">Define a Hex Address, 0x[a-fA-F0-9]{1,16}</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string">
<xs:pattern value="0x[a-fA-F0-9]{1,16}"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="HexByteDataType">
<xs:annotation>
<xs:documentation xml:lang="en">Define a Hex Byte Value to be 0x[a-f0-9]{2}</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string">
<xs:pattern value="(0x)?[a-fA-F0-9]{1,2}"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="HexDataType">
<xs:annotation>
<xs:documentation xml:lang="en">Define a Hex Value to be 0x[a-f0-9]+</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string">
<xs:pattern value="0x[a-fA-F0-9]+"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="HexDigitType">
<xs:annotation>
<xs:documentation xml:lang="en">Define a Hex Diget to be 0x[a-f0-9]</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string">
<xs:pattern value="[a-fA-F0-9]{1}"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="HexDoubleWordDataType">
<xs:annotation>
<xs:documentation xml:lang="en">Define a Hex Double Word Value to be 0x[a-f0-9]{8}</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string">
<xs:pattern value="0x[a-fA-F0-9]{1,8}"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="HexWordDataType">
<xs:annotation>
<xs:documentation xml:lang="en">Define a Hex Word Value to be 0x[a-f0-9]{4}</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string">
<xs:pattern value="0x[a-fA-F0-9]{1,4}"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="LibraryNameConvention">
<xs:annotation>
<xs:documentation xml:lang="en"> This defines what a Library name is: alphanumeric characters and optional underscore (_) characters. </xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string">
<xs:pattern value="[A-Z][a-zA-Z0-9]*(_*[a-zA-Z0-9])*"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="NameConvention">
<xs:annotation>
<xs:documentation xml:lang="en">What is a name, any series of alphanumeric characters and one or more underline characters that may occur in any position</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:normalizedString">
<xs:pattern value="(_*[a-zA-Z0-9]*_*)+"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="Paragraph">
<xs:annotation>
<xs:documentation xml:lang="en">This describes the normal text of a paragraph that can be used in a license or description tag.</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:normalizedString"/>
</xs:simpleType>
<xs:simpleType name="PlatformNamingConvention">
<xs:annotation>
<xs:documentation xml:lang="en"> This defines what a Platform Name is: Alphanumeric characters and optional underscore (_) or dash (-) characters, followed by a dot and more alphanumeric characters. </xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string">
<xs:pattern value="(([a-zA-Z][a-zA-Z0-9]*)(_)*(.)*)+"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="Sentence">
<xs:annotation>
<xs:documentation xml:lang="en"> This data type requires two or more words </xs:documentation>
</xs:annotation>
<xs:restriction base="xs:normalizedString">
<xs:pattern value="(\w+\W*)+( )+(\W*\w*\W*\s*)*"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="ToolNameConvention">
<xs:annotation>
<xs:documentation xml:lang="en"> This defines what a Tool name is: Alphanumeric characters and optional underscore (_) or dash (-) characters, optionally followed by a dot and more alphanumeric characters. </xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string">
<xs:pattern value="[a-zA-Z][a-zA-Z0-9]*(_*-*.*[a-zA-Z0-9])*"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="UCLetterType">
<xs:annotation>
<xs:documentation xml:lang="en"> Definition of a UpperCase Letter type, which can be any combination of upper case characters followed by zero or more underscore and/or uppercase alphanumeric characters </xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string">
<xs:pattern value="[A-Z]{1}"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="UCNameType">
<xs:annotation>
<xs:documentation xml:lang="en"> Definition of a UpperCase Name, which can be any combination of upper case characters followed by zero or more underscore and/or uppercase alphanumeric characters </xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string">
<xs:pattern value="[A-Z]+(_*[A-Z0-9]*( )*)*"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="UserName">
<xs:annotation>
<xs:documentation xml:lang="en">Specify a User Name</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string">
<xs:pattern value="[a-zA-Z]+(( )*.?-?[a-zA-Z]*)*"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="V1">
<xs:annotation>
<xs:documentation xml:lang="en">%VAR%(Directory)*(File_Names)*</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string">
<xs:pattern value="((%[A-Z](_*[A-Z0-9]*)*%)+((((\\)?_*-*.*[a-zA-Z0-9]*)*(_*-*.*[a-zA-Z0-9])*)+(\\)?)*)"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="V2">
<xs:annotation>
<xs:documentation xml:lang="en">($VAR | $( VAR) | ${VAR})(Directory)*(File_Names)</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string">
<xs:pattern value="(($[A-Z](_*[A-Z0-9]*)*)+||($\([A-Z](_*[A-Z0-9]*)*\))+||($\{[A-Z](_*[A-Z0-9]*)*\})+)+(\/)?(((((_*-*.*[a-zA-Z0-9]*)*(_*-*.*[a-zA-Z0-9])*)+(\/)?)*)*)"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="VariableConvention">
<xs:annotation>
<xs:documentation xml:lang="en">VariableConvention is a UNION of: $VAR, $( VAR), ${VAR} and %VAR% and Directory and File Names</xs:documentation>
</xs:annotation>
<xs:union memberTypes="V1 V2"/>
</xs:simpleType>
<xs:simpleType name="VariableGuidType">
<xs:annotation>
<xs:documentation xml:lang="en"> The GUID data is union of GuidNaming Convetion and GuidArrayType. </xs:documentation>
</xs:annotation>
<xs:union memberTypes="GuidArrayType GuidNamingConvention Zero"/>
</xs:simpleType>
<xs:simpleType name="VariableNamingConvention">
<xs:annotation>
<xs:documentation xml:lang="en">VariableConvention is a UNION of: $VAR, $( VAR), ${VAR} and %VAR%</xs:documentation>
</xs:annotation>
<xs:union memberTypes="Variable_DOS Variable_UNIX Variable_UNIX_Scope1 Variable_UNIX_Scope2"/>
</xs:simpleType>
<xs:simpleType name="Variable_DOS">
<xs:annotation>
<xs:documentation xml:lang="en"> Definition of a DOS Variable Name: %VAR% It must start with an Upper Case character.</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string">
<xs:pattern value="%[A-Z](_*[A-Z0-9]*)*%"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="Variable_UNIX">
<xs:annotation>
<xs:documentation xml:lang="en"> Definition of a UNIX Variable Name: $VAR It must start with an Upper Case character.</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string">
<xs:pattern value="$[A-Z](_*[A-Z0-9]*)*"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="Variable_UNIX_Scope1">
<xs:annotation>
<xs:documentation xml:lang="en"> Definition of a UNIX Variable Name: $( VAR1) It must start with an Upper Case character.</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string">
<xs:pattern value="$\([A-Z](_*[A-Z0-9]*)*\)"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="Variable_UNIX_Scope2">
<xs:annotation>
<xs:documentation xml:lang="en"> Definition of a UNIX Variable Name: ${ VAR1} It must start with an Upper Case character.</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string">
<xs:pattern value="$\{[A-Z](_*[A-Z0-9]*)*\}"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="VersionDataType">
<xs:annotation>
<xs:documentation xml:lang="en"> Definition of a Version Number, which can be any combination of a number followed by zero or more alphanumeric-dot-alphanumeric characters </xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string">
<xs:pattern value="xs:normalizedString"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="Zero">
<xs:annotation>
<xs:documentation xml:lang="en">Define Zero as a vaild value</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:int">
<xs:pattern value="0"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="OldVersionDataType">
<xs:annotation>
<xs:documentation xml:lang="en"> Definition of a Version Number, which can be any combination of a number followed by zero or more alphanumeric-dot-alphanumeric characters </xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string">
<xs:pattern value="([0-9])+[a-zA-Z0-9]*(-?.?([a-zA-Z0-9])*)*"/>
</xs:restriction>
</xs:simpleType>
</xs:schema>

View File

@@ -0,0 +1,167 @@
<?xml version="1.0" encoding="UTF-8"?>
<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">
<!--
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:include schemaLocation="FrameworkHeaders.xsd"/>
<xs:include schemaLocation="FrameworkDataElements.xsd"/>
<xs:include schemaLocation="FrameworkPlatformDataElements.xsd"/>
<xs:element name="FrameworkDatabase">
<xs:annotation>
<xs:documentation xml:lang="en">This is the valid format for the Package Database File. Note: MsaList is used for Modules that have not yet been included in a package.</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="1" maxOccurs="1" ref="FdbHeader"/>
<xs:element minOccurs="1" maxOccurs="1" ref="PackageList"/>
<xs:element minOccurs="0" maxOccurs="1" ref="ModuleList"/>
<xs:element minOccurs="0" maxOccurs="1" ref="PlatformDescriptions"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="FrameworkPlatformDescription">
<xs:annotation>
<xs:documentation xml:lang="en">This is the valid format for the Framework Platform Description (FPD) File.</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="1" maxOccurs="1" ref="PlatformHeader"/>
<xs:element minOccurs="0" maxOccurs="1" ref="Flash"/>
<xs:element minOccurs="0" maxOccurs="1" ref="TianoImage"/>
<xs:element minOccurs="0" maxOccurs="1" ref="PcdBuildDeclarations"/>
<xs:element minOccurs="0" maxOccurs="1" ref="BuildOptions"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="LibraryModuleBuildDescription">
<xs:annotation>
<xs:documentation xml:lang="en">This is the Module Build Description that contains the list of overrides, library instances that can or must be used by the library.</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="1" maxOccurs="1" ref="MbdLibHeader"/>
<xs:element minOccurs="0" maxOccurs="1" ref="SourceFiles"/>
<xs:element minOccurs="0" maxOccurs="1" ref="Includes"/>
<xs:element minOccurs="0" maxOccurs="1" ref="Libraries"/>
<xs:element minOccurs="0" maxOccurs="1" ref="Protocols"/>
<xs:element minOccurs="0" maxOccurs="1" ref="Events"/>
<xs:element minOccurs="0" maxOccurs="1" ref="Hobs"/>
<xs:element minOccurs="0" maxOccurs="1" ref="PPIs"/>
<xs:element minOccurs="0" maxOccurs="1" ref="Variables"/>
<xs:element minOccurs="0" maxOccurs="1" ref="BootModes"/>
<xs:element minOccurs="0" maxOccurs="1" ref="SystemTables"/>
<xs:element minOccurs="0" maxOccurs="1" ref="DataHubs"/>
<xs:element minOccurs="0" maxOccurs="1" ref="Formsets"/>
<xs:element minOccurs="0" maxOccurs="1" ref="Guids"/>
<xs:element minOccurs="0" maxOccurs="1" ref="Externs"/>
<xs:element minOccurs="0" maxOccurs="1" ref="PCDs"/>
<xs:element minOccurs="0" maxOccurs="1" ref="BuildOptions"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="LibraryModuleSurfaceArea">
<xs:annotation>
<xs:documentation xml:lang="en">This is the Module Library Surface Area Description that contains the list of the module's source files, library classes that can or must be used by the module, the Class(es) of the Library that will be supported by the library, the Include Paths, Protocols and Ppi's that are either produced or consued.</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="1" maxOccurs="1" ref="MsaLibHeader"/>
<xs:element minOccurs="0" maxOccurs="1" ref="LibraryClassDefinitions"/>
<xs:element minOccurs="1" maxOccurs="1" ref="SourceFiles"/>
<xs:element minOccurs="0" maxOccurs="1" ref="Includes"/>
<xs:element minOccurs="0" maxOccurs="1" ref="Protocols"/>
<xs:element minOccurs="0" maxOccurs="1" ref="Events"/>
<xs:element minOccurs="0" maxOccurs="1" ref="Hobs"/>
<xs:element minOccurs="0" maxOccurs="1" ref="PPIs"/>
<xs:element minOccurs="0" maxOccurs="1" ref="Variables"/>
<xs:element minOccurs="0" maxOccurs="1" ref="BootModes"/>
<xs:element minOccurs="0" maxOccurs="1" ref="SystemTables"/>
<xs:element minOccurs="0" maxOccurs="1" ref="DataHubs"/>
<xs:element minOccurs="0" maxOccurs="1" ref="Formsets"/>
<xs:element minOccurs="0" maxOccurs="1" ref="Guids"/>
<xs:element minOccurs="0" maxOccurs="1" ref="Externs"/>
<xs:element minOccurs="0" maxOccurs="1" ref="PCDs"/>
<xs:element minOccurs="0" maxOccurs="1" ref="BuildOptions"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="ModuleBuildDescription">
<xs:annotation>
<xs:documentation xml:lang="en">This is the Module Build Description that contains the list of overrides, library instances that can or must be used by the module.</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="1" maxOccurs="1" ref="MbdHeader"/>
<xs:element minOccurs="0" maxOccurs="1" ref="SourceFiles"/>
<xs:element minOccurs="0" maxOccurs="1" ref="Includes"/>
<xs:element minOccurs="0" maxOccurs="1" ref="Libraries"/>
<xs:element minOccurs="0" maxOccurs="1" ref="Protocols"/>
<xs:element minOccurs="0" maxOccurs="1" ref="Events"/>
<xs:element minOccurs="0" maxOccurs="1" ref="Hobs"/>
<xs:element minOccurs="0" maxOccurs="1" ref="PPIs"/>
<xs:element minOccurs="0" maxOccurs="1" ref="Variables"/>
<xs:element minOccurs="0" maxOccurs="1" ref="BootModes"/>
<xs:element minOccurs="0" maxOccurs="1" ref="SystemTables"/>
<xs:element minOccurs="0" maxOccurs="1" ref="DataHubs"/>
<xs:element minOccurs="0" maxOccurs="1" ref="Formsets"/>
<xs:element minOccurs="0" maxOccurs="1" ref="Guids"/>
<xs:element minOccurs="0" maxOccurs="1" ref="Externs"/>
<xs:element minOccurs="0" maxOccurs="1" ref="PCDs"/>
<xs:element minOccurs="0" maxOccurs="1" ref="BuildOptions"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="ModuleSurfaceArea">
<xs:annotation>
<xs:documentation xml:lang="en">This is the Module Surface Area Description that contains the list of the module's source files, library classes that can or must be used by the module, the Include Paths, Protocols and Ppi's that are either produced or consued.</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="1" maxOccurs="1" ref="MsaHeader"/>
<xs:element minOccurs="0" maxOccurs="1" ref="LibraryClassDefinitions"/>
<xs:element minOccurs="1" maxOccurs="1" ref="SourceFiles"/>
<xs:element minOccurs="0" maxOccurs="1" ref="Includes"/>
<xs:element minOccurs="0" maxOccurs="1" ref="Protocols"/>
<xs:element minOccurs="0" maxOccurs="1" ref="Events"/>
<xs:element minOccurs="0" maxOccurs="1" ref="Hobs"/>
<xs:element minOccurs="0" maxOccurs="1" ref="PPIs"/>
<xs:element minOccurs="0" maxOccurs="1" ref="Variables"/>
<xs:element minOccurs="0" maxOccurs="1" ref="BootModes"/>
<xs:element minOccurs="0" maxOccurs="1" ref="SystemTables"/>
<xs:element minOccurs="0" maxOccurs="1" ref="DataHubs"/>
<xs:element minOccurs="0" maxOccurs="1" ref="Formsets"/>
<xs:element minOccurs="0" maxOccurs="1" ref="Guids"/>
<xs:element minOccurs="0" maxOccurs="1" ref="Externs"/>
<xs:element minOccurs="0" maxOccurs="1" ref="PCDs"/>
<xs:element minOccurs="0" maxOccurs="1" ref="BuildOptions"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="PackageSurfaceArea">
<xs:annotation>
<xs:documentation xml:lang="en">This is valid content for a Package Surface Area Description (SPD) file.</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="1" maxOccurs="1" ref="SpdHeader"/>
<xs:element minOccurs="0" maxOccurs="1" ref="LibraryClassDeclarations"/>
<xs:element minOccurs="0" maxOccurs="1" ref="PackageDependencies"/>
<xs:element minOccurs="1" maxOccurs="1" ref="MsaFiles"/>
<xs:element minOccurs="0" maxOccurs="1" ref="PackageHeaders"/>
<xs:element minOccurs="0" maxOccurs="1" ref="GuidDeclarations"/>
<xs:element minOccurs="0" maxOccurs="1" ref="ProtocolDeclarations"/>
<xs:element minOccurs="0" maxOccurs="1" ref="PpiDeclarations"/>
<xs:element minOccurs="0" maxOccurs="1" ref="PcdDefinitions"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>

View File

@@ -0,0 +1,16 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
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.
-->
<xb:config xmlns:xb="http://xml.apache.org/xmlbeans/2004/02/xbean/config">
<xb:namespace uri="http://www.TianoCore.org/2006/Edk2.0">
<xb:package>org.tianocore</xb:package>
</xb:namespace>
</xb:config>