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