input: 
  from typing import List
  
  
  def parse_xml(text: str) -> List[Tag]:
      """Parse an XML document and return a list of tag objects. Each tag object
      should contain the tag id and a list of values from its subchildren.
      >>> parse_xml('<xml>\\n  <root>\\n    <child1 id="1">\\n      <subchild1 value="a">\\n      </subchild1>\\n      <subchild2 value="b">\\n      </subchild2>\\n    </child1>\\n    <child2 id="2">\\n      <subchild3 value="c">\\n      </subchild3>\\n      <subchild4 value="d">\\n      </subchild4>\\n    </child2>\\n  </root>\\n</xml>')
      [<Tag object>, <Tag object>]
      """
  
      tag_objects = []
  
      root = ET.fromstring(text)
      for child in root:
          tag = Tag(child.attrib["id"])
          for subchild in child:
              tag.add_value(subchild.attrib["value"])
          tag_objects.append(tag)
  
      return tag_objects
  
  class Tag:
      def __init__(self, tag_id):
          self.tag_id = tag_id
          self.values = []
      
      def add_value(self, value):
          self.values.append(value)
  
output:     
  import xml.etree.ElementTree as ET
  
  class Tag:
      def __init__(self, tag_id):
          self.tag_id = tag_id
          self.values = []
      
      def add_value(self, value):
          self.values.append(value)
  
  def parse_xml(text: str) -> List[Tag]:
      """Parse an XML document and return a list of tag objects. Each tag object
      should contain the tag id and a list of values from its subchildren.
      >>> parse_xml('<xml>\\n  <root>\\n    <child1 id="1">\\n      <subchild1 value="a">\\n      </subchild1>\\n      <subchild2 value="b">\\n      </subchild2>\\n    </child1>\\n    <child2 id="2">\\n      <subchild3 value="c">\\n      </subchild3>\\n      <subchild4 value="d">\\n      </subchild4>\\n    </child2>\\n  </root>\\n</xml>')
      [<Tag object>, <Tag object>]
      """
  
      tag_objects = []
  
      root = ET.fromstring(text)
      for child in root:
          tag = Tag(child.attrib["id"])
          for subchild in child:
              tag.add_value(subchild.attrib["value"])
          tag_objects.append(tag)
  
      return tag_objects
  