/// <summary>
 /// Serializes a QueryRelated to an XML stream.
 /// </summary>
 /// <param name="writer">XML stream to write.</param>
 /// <param name="queryRelated">QueryRelated.</param>
 /// <returns>XML stream with the QueryRelated.</returns>
 public static XmlWriter Serialize(XmlWriter writer, QueryRelated queryRelated)
 {
     writer.WriteStartElement(DTD.Request.QueryRequest.TagQueryRelated);
     writer.WriteAttributeString(DTD.Request.QueryRequest.QueryRelated.TagBlockSize, queryRelated.BlockSize.ToString());
     XMLStartRowLinkedToSerializer.Serialize(writer, queryRelated);
     writer.WriteEndElement();
     return(writer);
 }
        /// <summary>
        /// Serializes a QueryFilter to an XML stream.
        /// </summary>
        /// <param name="writer">XML stream to write.</param>
        /// <param name="queryFilter">QueryFilter.</param>
        /// <returns>XML stream with the QueryFilter.</returns>
        public static XmlWriter Serialize(XmlWriter writer, QueryFilter queryFilter)
        {
            writer.WriteStartElement(DTD.Request.QueryRequest.TagQueryFilter);
            writer.WriteAttributeString(DTD.Request.QueryRequest.QueryFilter.TagName, queryFilter.Name);
            writer.WriteAttributeString(DTD.Request.QueryRequest.QueryFilter.TagBlockSize, queryFilter.BlockSize.ToString());

            XMLStartRowLinkedToSerializer.Serialize(writer, queryFilter as QueryRelated);

            #region Serialize <Filter.Variables>.
            if (queryFilter.Variables != null)
            {
                XMLFilterVariablesSerializer.Serialize(writer, queryFilter.Variables);
            }
            #endregion Serialize <Filter.Variables>.

            writer.WriteEndElement();
            return(writer);
        }