class_docstr: Initializer for XBNReader class.
  
  Parameters
  ----------
  path: str or file
      Path of the file containing XBN data.
  
  string: str
      String of XBN data
  
  Examples
  --------
  >>> reader = XBNReader('test_XBN.xml')
  
  Reference
  ---------
  [1] Microsoft Research. XML belief network file format.
      http://xml.coverpages.org/xbn-MSdefault19990414.html, 1999.
class_docstr_tok: ["Initializer","for","XBNReader","class",".","Parameters","--","--","--","--","--","path",":","str","or","file","Path","of","the","file","containing","XBN","data",".","string",":","str","String","of","XBN","data","Examples","--","--","--","--",">",">",">","reader","=","XBNReader","(","'test_XBN.xml","'",")","Reference","--","--","--","--","-","[","1","]","Microsoft","Research",".","XML","belief","network","file","format",".","http",":","\/\/xml.coverpages.org\/xbn-MSdefault19990414.html",",","1999","."]
docstr: Returns a list of variables.
  
  Examples
  --------
  >>> reader = XBNReader('xbn_test.xml')
  >>> reader.get_variables()
  {'a': {'TYPE': 'discrete', 'XPOS': '13495',
         'YPOS': '10465', 'DESCRIPTION': '(a) Metastatic Cancer',
         'STATES': ['Present', 'Absent']}
  'b': {'TYPE': 'discrete', 'XPOS': '11290',
         'YPOS': '11965', 'DESCRIPTION': '(b) Serum Calcium Increase',
         'STATES': ['Present', 'Absent']},
  'c': {....},
  'd': {....},
  'e': {....}
  }
docstr_tok: ["Returns","a","list","of","variables",".","Examples","--","--","--","--",">",">",">","reader","=","XBNReader","(","'xbn_test.xml","'",")",">",">",">","reader.get_variables","(",")","{","'","a","'",":","{","'TYPE","'",":","'discrete","'",",","'XPOS","'",":","'13495","'",",","'YPOS","'",":","'10465","'",",","'DESCRIPTION","'",":","'","(","a",")","Metastatic","Cancer","'",",","'STATES","'",":","[","'Present","'",",","'Absent","'","]","}","'","b","'",":","{","'TYPE","'",":","'discrete","'",",","'XPOS","'",":","'11290","'",",","'YPOS","'",":","'11965","'",",","'DESCRIPTION","'",":","'","(","b",")","Serum","Calcium","Increase","'",",","'STATES","'",":","[","'Present","'",",","'Absent","'","]","}",",","'","c","'",":","{","....","}",",","'d","'",":","{","....","}",",","'","e","'",":","{","....","}","}"]
code: def get_variables(self):
      """
      Returns a list of variables.
  
      Examples
      --------
      >>> reader = XBNReader('xbn_test.xml')
      >>> reader.get_variables()
      {'a': {'TYPE': 'discrete', 'XPOS': '13495',
             'YPOS': '10465', 'DESCRIPTION': '(a) Metastatic Cancer',
             'STATES': ['Present', 'Absent']}
      'b': {'TYPE': 'discrete', 'XPOS': '11290',
             'YPOS': '11965', 'DESCRIPTION': '(b) Serum Calcium Increase',
             'STATES': ['Present', 'Absent']},
      'c': {....},
      'd': {....},
      'e': {....}
      }
      """
      variables = {}
      for variable in self.bnmodel.find("VARIABLES"):
          variables[variable.get("NAME")] = {
              "TYPE": variable.get("TYPE"),
              "XPOS": variable.get("XPOS"),
              "YPOS": variable.get("YPOS"),
              "DESCRIPTION": variable.find("DESCRIPTION").text,
              "STATES": [
                  state.text for state in variable.findall("STATENAME")
              ],
          }
      return variables
  
imports: import itertools
  import xml.etree.ElementTree
  import networkx
  import numpy
  from pgmpy.factors.discrete import TabularCPD
  from pgmpy.models import BayesianNetwork
label_desc: Use image node_id 5 for calling the XBNReader obj's underlying member method code with example usage: obj.get_variables() and returns: variables