summaryrefslogtreecommitdiff
path: root/ext/soap/php_schema.c
diff options
context:
space:
mode:
authorDmitry Stogov <dmitry@php.net>2004-02-24 09:02:33 +0000
committerDmitry Stogov <dmitry@php.net>2004-02-24 09:02:33 +0000
commitfeed42e0622281396985ee0f61a54423b8c6ee4f (patch)
treef99ffd1247d0766dcf0f4c1b40c34ec420f43121 /ext/soap/php_schema.c
parentac92c47b84f761c15073eaba572e493b7bfbcee2 (diff)
downloadphp-git-feed42e0622281396985ee0f61a54423b8c6ee4f.tar.gz
XML Schema support was improved: support for <element> default, fixed and nillable
Diffstat (limited to 'ext/soap/php_schema.c')
-rw-r--r--ext/soap/php_schema.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/ext/soap/php_schema.c b/ext/soap/php_schema.c
index 34bf786f1d..f1956137e4 100644
--- a/ext/soap/php_schema.c
+++ b/ext/soap/php_schema.c
@@ -2133,11 +2133,17 @@ static void schema_type_fixup(sdlCtx *ctx, sdlTypePtr type)
if (type->ref != NULL) {
if (ctx->sdl->elements != NULL) {
if (zend_hash_find(ctx->sdl->elements, type->ref, strlen(type->ref)+1, (void**)&tmp) == SUCCESS) {
+ type->kind = (*tmp)->kind;
type->encode = (*tmp)->encode;
- /* TODO: nillable */
if ((*tmp)->nillable) {
type->nillable = 1;
}
+ if ((*tmp)->fixed) {
+ type->fixed = estrdup((*tmp)->fixed);
+ }
+ if ((*tmp)->def) {
+ type->def = estrdup((*tmp)->def);
+ }
} else {
php_error(E_ERROR, "SOAP-ERROR: Parsing Schema: unresolved element 'ref' attribute");
}