in src/core/transport/http/sender/axis2_json_writer.c [28:57]
axis2_bool_t axis2_json_element_is_nil(axiom_element_t* om_element, const axutil_env_t* env)
{
axiom_attribute_t* attr = NULL;
axutil_hash_index_t* index;
axutil_hash_t* attr_hash = axiom_element_get_all_attributes(om_element, env);
if (!attr_hash)
return AXIS2_FALSE;
for (index = axutil_hash_first(attr_hash, env);
index; index = axutil_hash_next(env, index))
{
axutil_hash_this(index, NULL, NULL, (void**)&attr);
if (attr && !strcmp(axiom_attribute_get_localname(attr, env), "nil"))
{
/* found some "nil" attribute, check it namespace */
axutil_qname_t* qname =
axiom_attribute_get_qname(attr, env);
if (qname && !strcmp(axutil_qname_get_uri(qname, env), AXIS2_JSON_XSI_URI))
{
axis2_char_t* attr_value =
axiom_attribute_get_value(attr, env);
return (!strcmp(attr_value, "true") || !strcmp(attr_value, "1")) ?
AXIS2_TRUE : AXIS2_FALSE;
}
}
}
return AXIS2_FALSE;
}