def ToXml(self, BinaryFile, Key): if self.FileNames: pass NodeList = [] FilenameList = BinaryFile.GetFileNameList() SupportArch = None for Filename in FilenameList: Tmp = FilenameXml() NodeList.append(Tmp.ToXml(Filename, 'Filename')) SupportArch = Filename.SupArchList AsBuildList = BinaryFile.GetAsBuiltList() PatchPcdValueList = AsBuildList.GetPatchPcdList() PcdExList = AsBuildList.GetPcdExList() LibGuidVerList = AsBuildList.GetLibraryInstancesList() BuildFlagList = AsBuildList.GetBuildFlagsList() AsBuiltNodeList = [] for Pcd in PatchPcdValueList: if IsMatchArch(Pcd.SupArchList, SupportArch): Tmp = PcdEntryXml() AsBuiltNodeList.append(Tmp.ToXml4(Pcd, 'PatchPcdValue')) for Pcd in PcdExList: if IsMatchArch(Pcd.SupArchList, SupportArch): Tmp = PcdEntryXml() AsBuiltNodeList.append(Tmp.ToXml4(Pcd, 'PcdExValue')) GuiVerElemList = [] for LibGuidVer in LibGuidVerList: if LibGuidVer.GetLibGuid() and IsMatchArch( LibGuidVer.GetSupArchList(), SupportArch): GuiVerElem = \ CreateXmlElement('GUID', LibGuidVer.GetLibGuid(), [], [['Version', LibGuidVer.GetLibVersion()]]) GuiVerElemList.append(GuiVerElem) if len(GuiVerElemList) > 0: LibGuidVerElem = CreateXmlElement('LibraryInstances', '', GuiVerElemList, []) AsBuiltNodeList.append(LibGuidVerElem) for BuildFlag in BuildFlagList: if IsMatchArch(BuildFlag.GetSupArchList(), SupportArch): for Item in BuildFlag.GetAsBuildList(): Tmp = BuildFlagXml() Elem = CreateXmlElement('BuildFlags', ''.join(Item), [], []) AsBuiltNodeList.append(Elem) if len(AsBuiltNodeList) > 0: Element = CreateXmlElement('AsBuilt', '', AsBuiltNodeList, []) NodeList.append(Element) Root = CreateXmlElement('%s' % Key, '', NodeList, []) return Root
def FromXml(self, Item, Key): if self.FileNames: pass BinaryFile = BinaryFileObject() FilenameList = [] SupArchList = ['COMMON'] for SubItem in XmlList(Item, '%s/Filename' % Key): Axml = FilenameXml() Bxml = Axml.FromXml(SubItem, 'Filename') FilenameList.append(Bxml) BinaryFile.SetFileNameList(FilenameList) for FileName in FilenameList: if FileName.GetSupArchList(): SupArchList = FileName.GetSupArchList() BinaryFile.SetSupArchList(SupArchList) if GlobalData.gIS_BINARY_INF: AsBuiltList = [] for AsBuiltItem in XmlList(Item, '%s/AsBuilt' % Key): AsBuilt = AsBuiltObject() PatchPcdValueList = [] for SubItem in XmlList(AsBuiltItem, 'AsBuilt/PatchPcdValue'): Axml = PcdEntryXml() Bxml = Axml.FromXml(SubItem, 'PatchPcdValue') PatchPcdValueList.append(Bxml) AsBuilt.SetPatchPcdList(PatchPcdValueList) PcdExValueList = [] for SubItem in XmlList(AsBuiltItem, 'AsBuilt/PcdExValue'): Axml = PcdEntryXml() Bxml = Axml.FromXml(SubItem, 'PcdExValue') PcdExValueList.append(Bxml) AsBuilt.SetPcdExList(PcdExValueList) LibraryList = [] for SubItem in XmlList( Item, '%s/AsBuilt/LibraryInstances/GUID' % Key): GuidVerObj = GuidVersionObject() GUID = XmlElement(SubItem, 'GUID') Version = XmlAttribute(XmlNode(SubItem, 'GUID'), 'Version') GuidVerObj.SetGuid(GUID) GuidVerObj.SetVersion(Version) LibraryList.append(GuidVerObj) if XmlList(Item, '%s/AsBuilt/LibraryInstances' % Key) and not LibraryList: LibraryList = [None] AsBuilt.SetLibraryInstancesList(LibraryList) BuildFlagList = [] for SubItem in XmlList(Item, '%s/AsBuilt/BuildFlags' % Key): BuildFlag = BuildFlagXml() BuildFlagList.append( BuildFlag.FromXml2(SubItem, 'BuildFlags')) AsBuilt.SetBuildFlagsList(BuildFlagList) AsBuiltList.append(AsBuilt) BinaryFile.SetAsBuiltList(AsBuiltList) return BinaryFile
def ToXml(self, BinaryFile, Key): if self.FileNames: pass NodeList = [] FilenameList = BinaryFile.GetFileNameList() for Filename in FilenameList: Tmp = FilenameXml() NodeList.append(Tmp.ToXml(Filename, 'Filename')) if GlobalData.gIS_BINARY_INF: AsBuildList = BinaryFile.GetAsBuiltList() PatchPcdValueList = AsBuildList.GetPatchPcdList() PcdExList = AsBuildList.GetPcdExList() LibGuidVerList = AsBuildList.GetLibraryInstancesList() BuildFlagList = AsBuildList.GetBuildFlagsList() AsBuiltNodeList = [] for Pcd in PatchPcdValueList: Tmp = PcdEntryXml() AsBuiltNodeList.append(Tmp.ToXml4(Pcd, 'PatchPcdValue')) for Pcd in PcdExList: Tmp = PcdEntryXml() AsBuiltNodeList.append(Tmp.ToXml4(Pcd, 'PcdExValue')) GuiVerElemList = [] for LibGuidVer in LibGuidVerList: GuiVerElem = \ CreateXmlElement('GUID', LibGuidVer.GetLibGuid(), [], [['Version', LibGuidVer.GetLibVersion()]]) GuiVerElemList.append(GuiVerElem) if len(GuiVerElemList) > 0: LibGuidVerElem = CreateXmlElement('LibraryInstances', '', GuiVerElemList, []) AsBuiltNodeList.append(LibGuidVerElem) for BuildFlag in BuildFlagList: Tmp = BuildFlagXml() Elem = CreateXmlElement('BuildFlags', ''.join(BuildFlag), [], []) AsBuiltNodeList.append(Elem) if len(AsBuiltNodeList) > 0: Element = CreateXmlElement('AsBuilt', '', AsBuiltNodeList, []) NodeList.append(Element) Root = CreateXmlElement('%s' % Key, '', NodeList, []) return Root
def ToXml(self, Package): if self.Package: pass # # Create PackageSurfaceArea node # DomPackage = minidom.Document().createElement('PackageSurfaceArea') # # Header # Tmp = PackageHeaderXml() DomPackage.appendChild(Tmp.ToXml(Package, 'Header')) # # ClonedFrom # Tmp = ClonedFromXml() if Package.GetClonedFromList() != []: DomPackage.appendChild( Tmp.ToXml(Package.GetClonedFromList[0], 'ClonedFrom')) # # LibraryClass # LibraryClassNode = CreateXmlElement('LibraryClassDeclarations', '', [], []) for LibraryClass in Package.GetLibraryClassList(): Tmp = LibraryClassXml() LibraryClassNode.appendChild( Tmp.ToXml(LibraryClass, 'LibraryClass')) DomPackage.appendChild(LibraryClassNode) # # IndustryStandardHeader # IndustryStandardHeaderNode = CreateXmlElement( 'IndustryStandardIncludes', '', [], []) for Include in Package.GetStandardIncludeFileList(): Tmp = IndustryStandardHeaderXml() IndustryStandardHeaderNode.appendChild( Tmp.ToXml(Include, 'IndustryStandardHeader')) DomPackage.appendChild(IndustryStandardHeaderNode) # # PackageHeader # PackageIncludeHeaderNode = CreateXmlElement('PackageIncludes', '', [], []) for Include in Package.GetPackageIncludeFileList(): Tmp = PackageIncludeHeaderXml() PackageIncludeHeaderNode.appendChild( Tmp.ToXml(Include, 'PackageHeader')) DomPackage.appendChild(PackageIncludeHeaderNode) ModuleNode = CreateXmlElement('Modules', '', [], []) for Module in Package.GetModuleDict().values(): Tmp = ModuleSurfaceAreaXml() ModuleNode.appendChild(Tmp.ToXml(Module)) DomPackage.appendChild(ModuleNode) # # Guid # GuidProtocolPpiNode = CreateXmlElement('GuidDeclarations', '', [], []) for GuidProtocolPpi in Package.GetGuidList(): Tmp = GuidXml('Package') GuidProtocolPpiNode.appendChild(Tmp.ToXml\ (GuidProtocolPpi, 'Entry')) DomPackage.appendChild(GuidProtocolPpiNode) # # Protocol # GuidProtocolPpiNode = \ CreateXmlElement('ProtocolDeclarations', '', [], []) for GuidProtocolPpi in Package.GetProtocolList(): Tmp = ProtocolXml('Package') GuidProtocolPpiNode.appendChild\ (Tmp.ToXml(GuidProtocolPpi, 'Entry')) DomPackage.appendChild(GuidProtocolPpiNode) # # Ppi # GuidProtocolPpiNode = CreateXmlElement('PpiDeclarations', '', [], []) for GuidProtocolPpi in Package.GetPpiList(): Tmp = PpiXml('Package') GuidProtocolPpiNode.appendChild\ (Tmp.ToXml(GuidProtocolPpi, 'Entry')) DomPackage.appendChild(GuidProtocolPpiNode) # # PcdEntry # PcdEntryNode = CreateXmlElement('PcdDeclarations', '', [], []) for PcdEntry in Package.GetPcdList(): Tmp = PcdEntryXml() PcdEntryNode.appendChild(Tmp.ToXml2(PcdEntry, 'PcdEntry')) DomPackage.appendChild(PcdEntryNode) # # MiscellaneousFile # Tmp = MiscellaneousFileXml() if Package.GetMiscFileList(): DomPackage.appendChild( Tmp.ToXml(Package.GetMiscFileList()[0], 'MiscellaneousFiles')) # # UserExtensions # if Package.GetUserExtensionList(): for UserExtension in Package.GetUserExtensionList(): Tmp = UserExtensionsXml() DomPackage.appendChild( Tmp.ToXml(UserExtension, 'UserExtensions')) return DomPackage
def FromXml(self, Item, Key): if Key: pass # # Create a package object # Package = PackageObject() # # Header # Tmp = PackageHeaderXml() Tmp.FromXml(XmlNode(Item, '/PackageSurfaceArea/Header'), 'Header', Package) # # ClonedFrom # Tmp = ClonedFromXml() if XmlNode(Item, '/PackageSurfaceArea/ClonedFrom'): ClonedFrom = Tmp.FromXml( XmlNode(Item, '/PackageSurfaceArea/ClonedFrom'), 'ClonedFrom') Package.SetClonedFromList([ClonedFrom]) # # LibraryClass # for SubItem in XmlList( Item, '/PackageSurfaceArea/LibraryClassDeclarations/LibraryClass'): Tmp = LibraryClassXml() LibraryClass = Tmp.FromXml(SubItem, 'LibraryClass') Package.SetLibraryClassList(Package.GetLibraryClassList() + [LibraryClass]) if XmlList(Item, '/PackageSurfaceArea/LibraryClassDeclarations') and \ not XmlList(Item, '/PackageSurfaceArea/LibraryClassDeclarations/LibraryClass'): Package.SetLibraryClassList([None]) # # IndustryStandardHeader # for SubItem in XmlList( Item, '/PackageSurfaceArea/IndustryStandardIncludes/IndustryStandardHeader' ): Tmp = IndustryStandardHeaderXml() Include = Tmp.FromXml(SubItem, 'IndustryStandardHeader') Package.SetStandardIncludeFileList( Package.GetStandardIncludeFileList() + [Include]) if XmlList(Item, '/PackageSurfaceArea/IndustryStandardIncludes') and \ not XmlList(Item, '/PackageSurfaceArea/IndustryStandardIncludes/IndustryStandardHeader'): Package.SetStandardIncludeFileList([None]) # # PackageHeader # for SubItem in XmlList( Item, '/PackageSurfaceArea/PackageIncludes/PackageHeader'): Tmp = PackageIncludeHeaderXml() Include = Tmp.FromXml(SubItem, 'PackageHeader') Package.SetPackageIncludeFileList( Package.GetPackageIncludeFileList() + [Include]) if XmlList(Item, '/PackageSurfaceArea/PackageIncludes') and not \ XmlList(Item, '/PackageSurfaceArea/PackageIncludes/PackageHeader'): Package.SetPackageIncludeFileList([None]) # # Guid # for SubItem in XmlList(Item, '/PackageSurfaceArea/GuidDeclarations/Entry'): Tmp = GuidXml('Package') GuidProtocolPpi = Tmp.FromXml(SubItem, 'Entry') Package.SetGuidList(Package.GetGuidList() + [GuidProtocolPpi]) if XmlList(Item, '/PackageSurfaceArea/GuidDeclarations') and not \ XmlList(Item, '/PackageSurfaceArea/GuidDeclarations/Entry'): Package.SetGuidList([None]) # # Protocol # for SubItem in XmlList( Item, '/PackageSurfaceArea/ProtocolDeclarations/Entry'): Tmp = ProtocolXml('Package') GuidProtocolPpi = Tmp.FromXml(SubItem, 'Entry') Package.SetProtocolList(Package.GetProtocolList() + [GuidProtocolPpi]) if XmlList(Item, '/PackageSurfaceArea/ProtocolDeclarations') and not \ XmlList(Item, '/PackageSurfaceArea/ProtocolDeclarations/Entry'): Package.SetProtocolList([None]) # # Ppi # for SubItem in XmlList(Item, '/PackageSurfaceArea/PpiDeclarations/Entry'): Tmp = PpiXml('Package') GuidProtocolPpi = Tmp.FromXml(SubItem, 'Entry') Package.SetPpiList(Package.GetPpiList() + [GuidProtocolPpi]) if XmlList(Item, '/PackageSurfaceArea/PpiDeclarations') and not \ XmlList(Item, '/PackageSurfaceArea/PpiDeclarations/Entry'): Package.SetPpiList([None]) # # PcdEntry # for SubItem in XmlList(Item, '/PackageSurfaceArea/PcdDeclarations/PcdEntry'): Tmp = PcdEntryXml() PcdEntry = Tmp.FromXml2(SubItem, 'PcdEntry') Package.SetPcdList(Package.GetPcdList() + [PcdEntry]) if XmlList(Item, '/PackageSurfaceArea/PcdDeclarations') and not \ XmlList(Item, '/PackageSurfaceArea/PcdDeclarations/PcdEntry'): Package.SetPcdList([None]) # # PcdCheck # for SubItem in XmlList( Item, '/PackageSurfaceArea/PcdRelationshipChecks/PcdCheck'): Tmp = PcdCheckXml() PcdCheck = Tmp.FromXml(SubItem, 'PcdCheck') Package.PcdChecks.append(PcdCheck) # # Modules # for SubItem in XmlList( Item, '/PackageSurfaceArea/Modules/ModuleSurfaceArea'): Tmp = ModuleSurfaceAreaXml() Module = Tmp.FromXml(SubItem, 'ModuleSurfaceArea') ModuleDictKey = (Module.GetGuid(), Module.GetVersion(), Module.GetName(), Module.GetModulePath()) Package.ModuleDict[ModuleDictKey] = Module # # MiscellaneousFile # Tmp = MiscellaneousFileXml() MiscFileList = Tmp.FromXml( XmlNode(Item, '/PackageSurfaceArea/MiscellaneousFiles'), 'MiscellaneousFiles') if MiscFileList: Package.SetMiscFileList([MiscFileList]) else: Package.SetMiscFileList([]) # # UserExtensions # for Item in XmlList(Item, '/PackageSurfaceArea/UserExtensions'): Tmp = UserExtensionsXml() UserExtension = Tmp.FromXml(Item, 'UserExtensions') Package.UserExtensionList.append(UserExtension) self.Package = Package return self.Package
def ToXml(self, Module): if self.Package: pass # # Create root node of module surface area # DomModule = minidom.Document().createElement('ModuleSurfaceArea') if Module.GetBinaryModule(): DomModule.setAttribute('BinaryModule', 'true') # # Header # Tmp = HeaderXml() DomModule.appendChild(Tmp.ToXml(Module, 'Header')) # # ModuleProperties # Tmp = ModulePropertyXml() DomModule.appendChild(Tmp.ToXml(Module, Module.GetBootModeList(), Module.GetEventList(), Module.GetHobList(), \ 'ModuleProperties')) # # ClonedFrom # Tmp = ClonedFromXml() if Module.GetClonedFrom(): DomModule.appendChild( Tmp.ToXml(Module.GetClonedFrom(), 'ClonedFrom')) # # LibraryClass # LibraryClassNode = CreateXmlElement('LibraryClassDefinitions', '', [], []) for LibraryClass in Module.GetLibraryClassList(): Tmp = LibraryClassXml() LibraryClassNode.appendChild( Tmp.ToXml2(LibraryClass, 'LibraryClass')) DomModule.appendChild(LibraryClassNode) # # SourceFile # SourceFileNode = CreateXmlElement('SourceFiles', '', [], []) for SourceFile in Module.GetSourceFileList(): Tmp = SourceFileXml() SourceFileNode.appendChild(Tmp.ToXml(SourceFile, 'Filename')) DomModule.appendChild(SourceFileNode) # # BinaryFile # BinaryFileNode = CreateXmlElement('BinaryFiles', '', [], []) for BinaryFile in Module.GetBinaryFileList(): Tmp = BinaryFileXml() BinaryFileNode.appendChild(Tmp.ToXml(BinaryFile, 'BinaryFile')) DomModule.appendChild(BinaryFileNode) # # PackageDependencies # PackageDependencyNode = CreateXmlElement('PackageDependencies', '', [], []) for PackageDependency in Module.GetPackageDependencyList(): Tmp = PackageXml() PackageDependencyNode.appendChild( Tmp.ToXml(PackageDependency, 'Package')) DomModule.appendChild(PackageDependencyNode) # # Guid # GuidProtocolPpiNode = CreateXmlElement('Guids', '', [], []) for GuidProtocolPpi in Module.GetGuidList(): Tmp = GuidXml('Module') GuidProtocolPpiNode.appendChild( Tmp.ToXml(GuidProtocolPpi, 'GuidCName')) DomModule.appendChild(GuidProtocolPpiNode) # # Protocol # GuidProtocolPpiNode = CreateXmlElement('Protocols', '', [], []) for GuidProtocolPpi in Module.GetProtocolList(): Tmp = ProtocolXml('Module') GuidProtocolPpiNode.appendChild( Tmp.ToXml(GuidProtocolPpi, 'Protocol')) DomModule.appendChild(GuidProtocolPpiNode) # # Ppi # GuidProtocolPpiNode = CreateXmlElement('PPIs', '', [], []) for GuidProtocolPpi in Module.GetPpiList(): Tmp = PpiXml('Module') GuidProtocolPpiNode.appendChild(Tmp.ToXml(GuidProtocolPpi, 'Ppi')) DomModule.appendChild(GuidProtocolPpiNode) # # Extern # ExternNode = CreateXmlElement('Externs', '', [], []) for Extern in Module.GetExternList(): Tmp = ExternXml() ExternNode.appendChild(Tmp.ToXml(Extern, 'Extern')) DomModule.appendChild(ExternNode) # # PcdCoded # PcdEntryNode = CreateXmlElement('PcdCoded', '', [], []) for PcdEntry in Module.GetPcdList(): Tmp = PcdEntryXml() PcdEntryNode.appendChild(Tmp.ToXml3(PcdEntry, 'PcdEntry')) DomModule.appendChild(PcdEntryNode) # # PeiDepex # if Module.GetPeiDepex(): for Item in Module.GetPeiDepex(): Tmp = DepexXml() DomModule.appendChild(Tmp.ToXml(Item, 'PeiDepex')) # # DxeDepex # if Module.GetDxeDepex(): for Item in Module.GetDxeDepex(): Tmp = DepexXml() DomModule.appendChild(Tmp.ToXml(Item, 'DxeDepex')) # # SmmDepex # if Module.GetSmmDepex(): for Item in Module.GetSmmDepex(): Tmp = DepexXml() DomModule.appendChild(Tmp.ToXml(Item, 'SmmDepex')) # # MiscellaneousFile # if Module.GetMiscFileList(): Tmp = MiscellaneousFileXml() DomModule.appendChild( Tmp.ToXml(Module.GetMiscFileList()[0], 'MiscellaneousFiles')) # # UserExtensions # if Module.GetUserExtensionList(): for UserExtension in Module.GetUserExtensionList(): Tmp = UserExtensionsXml() DomModule.appendChild( Tmp.ToXml(UserExtension, 'UserExtensions')) return DomModule
def FromXml(self, Item, Key, IsStandAlongModule=False): IsBinaryModule = XmlAttribute(Item, 'BinaryModule') # # Header # Tmp = HeaderXml() Module = Tmp.FromXml(XmlNode(Item, '/%s/Header' % Key), 'Header', True, IsStandAlongModule) Module.SetBinaryModule(IsBinaryModule) if IsBinaryModule: GlobalData.gIS_BINARY_INF = True # # ModuleProperties # Tmp = ModulePropertyXml() (Module, BootModes, Events, HOBs) = \ Tmp.FromXml(XmlNode(Item, '/ModuleSurfaceArea/ModuleProperties'), 'ModuleProperties', Module) Module.SetBootModeList(BootModes) Module.SetEventList(Events) Module.SetHobList(HOBs) # # ClonedFrom # Tmp = ClonedFromXml() ClonedFrom = Tmp.FromXml( XmlNode(Item, '/ModuleSurfaceArea/ClonedFrom'), 'ClonedFrom') if ClonedFrom: Module.SetClonedFrom(ClonedFrom) # # LibraryClass # for SubItem in XmlList( Item, '/ModuleSurfaceArea/LibraryClassDefinitions/LibraryClass'): Tmp = LibraryClassXml() LibraryClass = Tmp.FromXml(SubItem, 'LibraryClass') Module.SetLibraryClassList(Module.GetLibraryClassList() + [LibraryClass]) if XmlList(Item, '/ModuleSurfaceArea/LibraryClassDefinitions') and \ not XmlList(Item, '/ModuleSurfaceArea/LibraryClassDefinitions/LibraryClass'): Module.SetLibraryClassList([None]) # # SourceFiles # for SubItem in XmlList(Item, '/ModuleSurfaceArea/SourceFiles/Filename'): Tmp = SourceFileXml() SourceFile = Tmp.FromXml(SubItem, 'Filename') Module.SetSourceFileList(Module.GetSourceFileList() + [SourceFile]) if XmlList(Item, '/ModuleSurfaceArea/SourceFiles') and \ not XmlList(Item, '/ModuleSurfaceArea/SourceFiles/Filename') : Module.SetSourceFileList([None]) # # BinaryFile # for SubItem in XmlList(Item, '/ModuleSurfaceArea/BinaryFiles/BinaryFile'): Tmp = BinaryFileXml() BinaryFile = Tmp.FromXml(SubItem, 'BinaryFile') Module.SetBinaryFileList(Module.GetBinaryFileList() + [BinaryFile]) if XmlList(Item, '/ModuleSurfaceArea/BinaryFiles') and \ not XmlList(Item, '/ModuleSurfaceArea/BinaryFiles/BinaryFile') : Module.SetBinaryFileList([None]) # # PackageDependencies # for SubItem in XmlList( Item, '/ModuleSurfaceArea/PackageDependencies/Package'): Tmp = PackageXml() PackageDependency = Tmp.FromXml(SubItem, 'Package') Module.SetPackageDependencyList(Module.GetPackageDependencyList() + [PackageDependency]) if XmlList(Item, '/ModuleSurfaceArea/PackageDependencies') and \ not XmlList(Item, '/ModuleSurfaceArea/PackageDependencies/Package'): Module.SetPackageDependencyList([None]) # # Guid # for SubItem in XmlList(Item, '/ModuleSurfaceArea/Guids/GuidCName'): Tmp = GuidXml('Module') GuidProtocolPpi = Tmp.FromXml(SubItem, 'GuidCName') Module.SetGuidList(Module.GetGuidList() + [GuidProtocolPpi]) if XmlList(Item, '/ModuleSurfaceArea/Guids') and not XmlList( Item, '/ModuleSurfaceArea/Guids/GuidCName'): Module.SetGuidList([None]) # # Protocol # for SubItem in XmlList(Item, '/ModuleSurfaceArea/Protocols/Protocol'): Tmp = ProtocolXml('Module') GuidProtocolPpi = Tmp.FromXml(SubItem, 'Protocol') Module.SetProtocolList(Module.GetProtocolList() + [GuidProtocolPpi]) if XmlList(Item, '/ModuleSurfaceArea/Protocols') and not XmlList( Item, '/ModuleSurfaceArea/Protocols/Protocol'): Module.SetProtocolList([None]) # # Ppi # for SubItem in XmlList(Item, '/ModuleSurfaceArea/PPIs/Ppi'): Tmp = PpiXml('Module') GuidProtocolPpi = Tmp.FromXml(SubItem, 'Ppi') Module.SetPpiList(Module.GetPpiList() + [GuidProtocolPpi]) if XmlList(Item, '/ModuleSurfaceArea/PPIs') and not XmlList( Item, '/ModuleSurfaceArea/PPIs/Ppi'): Module.SetPpiList([None]) # # Extern # for SubItem in XmlList(Item, '/ModuleSurfaceArea/Externs/Extern'): Tmp = ExternXml() Extern = Tmp.FromXml(SubItem, 'Extern') Module.SetExternList(Module.GetExternList() + [Extern]) if XmlList(Item, '/ModuleSurfaceArea/Externs') and not XmlList( Item, '/ModuleSurfaceArea/Externs/Extern'): Module.SetExternList([None]) if not Module.GetBinaryModule(): # # PcdCoded # for SubItem in XmlList(Item, '/ModuleSurfaceArea/PcdCoded/PcdEntry'): Tmp = PcdEntryXml() PcdEntry = Tmp.FromXml3(SubItem, 'PcdEntry') Module.SetPcdList(Module.GetPcdList() + [PcdEntry]) if XmlList(Item, '/ModuleSurfaceArea/PcdCoded') and \ not XmlList(Item, '/ModuleSurfaceArea/PcdCoded/PcdEntry'): Module.SetPcdList([None]) Module = self.FromXml2(Item, Module) # # return the module object # self.Module = Module return self.Module