From 1b6f17628156f55b339f006dba48aae1ac364e97 Mon Sep 17 00:00:00 2001 From: Dmitry Stogov Date: Tue, 27 Jan 2004 15:48:19 +0000 Subject: Support for relative path in WSDL and XML Schema --- ext/soap/php_sdl.c | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) (limited to 'ext/soap/php_sdl.c') diff --git a/ext/soap/php_sdl.c b/ext/soap/php_sdl.c index 0077ee5a1c..c12b8b22fa 100644 --- a/ext/soap/php_sdl.c +++ b/ext/soap/php_sdl.c @@ -1,4 +1,5 @@ #include "php_soap.h" +#include "libxml/uri.h" typedef struct sdlCtx { sdlPtr root; @@ -198,7 +199,17 @@ static void load_wsdl_ex(char *struri, sdlCtx *ctx, int include) /* TODO: namespace ??? */ xmlAttrPtr tmp = get_attribute(trav->properties, "location"); if (tmp) { - load_wsdl_ex(tmp->children->content, ctx, 1); + xmlChar *uri; + xmlChar *base = xmlNodeGetBase(trav->doc, trav); + + if (base == NULL) { + uri = xmlBuildURI(tmp->children->content, trav->doc->URL); + } else { + uri = xmlBuildURI(tmp->children->content, base); + xmlFree(base); + } + load_wsdl_ex(uri, ctx, 1); + xmlFree(uri); } } else if (strcmp(trav->name,"message") == 0) { -- cgit v1.2.1