From 8a7bc6d2a2be5601001439feb24596a20cb3f59d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=A1=D1=83=D0=B4=D0=B0=D0=BA=D0=BE=D0=B2=20=D0=98=D0=B2?= =?UTF-8?q?=D0=B0=D0=BD=20=D0=90=D0=BD=D0=B0=D1=82=D0=BE=D0=BB=D1=8C=D0=B5?= =?UTF-8?q?=D0=B2=D0=B8=D1=87?= Date: Wed, 17 Jan 2018 08:24:17 +0300 Subject: [PATCH] Default qualified attributes parsing bug fix(recursion in parseSchemaTag) --- kdwsdl2cpp/schema/parser.cpp | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/kdwsdl2cpp/schema/parser.cpp b/kdwsdl2cpp/schema/parser.cpp index 89cdff5ab..a3c5edd8e 100644 --- a/kdwsdl2cpp/schema/parser.cpp +++ b/kdwsdl2cpp/schema/parser.cpp @@ -182,7 +182,10 @@ bool Parser::parseSchemaTag(ParserContext *context, const QDomElement &root) context->namespaceManager()->enterChild(root); // This method can call itself recursively, so save/restore the member attribute. - QString oldNamespace = d->mNameSpace; + const QString oldNamespace = d->mNameSpace; + const bool oldDefaultQualifiedElements = d->mDefaultQualifiedElements; + const bool oldDefaultQualifiedAttributes = d->mDefaultQualifiedAttributes; + if (root.hasAttribute(QLatin1String("targetNamespace"))) { d->mNameSpace = root.attribute(QLatin1String("targetNamespace")); } @@ -233,6 +236,8 @@ bool Parser::parseSchemaTag(ParserContext *context, const QDomElement &root) d->mImportedSchemas.append(d->mNameSpace); d->mNameSpace = oldNamespace; + d->mDefaultQualifiedElements = oldDefaultQualifiedElements; + d->mDefaultQualifiedAttributes = oldDefaultQualifiedAttributes; return true; }