docs: def _create_path(self,xpath):
          """
          Started to write an xpath parser to create the specified path but there are many
          ways to specify a path in xpath - it is too expressive. This is not a sensible
          thing to do from inside a property function. Let it return an error unless the
          path exists and add helper functions to create the specific metadata block that is
          required.
          """
          raise NotImplementedError()
  
          split_path = xpath.split('/')
          test_paths = ['/'.join(sp[:i+1]) for i in range(1, len(split_path))]
  
          for path in reversed(test_paths):
              result = self._eval_xpath(path)
              result_length = len(result)
              if  result_length == 0:
                  # Still no elements found
                  continue
              elif result_length == 1:
                  result = result[0]
                  break
              else:
                  raise XmlDogmaException('Invalid xpath expression "%s" returns more than one element!' % xpath)
  
          else:
              raise XmlDogmaException('Root element "%s" of xpath expression "%s" not found while trying to create path.' % (path, xpath))
  
          existing_elemet = result
          existing_path = path
          existing_index = test_paths.index(existing_path)
  
          for new_element in split_path[existing_index+1:]:
  
              #Regex it!
              # 'employee[secretary][assistant]' => ['employee', 'secretary', 'assistant', '']
              # 'toy[attribute::color = "red"]' => ['toy', 'attribute::color = "red"', '']
              parts = re.split('\[(.*?)\]',new_element)
              #@TODO - find a better regex that does not include one empty string for each bracket
              try:
                  while True:
                      parts.remove('')
              except ValueError:
                  pass
  
              tag = parts[0]
              predicates = parts[1:]
  
              e = etree.Element(tag)
  
  
              ### Did not finish implementing... see comment above about why its a bad idea
              for predicate in predicates:
                  if predicate.isdigit():
                      # it is specifying where to insert this child
                      pass
                  elif predicate.startswith('@'):
                      #parse the attribute and set it...
                      pass
                  else:
                      pass