static void arv_dom_parser_start_element(void *user_data, const xmlChar *name, const xmlChar **attrs) { ArvDomSaxParserState *state = user_data; ArvDomNode *node; int i; if (state->is_error) { state->error_depth++; return; } if (state->document == NULL) { state->document = arv_dom_implementation_create_document (NULL, (char *) name); state->current_node = ARV_DOM_NODE (state->document); g_return_if_fail (ARV_IS_DOM_DOCUMENT (state->document)); } node = ARV_DOM_NODE (arv_dom_document_create_element (ARV_DOM_DOCUMENT (state->document), (char *) name)); if (ARV_IS_DOM_NODE (node) && arv_dom_node_append_child (state->current_node, node) != NULL) { if (attrs != NULL) for (i = 0; attrs[i] != NULL && attrs[i+1] != NULL; i += 2) arv_dom_element_set_attribute (ARV_DOM_ELEMENT (node), (char *) attrs[i], (char *) attrs[i+1]); state->current_node = node; state->is_error = FALSE; state->error_depth = 0; } else { state->is_error = TRUE; state->error_depth = 1; } }
static ArvDomElement * arv_gc_create_element (ArvDomDocument *document, const char *tag_name) { ArvGcNode *node = NULL; if (strcmp (tag_name, "Category") == 0) node = arv_gc_category_new (); else if (strcmp (tag_name, "Command") == 0) node = arv_gc_command_new (); else if (strcmp (tag_name, "Converter") == 0) node = arv_gc_converter_new (); else if (strcmp (tag_name, "IntConverter") == 0) node = arv_gc_converter_new_integer (); else if (strcmp (tag_name, "IntReg") == 0) node = arv_gc_register_node_new_integer (); else if (strcmp (tag_name, "MaskedIntReg") == 0) node = arv_gc_register_node_new_masked_integer (); else if (strcmp (tag_name, "FloatReg") == 0) node = arv_gc_register_node_new_float (); else if (strcmp (tag_name, "StringReg") == 0) node = arv_gc_register_node_new_string (); else if (strcmp (tag_name, "StructReg") == 0) node = arv_gc_register_node_new_struct_register (); else if (strcmp (tag_name, "StructEntry") == 0) node = arv_gc_struct_entry_node_new (); else if (strcmp (tag_name, "Integer") == 0) node = arv_gc_integer_node_new (); else if (strcmp (tag_name, "Float") == 0) node = arv_gc_float_node_new (); else if (strcmp (tag_name, "Boolean") == 0) node = arv_gc_boolean_new (); else if (strcmp (tag_name, "Enumeration") == 0) node = arv_gc_enumeration_new (); else if (strcmp (tag_name, "EnumEntry") == 0) node = arv_gc_enum_entry_new (); else if (strcmp (tag_name, "SwissKnife") == 0) node = arv_gc_swiss_knife_new (); else if (strcmp (tag_name, "IntSwissKnife") == 0) node = arv_gc_swiss_knife_new_integer (); else if (strcmp (tag_name, "Port") == 0) node = arv_gc_port_new (); else if (strcmp (tag_name, "pIndex") == 0) node = arv_gc_index_node_new (); else if (strcmp (tag_name, "RegisterDescription") == 0) node = arv_gc_register_description_node_new (); else if (strcmp (tag_name, "pFeature") == 0) node = arv_gc_property_node_new_p_feature (); else if (strcmp (tag_name, "Value") == 0) node = arv_gc_property_node_new_value (); else if (strcmp (tag_name, "pValue") == 0) node = arv_gc_property_node_new_p_value (); else if (strcmp (tag_name, "Address") == 0) node = arv_gc_property_node_new_address (); else if (strcmp (tag_name, "pAddress") == 0) node = arv_gc_property_node_new_p_address (); else if (strcmp (tag_name, "Description") == 0) node = arv_gc_property_node_new_description (); else if (strcmp (tag_name, "ToolTip") == 0) node = arv_gc_property_node_new_tooltip (); else if (strcmp (tag_name, "DisplayName") == 0) node = arv_gc_property_node_new_display_name (); else if (strcmp (tag_name, "Min") == 0) node = arv_gc_property_node_new_minimum (); else if (strcmp (tag_name, "pMin") == 0) node = arv_gc_property_node_new_p_minimum (); else if (strcmp (tag_name, "Max") == 0) node = arv_gc_property_node_new_maximum (); else if (strcmp (tag_name, "pMax") == 0) node = arv_gc_property_node_new_p_maximum (); else if (strcmp (tag_name, "Inc") == 0) node = arv_gc_property_node_new_increment (); else if (strcmp (tag_name, "pInc") == 0) node = arv_gc_property_node_new_p_increment (); else if (strcmp (tag_name, "Unit") == 0) node = arv_gc_property_node_new_unit (); else if (strcmp (tag_name, "OnValue") == 0) node = arv_gc_property_node_new_on_value (); else if (strcmp (tag_name, "OffValue") == 0) node = arv_gc_property_node_new_off_value (); else if (strcmp (tag_name, "pIsImplemented") == 0) node = arv_gc_property_node_new_p_is_implemented (); else if (strcmp (tag_name, "pIsAvailable") == 0) node = arv_gc_property_node_new_p_is_available (); else if (strcmp (tag_name, "pIsLocked") == 0) node = arv_gc_property_node_new_p_is_locked (); else if (strcmp (tag_name, "Length") == 0) node = arv_gc_property_node_new_length (); else if (strcmp (tag_name, "pLength") == 0) node = arv_gc_property_node_new_p_length (); else if (strcmp (tag_name, "pPort") == 0) node = arv_gc_property_node_new_p_port (); else if (strcmp (tag_name, "pVariable") == 0) node = arv_gc_variable_node_new (); else if (strcmp (tag_name, "Formula") == 0) node = arv_gc_property_node_new_formula (); else if (strcmp (tag_name, "FormulaTo") == 0) node = arv_gc_property_node_new_formula_to (); else if (strcmp (tag_name, "FormulaFrom") == 0) node = arv_gc_property_node_new_formula_from (); else if (strcmp (tag_name, "Expression") == 0) node = arv_gc_property_node_new_expression (); else if (strcmp (tag_name, "Constant") == 0) node = arv_gc_property_node_new_constant (); else if (strcmp (tag_name, "AccessMode") == 0) node = arv_gc_property_node_new_access_mode (); else if (strcmp (tag_name, "Cachable") == 0) node = arv_gc_property_node_new_cachable (); else if (strcmp (tag_name, "PollingTime") == 0) node = arv_gc_property_node_new_polling_time (); else if (strcmp (tag_name, "Endianess") == 0) node = arv_gc_property_node_new_endianess (); else if (strcmp (tag_name, "Sign") == 0) node = arv_gc_property_node_new_sign (); else if (strcmp (tag_name, "LSB") == 0) node = arv_gc_property_node_new_lsb (); else if (strcmp (tag_name, "MSB") == 0) node = arv_gc_property_node_new_msb (); else if (strcmp (tag_name, "Bit") == 0) node = arv_gc_property_node_new_bit (); else if (strcmp (tag_name, "pInvalidator") == 0) node = arv_gc_invalidator_node_new (); else if (strcmp (tag_name, "CommandValue") == 0) node = arv_gc_property_node_new_command_value (); else if (strcmp (tag_name, "pCommandValue") == 0) node = arv_gc_property_node_new_p_command_value (); else if (strcmp (tag_name, "Group") == 0) node = arv_gc_group_node_new (); else arv_debug_dom ("[Genicam::create_element] Unknow tag (%s)", tag_name); return ARV_DOM_ELEMENT (node); }