code: def merge(self, schema):
          
          for item in schema.attributes.items():
              if item[0] in self.attributes:
                  continue
              self.all.append(item[1])
              self.attributes[item[0]] = item[1]
          for item in schema.elements.items():
              if item[0] in self.elements:
                  continue
              self.all.append(item[1])
              self.elements[item[0]] = item[1]
          for item in schema.types.items():
              if item[0] in self.types:
                  continue
              self.all.append(item[1])
              self.types[item[0]] = item[1]
          for item in schema.groups.items():
              if item[0] in self.groups:
                  continue
              self.all.append(item[1])
              self.groups[item[0]] = item[1]
          for item in schema.agrps.items():
              if item[0] in self.agrps:
                  continue
              self.all.append(item[1])
              self.agrps[item[0]] = item[1]
          schema.merged = True
          return self
docs: Merge the contents from the schema.  Only objects not already contained
          in this schema's collections are merged.  This is to provide for
          bidirectional import which produce cyclic includes.
          @returns: self
          @rtype: L{Schema}