/// <summary>
        /// Write QueryStructureResponse
        /// </summary>
        /// <param name="response">
        /// The QueryStructureResponseBean to write
        /// </param>
        private void WriteQueryStructureResponse(IQueryStructureResponseInfo response)
        {
            this.WriteStartElement(ElementNameTable.QueryStructureResponse);

            this.WriteStatusMessage(response.StatusMessage);

            var structureWriter = new StructureWriterV2(this.SdmxMLWriter);
            structureWriter.SetTopElementsNS(this.Namespaces.Registry);
            structureWriter.WriteStructure(response.Structure, null);

            this.WriteEndElement(); // </QueryStructureResponse>
        }
        /// <summary>
        /// Handle QueryStructureResponse Child elements
        /// </summary>
        /// <param name="parent">
        /// The parent QueryStructureResponseBean object
        /// </param>
        /// <param name="localName">
        /// The name of the current xml element
        /// </param>
        /// <returns>
        /// The <see cref="StructureReaderBaseV20.ElementActions"/>.
        /// </returns>
        private ElementActions HandleChildElements(IQueryStructureResponseInfo parent, object localName)
        {
            ElementActions actions = null;
            if (NameTableCache.IsElement(localName, ElementNameTable.StatusMessage))
            {
                IStatusMessageInfo status = this.CreateStatusMessage();
                parent.StatusMessage = status;
                actions = this.AddSimpleAction(status, this.HandleTextChildElement);
            }
            else
            {
                if (parent.Structure == null)
                {
                    var structure = new MutableObjectsImpl();
                    parent.Structure = structure;
                }

                this.HandleTopLevelBase(parent.Structure, localName);
            }

            return actions;
        }