Added two optional attributes to the Cloned element, FarGuid and Id that can be used...
[mirror_edk2.git] / Tools / XMLSchema / SurfaceArea.xsd
1 <?xml version="1.0" encoding="UTF-8"?>
2 <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">
3 <!--
4 Filename: SurfaceArea.xsd
5
6 Copyright (c) 2006, Intel Corp.
7 All rights reserved. This program and the accompanying materials
8 are licensed and made available under the terms and conditions of the BSD License
9 which may be found at http://opensource.org/licenses/bsd-license.php
10
11 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
12 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
13
14 APPROVED: 14-Jun-2006
15 -->
16 <xs:include schemaLocation="FrameworkHeaders.xsd"/>
17 <xs:include schemaLocation="FrameworkDataElements.xsd"/>
18 <xs:include schemaLocation="FrameworkPlatformDataElements.xsd"/>
19 <xs:annotation>
20 <xs:documentation xml:lang="en">This describes the valid content of a FrameworkDatabase (DB) File.</xs:documentation>
21 </xs:annotation>
22 <xs:element name="FrameworkDatabase">
23 <xs:complexType>
24 <xs:sequence>
25 <xs:element minOccurs="1" maxOccurs="1" ref="FdbHeader"/>
26 <xs:element minOccurs="1" maxOccurs="1" ref="PackageList"/>
27 <xs:element minOccurs="0" maxOccurs="1" ref="PlatformList"/>
28 <xs:element minOccurs="1" maxOccurs="1" ref="FarList"/>
29 <xs:element minOccurs="0" maxOccurs="unbounded" ref="UserExtensions"/>
30 </xs:sequence>
31 </xs:complexType>
32 </xs:element>
33 <xs:annotation>
34 <xs:documentation xml:lang="en">This describes the valid content of a Framework Platform Description (FPD) File.</xs:documentation>
35 </xs:annotation>
36 <xs:element name="PlatformSurfaceArea">
37 <xs:complexType>
38 <xs:sequence>
39 <xs:element minOccurs="1" maxOccurs="1" ref="PlatformHeader"/>
40 <!-- This section will be for new definitions of how we put together the Framework Binary Images -->
41 <xs:element minOccurs="0" maxOccurs="1" ref="PlatformDefinitions"/>
42 <!-- The Flash section is the legacy implementation of Flash -->
43 <xs:element minOccurs="0" maxOccurs="1" ref="Flash"/>
44 <xs:element minOccurs="0" maxOccurs="1" ref="FrameworkModules"/>
45 <xs:element minOccurs="0" maxOccurs="1" ref="DynamicPcdBuildDefinitions"/>
46 <xs:element minOccurs="0" maxOccurs="1" ref="BuildOptions"/>
47 <xs:element minOccurs="0" maxOccurs="unbounded" ref="UserExtensions"/>
48 </xs:sequence>
49 </xs:complexType>
50 </xs:element>
51 <xs:annotation>
52 <xs:documentation xml:lang="en">This describes the valid content for a Module Surface Area Description (MSA) file.</xs:documentation>
53 </xs:annotation>
54 <xs:element name="ModuleSurfaceArea">
55 <xs:complexType>
56 <xs:sequence>
57 <xs:element minOccurs="1" maxOccurs="1" ref="MsaHeader"/>
58 <xs:element minOccurs="1" maxOccurs="1" ref="ModuleDefinitions"/>
59 <xs:element minOccurs="0" maxOccurs="1" ref="LibraryClassDefinitions"/>
60 <xs:element minOccurs="0" maxOccurs="1" ref="SourceFiles"/>
61 <xs:element minOccurs="0" maxOccurs="1" ref="PackageDependencies"/>
62 <xs:element minOccurs="0" maxOccurs="1" ref="Protocols"/>
63 <xs:element minOccurs="0" maxOccurs="1" ref="Events"/>
64 <xs:element minOccurs="0" maxOccurs="1" ref="Hobs"/>
65 <xs:element minOccurs="0" maxOccurs="1" ref="PPIs"/>
66 <xs:element minOccurs="0" maxOccurs="1" ref="Variables"/>
67 <xs:element minOccurs="0" maxOccurs="1" ref="BootModes"/>
68 <xs:element minOccurs="0" maxOccurs="1" ref="SystemTables"/>
69 <xs:element minOccurs="0" maxOccurs="1" ref="DataHubs"/>
70 <xs:element minOccurs="0" maxOccurs="1" ref="HiiPackages"/>
71 <xs:element minOccurs="0" maxOccurs="1" ref="Guids"/>
72 <xs:element minOccurs="0" maxOccurs="1" ref="Externs"/>
73 <xs:element minOccurs="0" maxOccurs="1" ref="PcdCoded"/>
74 <xs:element minOccurs="0" maxOccurs="1" ref="ModuleBuildOptions"/>
75 <xs:element minOccurs="0" maxOccurs="unbounded" ref="UserExtensions"/>
76 </xs:sequence>
77 </xs:complexType>
78 </xs:element>
79 <xs:annotation>
80 <xs:documentation xml:lang="en">This describes the valid content for a Package Surface Area Description (SPD) file.</xs:documentation>
81 </xs:annotation>
82 <xs:element name="PackageSurfaceArea">
83 <xs:complexType>
84 <xs:sequence>
85 <xs:element minOccurs="1" maxOccurs="1" ref="SpdHeader"/>
86 <xs:element minOccurs="1" maxOccurs="1" ref="PackageDefinitions"/>
87 <xs:element minOccurs="0" maxOccurs="1" ref="LibraryClassDeclarations"/>
88 <xs:element minOccurs="0" maxOccurs="1" ref="IndustryStdIncludes"/>
89 <xs:element minOccurs="0" maxOccurs="1" ref="MsaFiles"/>
90 <xs:element minOccurs="0" maxOccurs="1" ref="PackageHeaders"/>
91 <xs:element minOccurs="0" maxOccurs="1" ref="GuidDeclarations"/>
92 <xs:element minOccurs="0" maxOccurs="1" ref="ProtocolDeclarations"/>
93 <xs:element minOccurs="0" maxOccurs="1" ref="PpiDeclarations"/>
94 <xs:element minOccurs="0" maxOccurs="1" ref="PcdDeclarations"/>
95 <xs:element minOccurs="0" maxOccurs="unbounded" ref="UserExtensions"/>
96 </xs:sequence>
97 </xs:complexType>
98 </xs:element>
99 <!-- This element is listed here, only because we are using elements from both the FrameworkDataElements and FrameworkPlatformDataElements files. -->
100 <xs:element name="PlatformDefinitions">
101 <xs:complexType>
102 <xs:sequence>
103 <!-- This is the list of ALL architectures that are supported by this Platform -->
104 <xs:element minOccurs="1" maxOccurs="1" name="SupportedArchitectures" type="ArchListType"/>
105 <xs:element minOccurs="1" maxOccurs="1" name="BuildTargets" type="BuildTargetList"/>
106 <xs:element default="UNIFIED" name="IntermediateDirectories" type="IntermediateOutputType"/>
107 <xs:element minOccurs="0" maxOccurs="1" name="OutputDirectory" type="xs:anyURI"/>
108 <!-- SkuInfo is only defined if Sku enabled -->
109 <xs:element minOccurs="0" maxOccurs="1" ref="SkuInfo"/>
110 <xs:element minOccurs="0" maxOccurs="1" ref="FlashDeviceDefinitions"/>
111 <xs:element minOccurs="0" maxOccurs="1" ref="FfsFormatDeclarations"/>
112 <xs:element minOccurs="0" maxOccurs="1" name="ClonedFrom">
113 <xs:complexType>
114 <xs:sequence>
115 <xs:element minOccurs="1" maxOccurs="unbounded" name="Cloned">
116 <xs:complexType>
117 <xs:sequence>
118 <xs:element minOccurs="1" maxOccurs="1" name="PlatformGuid" type="GuidType"/>
119 <xs:element minOccurs="1" maxOccurs="1" name="PlatformVersion" type="VersionDataType"/>
120 </xs:sequence>
121 <!-- The Id is a number used to track heritage the first entry will be 0 and increment from then on. -->
122 <xs:attribute name="Id" type="xs:nonNegativeInteger" use="optional"/>
123 <!-- If the original module was installed from a FAR, track the FAR it came from. -->
124 <xs:attribute name="FarGuid" type="GuidType" use="optional"/>
125 </xs:complexType>
126 </xs:element>
127 </xs:sequence>
128 </xs:complexType>
129 </xs:element>
130 </xs:sequence>
131 </xs:complexType>
132 </xs:element>
133 </xs:schema>