summaryrefslogtreecommitdiff
path: root/ext/soap/php_schema.c
diff options
context:
space:
mode:
Diffstat (limited to 'ext/soap/php_schema.c')
-rw-r--r--ext/soap/php_schema.c13
1 files changed, 7 insertions, 6 deletions
diff --git a/ext/soap/php_schema.c b/ext/soap/php_schema.c
index dbe229733d..9c219da0c6 100644
--- a/ext/soap/php_schema.c
+++ b/ext/soap/php_schema.c
@@ -1990,7 +1990,7 @@ static int schema_attributeGroup(sdlPtr sdl, xmlAttrPtr tsn, xmlNodePtr attrGrou
return TRUE;
}
-static void copy_extra_attribute(void *attribute)
+static void copy_extra_attribute(void *attribute)
{
sdlExtraAttributePtr *attr = (sdlExtraAttributePtr*)attribute;
sdlExtraAttributePtr new_attr;
@@ -2040,11 +2040,12 @@ static void schema_attribute_fixup(sdlCtx *ctx, sdlAttributePtr attr)
}
}
if (attr->name == NULL && attr->ref != NULL) {
- char *name, *ns;
- parse_namespace(attr->ref, &name, &ns);
- attr->name = sdl_strdup(name);
- if (name) {efree(name);}
- if (ns) {efree(ns);}
+ char *name = strrchr(attr->ref, ':');
+ if (*name) {
+ attr->name = sdl_strdup(name+1);
+ } else{
+ attr->name = sdl_strdup(attr->ref);
+ }
}
efree(attr->ref);
attr->ref = NULL;