Model Utilities ================ Soaplib comes with a some utilities that can be usefull for working with soaplib Models and their schema directly. XSDGenerator ------------- The :class:`~soaplib.core.util.xsd.XSDGenerator` allows direct XSD generation from a :class:`soaplib.core.clazz.ClassModel`. The basic use is:: class SimpleModel(ClassModel): __namespace__ = "SimpleModel" text = String xsd_gen = XSDGenerator() simple_xsd = self.xsd_gen.get_model_xsd(SimpleModel,pretty_print=True) print simple_xsd Which returns:: ClassModelConverter --------------------- The :class:`soaplib.core.util.ClassModelConverter` is a utility that provides methods for exporting a :class:`soaplib.core.util.ClassModel` instance as an etree.Element, xml string or, xml_file. Basic use is:: from datetime import datetime from lxml import etree from soaplib.core.model.clazz import ClassModel from soaplib.core.model.primitive import Integer, String, DateTime from soaplib.core.util.model_utils import ClassModelConverter class SimpleModel(ClassModel): __type_name__ = "simplemodel" simple_text = String simple_num = Integer simple_date = DateTime simple = SimpleModel() simple.simple_text = "Text" simple.simple_num = 1234 simple.simple_date = datetime(2001, 12, 12) converter = ClassModelConverter(simple, "tns") et = converter.to_etree() xml_string = converter.to_xml() xml_file = converter.to_file()