def _generate_namespace_types(self, namespace, jazzy_cfg):
ns_name = fmt_public_name(namespace.name)<EOL>output_path = os.path.join('<STR_LIT>', ns_name)<EOL>output_path_headers = os.path.join(output_path, '<STR_LIT>')<EOL>for data_type in namespace.linearize_data_types():<EOL><INDENT>class_name = fmt_class_prefix(data_type)<EOL>if self.args.documentation:<EOL><INDENT>append_to_jazzy_category_dict(jazzy_cfg, ns_name, class_name)<EOL>append_to_jazzy_category_dict(<EOL>jazzy_cfg, '<STR_LIT>', '<STR_LIT>'.format(class_name))<EOL><DEDENT>if is_struct_type(data_type):<EOL><INDENT>file_path = os.path.join(output_path_headers,<EOL>class_name + '<STR_LIT>')<EOL>with self.output_to_relative_path(file_path):<EOL><INDENT>self.emit_raw(base_file_comment)<EOL>self._generate_struct_class_h(data_type)<EOL><DEDENT><DEDENT>elif is_union_type(data_type):<EOL><INDENT>if self.args.documentation:<EOL><INDENT>append_to_jazzy_category_dict(<EOL>jazzy_cfg, '<STR_LIT>', '<STR_LIT>'.format(fmt_class_prefix(data_type)))<EOL><DEDENT>file_path = os.path.join(output_path_headers,<EOL>class_name + '<STR_LIT>')<EOL>with self.output_to_relative_path(file_path):<EOL><INDENT>self.emit_raw(base_file_comment)<EOL>self._generate_union_class_h(data_type)<EOL><DEDENT><DEDENT>else:<EOL><INDENT>raise TypeError('<STR_LIT>' % type(data_type))<EOL><DEDENT><DEDENT>file_path = os.path.join(<EOL>output_path,<EOL>'<STR_LIT>'.format(fmt_camel_upper(namespace.name)))<EOL>with self.output_to_relative_path(file_path):<EOL><INDENT>self.emit_raw(base_file_comment)<EOL>description = '<STR_LIT>'.format(<EOL>fmt_camel_upper(namespace.name))<EOL>self.emit(description)<EOL>if self.args.exclude_from_analysis:<EOL><INDENT>self.emit()<EOL>self.emit('<STR_LIT>')<EOL><DEDENT>for data_type in namespace.linearize_data_types():<EOL><INDENT>if is_struct_type(data_type):<EOL><INDENT>self._generate_struct_class_m(data_type)<EOL><DEDENT>elif is_union_type(data_type):<EOL><INDENT>self._generate_union_class_m(data_type)<EOL><DEDENT><DEDENT>if self.args.exclude_from_analysis:<EOL><INDENT>self.emit('<STR_LIT>')<EOL><DEDENT><DEDENT>
Creates Obj C argument, error, serializer and deserializer types
        for the given namespace.