Example #1
0
    def inlineXbrlDiscover(self, htmlElement):
        self.schemaLinkbaseRefsDiscover(htmlElement)
        for inlineElement in htmlElement.getElementsByTagNameNS(XbrlConst.ixbrl, "resources"):
            self.instanceContentsDiscover(inlineElement)
            
        tuplesByElement = {}
        tuplesByTupleID = {}
        for inlineElement in htmlElement.getElementsByTagNameNS(XbrlConst.ixbrl, "tuple"):
            modelInlineFact = ModelObject.createInlineFact(self, inlineElement)
            modelInlineFact.unorderedTupleFacts = []
            if modelInlineFact.tupleID:
                tuplesByTupleID[modelInlineFact.tupleID] = modelInlineFact
            tuplesByElement[inlineElement] = modelInlineFact
        # hook up tuples to their container
        for tupleFact in tuplesByElement.values():
            self.inlineXbrlLocateFactInTuple(tupleFact, tuplesByTupleID, tuplesByElement)

        for ln in ("nonNumeric", "nonFraction", "fraction"):
            for inlineElement in htmlElement.getElementsByTagNameNS(XbrlConst.ixbrl, ln):
                modelInlineFact = ModelObject.createInlineFact(self, inlineElement)
                self.inlineXbrlLocateFactInTuple(modelInlineFact, tuplesByTupleID, tuplesByElement)
        # order tuple facts
        for tupleFact in tuplesByElement.values():
            tupleFact.modelTupleFacts = [
                 self.modelXbrl.modelObject(objectIndex) 
                 for order,objectIndex in sorted(tupleFact.unorderedTupleFacts)]
Example #2
0
    def inlineXbrlDiscover(self, htmlElement):
        self.schemaLinkbaseRefsDiscover(htmlElement)
        for inlineElement in htmlElement.getElementsByTagNameNS(
                XbrlConst.ixbrl, "resources"):
            self.instanceContentsDiscover(inlineElement)

        tuplesByElement = {}
        tuplesByTupleID = {}
        for inlineElement in htmlElement.getElementsByTagNameNS(
                XbrlConst.ixbrl, "tuple"):
            modelInlineFact = ModelObject.createInlineFact(self, inlineElement)
            modelInlineFact.unorderedTupleFacts = []
            if modelInlineFact.tupleID:
                tuplesByTupleID[modelInlineFact.tupleID] = modelInlineFact
            tuplesByElement[inlineElement] = modelInlineFact
        # hook up tuples to their container
        for tupleFact in tuplesByElement.values():
            self.inlineXbrlLocateFactInTuple(tupleFact, tuplesByTupleID,
                                             tuplesByElement)

        for ln in ("nonNumeric", "nonFraction", "fraction"):
            for inlineElement in htmlElement.getElementsByTagNameNS(
                    XbrlConst.ixbrl, ln):
                modelInlineFact = ModelObject.createInlineFact(
                    self, inlineElement)
                self.inlineXbrlLocateFactInTuple(modelInlineFact,
                                                 tuplesByTupleID,
                                                 tuplesByElement)
        # order tuple facts
        for tupleFact in tuplesByElement.values():
            tupleFact.modelTupleFacts = [
                self.modelXbrl.modelObject(objectIndex)
                for order, objectIndex in sorted(tupleFact.unorderedTupleFacts)
            ]