def contextDiscover(self, cntxElement): id = cntxElement.getAttribute("id") self.modelXbrl.contexts[id] = modelContext = ModelObject.createContext( self, cntxElement) for container in (("segment", modelContext.segDimValues, modelContext.segNonDimValues), ("scenario", modelContext.scenDimValues, modelContext.scenNonDimValues)): containerName, containerDimValues, containerNonDimValues = container for containerElement in XmlUtil.descendants( cntxElement, XbrlConst.xbrli, containerName): for sElt in containerElement.childNodes: if sElt.nodeType == 1: if sElt.namespaceURI == XbrlConst.xbrldi and sElt.localName in ( "explicitMember", "typedMember"): XmlValidate.validate(self.modelXbrl, sElt) modelDimValue = ModelObject.createDimensionValue( self, sElt) dimension = modelDimValue.dimension if dimension and dimension not in containerDimValues: containerDimValues[dimension] = modelDimValue else: modelContext.errorDimValues.append( modelDimValue) modelContext.qnameDims[ modelDimValue. dimensionQname] = modelDimValue # both seg and scen else: containerNonDimValues.append(sElt)
def contextDiscover(self, cntxElement): id = cntxElement.getAttribute("id") self.modelXbrl.contexts[id] = modelContext = ModelObject.createContext(self,cntxElement) for container in (("segment", modelContext.segDimValues, modelContext.segNonDimValues), ("scenario", modelContext.scenDimValues, modelContext.scenNonDimValues)): containerName, containerDimValues, containerNonDimValues = container for containerElement in XmlUtil.descendants(cntxElement, XbrlConst.xbrli, containerName): for sElt in containerElement.childNodes: if sElt.nodeType == 1: if sElt.namespaceURI == XbrlConst.xbrldi and sElt.localName in ("explicitMember","typedMember"): XmlValidate.validate(self.modelXbrl, sElt) modelDimValue = ModelObject.createDimensionValue(self,sElt) dimension = modelDimValue.dimension if dimension and dimension not in containerDimValues: containerDimValues[dimension] = modelDimValue else: modelContext.errorDimValues.append(modelDimValue) modelContext.qnameDims[modelDimValue.dimensionQname] = modelDimValue # both seg and scen else: containerNonDimValues.append(sElt)