docs: def _add_variable(self, variable):
          """
          Adds a node to the ProbModelXML.
          """
          # TODO: Add feature for accepting additional properties of states.
          variable_data = self.data['probnet']['Variables'][variable]
          variable_element = etree.SubElement(self.variables, 'Variable', attrib={'name': variable,
                                                                                  'type': variable_data['type'],
                                                                                  'role': variable_data['role']})
  
          try:
              etree.SubElement(variable_element, 'Comment').text = variable_data['Comment']
          except KeyError:
              pass
          try:
              etree.SubElement(variable_element, 'Coordinates', variable_data['Coordinates'])
          except KeyError:
              pass
  
          try:
              for key, value in sorted(variable_data['AdditionalProperties'].items()):
                  etree.SubElement(variable_element, 'Property', attrib={'name': key, 'value': value})
          except KeyError:
              etree.SubElement(variable_element, 'AdditionalProperties')
          states = etree.SubElement(variable_element, 'States')
          for s in sorted(variable_data['States']):
              state = etree.SubElement(states, 'State', attrib={'name': s})
              try:
                  self._add_additional_properties(state, variable_data['States'][s]['AdditionalProperties'])
              except KeyError:
                  etree.SubElement(state, 'AdditionalProperties')