- def add_attribute(self, elem, name, value):
- """
- Add attribute to specified etree element
- """
- opt = etree.SubElement(elem, name)
- opt.text = value
+ def parse_xml(self, xml, version=None):
+ self.xml.parse_xml(xml)
+ if not version:
+ if self.xml.schema:
+ self.version = self.version_manager.get_version_by_schema(self.xml.schema)
+ else:
+ #raise InvalidRSpec('unknown rspec schema: %s' % schema)
+ # TODO: Should start raising an exception once SFA defines a schema.
+ # for now we just default to sfa
+ self.version = self.version_manager.get_version({'type':'sfa','version': '1'})
+ self.version.xml = self.xml
+ self.namespaces = self.xml.namespaces
+
+ def load_rspec_elements(self, rspec_elements):
+ self.elements = {}
+ for rspec_element in rspec_elements:
+ if isinstance(rspec_element, RSpecElement):
+ self.elements[rspec_element.type] = rspec_element