docs: def _setUpElements(self):
          """TODO: Remove this method
          
          This method ONLY sets up the instance attributes.
          Dependency instance attribute:
              mgContent -- expected to be either a complex definition
                  with model group content, a model group, or model group 
                  content.  TODO: should only support the first two.
          """
          self.logger.debug("_setUpElements: %s" %self._item.getItemTrace())
          if hasattr(self, '_done'):
              #return '\n'.join(self.elementAttrs)
              return
          
          self._done = True
          flat = []
          content = self.mgContent
          if type(self.mgContent) is not tuple:
              mg = self.mgContent
              if not mg.isModelGroup(): 
                  mg = mg.content
                  
              content = mg.content
              if mg.isAll():
                  flat = content
                  content = [] 
              elif mg.isModelGroup() and mg.isDefinition():
                  mg = mg.content
                  content = mg.content            
      
          idx = 0
          content = list(content)
          while idx < len(content):
              c = orig = content[idx]
              if c.isElement():
                  flat.append(c)
                  idx += 1
                  continue
              
              if c.isReference() and c.isModelGroup():
                  c = c.getModelGroupReference()
                  
              if c.isDefinition() and c.isModelGroup():
                  c = c.content
  
              if c.isSequence() or c.isChoice():
                  begIdx = idx
                  endIdx = begIdx + len(c.content)
                  for i in range(begIdx, endIdx):
                      content.insert(i, c.content[i-begIdx])
                      
                  content.remove(orig)
                  continue
              
              raise ContainerError, 'unexpected schema item: %s' %c.getItemTrace()
                  
          for c in flat:
              if c.isDeclaration() and c.isElement():
                  defaultValue = "None"
                  parent = c
                  defs = []
                  # stop recursion via global ModelGroupDefinition 
                  while defs.count(parent) <= 1:
                      maxOccurs = parent.getAttribute('maxOccurs')
                      if maxOccurs == 'unbounded' or int(maxOccurs) > 1:
                          defaultValue = "[]"
                          break
                          
                      parent = parent._parent()
                      if not parent.isModelGroup():
                          break
                      
                      if parent.isReference():
                          parent = parent.getModelGroupReference()
                          
                      if parent.isDefinition():
                          parent = parent.content
                          defs.append(parent)                
                  
                  if None ==  c.getAttribute('name') and c.isWildCard():
                      e = '%sself.%s = %s' %(ID3, 
                              self.getAttributeName('any'), defaultValue)
                  else:
                      e = '%sself.%s = %s' %(ID3, 
                              self.getAttributeName(c.getAttribute('name')), defaultValue)
                  self.elementAttrs.append(e)
                  continue
                          
              # TODO: This seems wrong 
              if c.isReference():
                  e = '%sself._%s = None' %(ID3,
                          self.mangle(c.getAttribute('ref')[1]))
                  self.elementAttrs.append(e)
                  continue
              
              raise ContainerError, 'unexpected item: %s' % c.getItemTrace()
  
          #return '\n'.join(self.elementAttrs)
          return