def write_xsd_metadata(self, parent_el, prop_xml_name):

        # add simple element for this property of type BlobInfo
        prop_el = super(BlobReferenceHandler, self).write_xsd_metadata(
            parent_el, prop_xml_name)

        # add the BlobInfo type definition if not already added
        schema_el = parent_el.ownerDocument.documentElement
        has_blob_info = False
        for type_el in schema_el.childNodes:
            if(type_el.attributes[NAME_ATTR_NAME].nodeValue ==
               BLOBINFO_TYPE_NAME):
                has_blob_info = True
                break

        # we need to add the BlobInfo type def
        if not has_blob_info:
            blob_type_el = append_child(schema_el, XSD_COMPLEXTYPE_NAME)
            blob_type_el.attributes[NAME_ATTR_NAME] = BLOBINFO_TYPE_NAME
            ext_el = append_child(append_child(blob_type_el,
                                               XSD_SIMPLECONTENT_NAME),
                                  XSD_EXTENSION_NAME)
            ext_el.attributes[BASE_ATTR_NAME] = XSD_NORMAL_STR
            for prop_xml_name, prop_handler in (
                BLOBINFO_PROP_HANDLERS.iteritems()):
                xsd_append_attribute(ext_el, prop_xml_name,
                                     prop_handler.get_type_string())

        return prop_el
L{UnixApplicationRunner.setupEnvironment} writes the daemonized
dataset/ETHPy150Open jahlborn/appengine-rest-server/src/main/python/rest/__init__.py/BlobReferenceHandler.write_xsd_metadata--crossover with--dataset/ETHPy150Open twisted/twisted/twisted/test/test_twistd.py/UnixApplicationRunnerSetupEnvironmentTests.test_daemonPIDFile