summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjwang36 <jwang36@6f19259b-4bc3-4df7-8a09-765794883524>2006-06-27 14:24:33 +0000
committerjwang36 <jwang36@6f19259b-4bc3-4df7-8a09-765794883524>2006-06-27 14:24:33 +0000
commitb1d9f2a3cb7835d73851ab7ff37d920e3c702c35 (patch)
treeae39485ddf145feb9a1e70b8560d3c6956623c6c
parent567df6937d9b6da2067aaff4c04339f786e4e761 (diff)
downloadedk2-platforms-b1d9f2a3cb7835d73851ab7ff37d920e3c702c35.tar.xz
merged part of new changes in new schema, and changed genbuild code accordingly
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@643 6f19259b-4bc3-4df7-8a09-765794883524
-rw-r--r--Tools/Source/GenBuild/org/tianocore/build/autogen/AutoGen.java65
-rw-r--r--Tools/Source/GenBuild/org/tianocore/build/autogen/AutogenLibOrder.java22
-rw-r--r--Tools/XMLSchema/FrameworkDataElements.xsd155
3 files changed, 134 insertions, 108 deletions
diff --git a/Tools/Source/GenBuild/org/tianocore/build/autogen/AutoGen.java b/Tools/Source/GenBuild/org/tianocore/build/autogen/AutoGen.java
index 53f5fa908f..482698cbad 100644
--- a/Tools/Source/GenBuild/org/tianocore/build/autogen/AutoGen.java
+++ b/Tools/Source/GenBuild/org/tianocore/build/autogen/AutoGen.java
@@ -591,8 +591,7 @@ public class AutoGen {
// library class name.
//
for (int i = 0; i < libClassList.length; i++) {
- includerName = GlobalData.getLibClassIncluder(libClassList[i]
- .getStringValue());
+ includerName = GlobalData.getLibClassIncluder(getStringValue((XmlObject)libClassList[i]));
if (includerName != null) {
str = CommonDefinition.include + " " + "<";
str = str + includerName + ">\r\n";
@@ -1095,14 +1094,14 @@ public class AutoGen {
if (ppiList != null) {
for (int i = 0; i < ppiList.length; i++) {
isEqual = false;
+ String ppiName = getStringValue((XmlObject)ppiList[i]);
for (int j = 0; j < this.mPpiList.size(); j++) {
- if (this.mPpiList.get(j).equalsIgnoreCase(
- ppiList[i].getStringValue())) {
+ if (this.mPpiList.get(j).equalsIgnoreCase(ppiName)) {
isEqual = true;
}
}
if (!isEqual) {
- this.mPpiList.add(ppiList[i].getStringValue());
+ this.mPpiList.add(ppiName);
}
}
}
@@ -1112,14 +1111,14 @@ public class AutoGen {
if (ppiNotifyList != null) {
for (int i = 0; i < ppiNotifyList.length; i++) {
isEqual = false;
+ String ppiNotifyName = getStringValue((XmlObject)ppiNotifyList[i]);
for (int j = 0; j < this.mPpiList.size(); j++) {
- if (this.mPpiList.get(j).equalsIgnoreCase(
- ppiNotifyList[i].getStringValue())) {
+ if (this.mPpiList.get(j).equalsIgnoreCase(ppiNotifyName)) {
isEqual = true;
}
}
if (!isEqual) {
- this.mPpiList.add(ppiNotifyList[i].getStringValue());
+ this.mPpiList.add(ppiNotifyName);
}
}
}
@@ -1159,14 +1158,14 @@ public class AutoGen {
if (protocolList != null) {
for (int i = 0; i < protocolList.length; i++) {
isEqual = false;
+ String protocolName = getStringValue((XmlObject)protocolList[i]);
for (int j = 0; j < this.mProtocolList.size(); j++) {
- if (this.mProtocolList.get(j).equalsIgnoreCase(
- protocolList[i].getStringValue())) {
+ if (this.mProtocolList.get(j).equalsIgnoreCase(protocolName)) {
isEqual = true;
}
}
if (!isEqual) {
- this.mProtocolList.add(protocolList[i].getStringValue());
+ this.mProtocolList.add(protocolName);
}
}
@@ -1177,15 +1176,14 @@ public class AutoGen {
if (protocolNotifyList != null) {
for (int i = 0; i < protocolNotifyList.length; i++) {
isEqual = false;
+ String protocolNotifyName = getStringValue((XmlObject)protocolNotifyList[i]);
for (int j = 0; j < this.mProtocolList.size(); j++) {
- if (this.mProtocolList.get(j).equalsIgnoreCase(
- protocolNotifyList[i].getStringValue())) {
+ if (this.mProtocolList.get(j).equalsIgnoreCase(protocolNotifyName)) {
isEqual = true;
}
}
if (!isEqual) {
- this.mProtocolList.add(protocolNotifyList[i]
- .getStringValue());
+ this.mProtocolList.add(protocolNotifyName);
}
}
@@ -1330,66 +1328,56 @@ public class AutoGen {
if (ppiList != null) {
for (index = 0; index < ppiList.length; index++) {
isEqual = false;
+ String name = getStringValue((XmlObject)ppiList[index]);
for (int j = 0; j < this.mPpiList.size(); j++) {
- if (this.mPpiList.get(j).equalsIgnoreCase(
- ppiList[index].getStringValue())) {
+ if (this.mPpiList.get(j).equalsIgnoreCase(name)) {
isEqual = true;
}
}
if (!isEqual) {
- this.mPpiList.add(ppiList[index]
- .getStringValue());
+ this.mPpiList.add(name);
}
}
}
if (ppiNotifyList != null) {
for (index = 0; index < ppiNotifyList.length; index++) {
isEqual = false;
+ String name = getStringValue((XmlObject)ppiNotifyList[index]);
for (int j = 0; j < this.mPpiList.size(); j++) {
- if (this.mPpiList.get(j).equalsIgnoreCase(
- ppiNotifyList[index]
- .getStringValue())) {
+ if (this.mPpiList.get(j).equalsIgnoreCase(name)) {
isEqual = true;
}
}
if (!isEqual) {
- this.mPpiList.add(ppiNotifyList[index]
- .getStringValue());
+ this.mPpiList.add(name);
}
}
}
if (protocolList != null) {
for (index = 0; index < protocolList.length; index++) {
isEqual = false;
+ String name = getStringValue((XmlObject)protocolList[index]);
for (int j = 0; j < this.mProtocolList.size(); j++) {
- if (this.mProtocolList.get(j)
- .equalsIgnoreCase(
- protocolList[index]
- .getStringValue())) {
+ if (this.mProtocolList.get(j).equalsIgnoreCase(name)) {
isEqual = true;
}
}
if (!isEqual) {
- this.mProtocolList.add(protocolList[index]
- .getStringValue());
+ this.mProtocolList.add(name);
}
}
}
if (protocolNotifyList != null) {
for (index = 0; index < protocolNotifyList.length; index++) {
isEqual = false;
+ String name = getStringValue((XmlObject)protocolNotifyList[index]);
for (int j = 0; j < this.mProtocolList.size(); j++) {
- if (this.mProtocolList.get(j)
- .equalsIgnoreCase(
- protocolNotifyList[index]
- .getStringValue())) {
+ if (this.mProtocolList.get(j).equalsIgnoreCase(name)) {
isEqual = true;
}
}
if (!isEqual) {
- this.mProtocolList
- .add(protocolNotifyList[index]
- .getStringValue());
+ this.mProtocolList.add(name);
}
}
}
@@ -2015,4 +2003,7 @@ public class AutoGen {
}
+ private String getStringValue(XmlObject xmlDoc) {
+ return xmlDoc.getDomNode().getFirstChild().getNodeValue();
+ }
}
diff --git a/Tools/Source/GenBuild/org/tianocore/build/autogen/AutogenLibOrder.java b/Tools/Source/GenBuild/org/tianocore/build/autogen/AutogenLibOrder.java
index 77404d4007..50668b096b 100644
--- a/Tools/Source/GenBuild/org/tianocore/build/autogen/AutogenLibOrder.java
+++ b/Tools/Source/GenBuild/org/tianocore/build/autogen/AutogenLibOrder.java
@@ -20,7 +20,6 @@ import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
-
import org.apache.xmlbeans.XmlObject;
import org.tianocore.LibraryClassDocument.LibraryClass;
@@ -81,7 +80,8 @@ public class AutogenLibOrder {
if (libClassConsmList != null) {
String[] classStr = new String[libClassConsmList.length];
for (int k = 0; k < libClassConsmList.length; k++) {
- classStr[k] = libClassConsmList[k].getStringValue();
+ //classStr[k] = libClassConsmList[k].getStringValue();
+ classStr[k] = getStringValue((XmlObject)libClassConsmList[k]);
}
if (this.libInstanceMap.containsKey(libInstance[0])) {
throw new Exception(
@@ -99,17 +99,17 @@ public class AutogenLibOrder {
.getLibraryClassArray(CommonDefinition.AlwaysProduced);
if (libClassDeclList != null) {
for (int j = 0; j < libClassDeclList.length; j++) {
- if (this.libClassMap.containsKey(libClassDeclList[j]
- .getStringValue())) {
- System.out.println(libClassDeclList[j].getStringValue()
+ //if (this.libClassMap.containsKey(libClassDeclList[j]
+ // .getStringValue())) {
+ String libClassName = getStringValue((XmlObject)libClassDeclList[j]);
+ if (this.libClassMap.containsKey(libClassName)) {
+ System.out.println(libClassName
+ " class is already implement by "
- + this.libClassMap.get(libClassDeclList[j]
- .getStringValue()));
+ + this.libClassMap.get(libClassName));
throw new Exception(libClassDeclList
+ " is already have library instance!");
} else {
- this.libClassMap.put(libClassDeclList[j]
- .getStringValue(), libInstance[0]);
+ this.libClassMap.put(libClassName, libInstance[0]);
}
}
}
@@ -286,6 +286,10 @@ public class AutogenLibOrder {
}
return false;
}
+
+ private String getStringValue(XmlObject xmlDoc) {
+ return xmlDoc.getDomNode().getFirstChild().getNodeValue();
+ }
}
/**
diff --git a/Tools/XMLSchema/FrameworkDataElements.xsd b/Tools/XMLSchema/FrameworkDataElements.xsd
index d07712a663..d43cd96bbd 100644
--- a/Tools/XMLSchema/FrameworkDataElements.xsd
+++ b/Tools/XMLSchema/FrameworkDataElements.xsd
@@ -76,6 +76,9 @@
<xs:sequence minOccurs="1" maxOccurs="unbounded">
<xs:element name="BootMode">
<xs:complexType>
+ <xs:sequence minOccurs="0">
+ <xs:element name="HelpText" type="Paragraph"/>
+ </xs:sequence>
<xs:attributeGroup ref="BootModeAttributes"/>
</xs:complexType>
</xs:element>
@@ -213,12 +216,12 @@
<xs:complexType>
<xs:sequence minOccurs="1" maxOccurs="unbounded">
<xs:element name="DataHubRecord">
- <xs:complexType>
- <xs:simpleContent>
- <xs:extension base="C_NameType">
- <xs:attributeGroup ref="DataHubAttributes"/>
- </xs:extension>
- </xs:simpleContent>
+ <xs:complexType mixed="true">
+ <xs:sequence>
+ <xs:element minOccurs="0" maxOccurs="1" name="DataHubCName" type="C_NameType"/>
+ <xs:element minOccurs="0" maxOccurs="1" name="HelpText" type="Paragraph"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="DataHubAttributes"/>
</xs:complexType>
</xs:element>
<!-- Remove Arch and use Arch Attribute for DataHubRecord instead. -->
@@ -282,7 +285,16 @@
<xs:element minOccurs="0" maxOccurs="1" name="CreateEvents">
<xs:complexType>
<xs:sequence minOccurs="1" maxOccurs="unbounded">
- <xs:element name="Event">
+ <xs:element minOccurs="0" maxOccurs="unbounded" name="EventTypes">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element minOccurs="1" maxOccurs="1" name="EventType" type="EventTypes"/>
+ <xs:element minOccurs="0" maxOccurs="1" name="HelpText" type="Paragraph"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="EventAttributes"/>
+ </xs:complexType>
+ </xs:element>
+ <xs:element minOccurs="0" name="Event">
<xs:complexType>
<xs:sequence>
<xs:choice>
@@ -328,7 +340,16 @@
</xs:annotation>
<xs:complexType>
<xs:sequence minOccurs="1" maxOccurs="unbounded">
- <xs:element name="Event">
+ <xs:element minOccurs="0" maxOccurs="unbounded" name="EventTypes">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element minOccurs="1" maxOccurs="1" name="EventType" type="EventTypes"/>
+ <xs:element minOccurs="0" maxOccurs="1" name="HelpText" type="Paragraph"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="EventAttributes"/>
+ </xs:complexType>
+ </xs:element>
+ <xs:element minOccurs="0" name="Event">
<xs:complexType>
<xs:sequence>
<xs:choice>
@@ -589,19 +610,19 @@
<xs:element name="Guids">
<xs:complexType>
<xs:sequence minOccurs="1" maxOccurs="unbounded">
- <xs:element minOccurs="0" maxOccurs="unbounded" name="GuidCName">
+ <xs:element minOccurs="0" maxOccurs="unbounded" name="GuidCNames">
<xs:annotation>
<xs:documentation xml:lang="en">Describe the valid content of a GUID element in and MSA file.</xs:documentation>
</xs:annotation>
<xs:complexType>
- <xs:simpleContent>
- <xs:extension base="C_NameType">
- <xs:attributeGroup ref="GuidAttributes"/>
- </xs:extension>
- </xs:simpleContent>
+ <xs:sequence>
+ <xs:element minOccurs="1" maxOccurs="1" name="GuidCName" type="C_NameType"/>
+ <xs:element minOccurs="0" maxOccurs="1" name="HelpText" type="Paragraph"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="GuidAttributes"/>
</xs:complexType>
- </xs:element>
- <xs:element name="GuidEntry">
+ </xs:element>
+ <xs:element minOccurs="0" name="GuidEntry">
<xs:annotation>
<xs:documentation xml:lang="en">Describe the valid content of a GUID element in and MSA file.</xs:documentation>
</xs:annotation>
@@ -659,12 +680,12 @@
<xs:complexType>
<xs:sequence minOccurs="1" maxOccurs="unbounded">
<xs:element name="HiiPackage">
- <xs:complexType>
- <xs:simpleContent>
- <xs:extension base="C_NameType">
- <xs:attributeGroup ref="HiiPackageAttributes"/>
- </xs:extension>
- </xs:simpleContent>
+ <xs:complexType mixed="true">
+ <xs:sequence>
+ <xs:element minOccurs="0" maxOccurs="1" name="HiiCName" type="C_NameType"/>
+ <xs:element minOccurs="0" maxOccurs="1" name="HelpText" type="Paragraph"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="HiiPackageAttributes"/>
</xs:complexType>
</xs:element>
</xs:sequence>
@@ -673,7 +694,16 @@
<xs:element name="Hobs">
<xs:complexType>
<xs:sequence minOccurs="1" maxOccurs="unbounded">
- <xs:element name="Hob">
+ <xs:element minOccurs="0" maxOccurs="unbounded" name="HobTypes">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element minOccurs="1" maxOccurs="1" name="HobType" type="HobTypes"/>
+ <xs:element minOccurs="0" maxOccurs="1" name="HelpText" type="Paragraph"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="HobAttributes"/>
+ </xs:complexType>
+ </xs:element>
+ <xs:element minOccurs="0" name="Hob">
<xs:complexType>
<xs:sequence>
<xs:choice>
@@ -806,12 +836,12 @@
<xs:annotation>
<xs:documentation xml:lang="en">Used in MSA files. This defines what class of library is being supported = produced (library module) or consumed by a module.</xs:documentation>
</xs:annotation>
- <xs:complexType>
- <xs:simpleContent>
- <xs:extension base="KeywordType">
- <xs:attributeGroup ref="LibraryClassAttributes"/>
- </xs:extension>
- </xs:simpleContent>
+ <xs:complexType mixed="true">
+ <xs:sequence>
+ <xs:element minOccurs="0" maxOccurs="1" name="Keyword" type="KeywordType"/>
+ <xs:element minOccurs="0" maxOccurs="1" name="HelpText" type="Paragraph"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="LibraryClassAttributes"/>
</xs:complexType>
</xs:element>
<!-- LAH This is LibraryClassDeclaration FINAL version -->
@@ -860,8 +890,8 @@
<xs:documentation xml:lang="en">This section defines what Classes of Library that this library supports. A Library may belong to multiple different library classes.</xs:documentation>
</xs:annotation>
<xs:complexType>
- <xs:sequence minOccurs="1" maxOccurs="unbounded">
- <xs:element ref="LibraryClass"/>
+ <xs:sequence>
+ <xs:element ref="LibraryClass" minOccurs="1" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
@@ -1417,21 +1447,21 @@
<xs:complexType>
<xs:sequence minOccurs="1">
<xs:element minOccurs="0" maxOccurs="unbounded" name="Ppi">
- <xs:complexType>
- <xs:simpleContent>
- <xs:extension base="C_NameType">
- <xs:attributeGroup ref="PpiAttributes"/>
- </xs:extension>
- </xs:simpleContent>
+ <xs:complexType mixed="true">
+ <xs:sequence>
+ <xs:element minOccurs="0" maxOccurs="1" name="PpiCName" type="C_NameType"/>
+ <xs:element minOccurs="0" maxOccurs="1" name="HelpText" type="Paragraph"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="PpiAttributes"/>
</xs:complexType>
</xs:element>
<xs:element minOccurs="0" maxOccurs="unbounded" name="PpiNotify">
- <xs:complexType>
- <xs:simpleContent>
- <xs:extension base="C_NameType">
- <xs:attributeGroup ref="PpiNotifyAttributes"/>
- </xs:extension>
- </xs:simpleContent>
+ <xs:complexType mixed="true">
+ <xs:sequence>
+ <xs:element minOccurs="0" maxOccurs="1" name="PpiNotifyCName" type="C_NameType"/>
+ <xs:element minOccurs="0" maxOccurs="1" name="HelpText" type="Paragraph"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="PpiNotifyAttributes"/>
</xs:complexType>
</xs:element>
<!-- DO NOT USE Arch element, use Arch Attribute in above instead. -->
@@ -1492,21 +1522,21 @@
<xs:complexType>
<xs:sequence minOccurs="1" maxOccurs="unbounded">
<xs:element minOccurs="0" maxOccurs="unbounded" name="Protocol">
- <xs:complexType>
- <xs:simpleContent>
- <xs:extension base="C_NameType">
- <xs:attributeGroup ref="ProtocolAttributes"/>
- </xs:extension>
- </xs:simpleContent>
+ <xs:complexType mixed="true">
+ <xs:sequence>
+ <xs:element minOccurs="0" maxOccurs="1" name="ProtocolCName" type="C_NameType"/>
+ <xs:element minOccurs="0" maxOccurs="1" name="HelpText" type="Paragraph"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="ProtocolAttributes"/>
</xs:complexType>
</xs:element>
<xs:element minOccurs="0" maxOccurs="unbounded" name="ProtocolNotify">
- <xs:complexType>
- <xs:simpleContent>
- <xs:extension base="C_NameType">
- <xs:attributeGroup ref="ProtocolNotifyAttributes"/>
- </xs:extension>
- </xs:simpleContent>
+ <xs:complexType mixed="true">
+ <xs:sequence>
+ <xs:element minOccurs="0" maxOccurs="1" name="ProtocolNotifyCName" type="C_NameType"/>
+ <xs:element minOccurs="0" maxOccurs="1" name="HelpText" type="Paragraph"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="ProtocolNotifyAttributes"/>
</xs:complexType>
</xs:element>
<!-- DO NOT USE! removing Arch element, use Arch attribute of Protocol or ProtocolNotify instead. -->
@@ -1643,15 +1673,15 @@
<xs:attributeGroup ref="SystemTableAttributes"/>
</xs:complexType>
</xs:element>
- <xs:element minOccurs="0" maxOccurs="unbounded" name="SystemTableCName">
+ <xs:element minOccurs="0" maxOccurs="unbounded" name="SystemTableCNames">
<xs:complexType>
- <xs:simpleContent>
- <xs:extension base="C_NameType">
- <xs:attributeGroup ref="SystemTableAttributes"/>
- </xs:extension>
- </xs:simpleContent>
+ <xs:sequence>
+ <xs:element minOccurs="1" maxOccurs="1" name="SystemTableCName" type="C_NameType"/>
+ <xs:element minOccurs="0" maxOccurs="1" name="HelpText" type="Paragraph"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="SystemTableAttributes"/>
</xs:complexType>
- </xs:element>
+ </xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
@@ -1705,6 +1735,7 @@
<!-- Make GuidC_Name required -->
<xs:element minOccurs="0" maxOccurs="1" name="GuidC_Name" type="C_NameType"/>
</xs:choice>
+ <xs:element minOccurs="0" maxOccurs="1" name="HelpText" type="Paragraph"/>
<!-- DO NOT USE, removiing ByteOffset, Bit Offset and OffsetBitSize-->
<xs:element minOccurs="0" maxOccurs="1" name="ByteOffset" type="HexWordDataType">
<xs:annotation>