/// <summary>
        /// Serializes a QueryRelated to an XML stream for StartRow and RelatedOids (LinkedTo).
        /// </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)
        {
            #region Serialize <StartRow>
            if (queryRelated.Oid != null)
            {
                writer.WriteStartElement(DTD.Request.QueryRequest.QueryRelated.TagStartRow);
                XMLAdaptorOIDSerializer.Serialize(writer, queryRelated.Oid);
                writer.WriteEndElement();
            }
            #endregion Serialize <StartRow>

            #region Serialize <LinkedTo>
            if (queryRelated.LinkedTo != null)
            {
                writer.WriteStartElement(DTD.Request.QueryRequest.QueryRelated.TagLinkedTo);
                foreach (string lRole in queryRelated.LinkedTo.Keys)
                {
                    writer.WriteStartElement(DTD.Request.QueryRequest.QueryRelated.LinkedTo.TagLinkItem);
                    writer.WriteAttributeString(DTD.Request.QueryRequest.QueryRelated.LinkedTo.TagRole, lRole);
                    XMLAdaptorOIDSerializer.Serialize(writer, queryRelated.LinkedTo[lRole]);
                    writer.WriteEndElement();
                }
                writer.WriteEndElement();
            }
            #endregion Serialize <LinkedTo>
            return(writer);
        }
 /// <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 QueryRelated to an XML stream for StartRow and RelatedOids (LinkedTo).
        /// </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)
        {
            #region Serialize <StartRow>
            if (queryRelated.Oid != null)
            {
                writer.WriteStartElement(DTD.Request.QueryRequest.QueryRelated.TagStartRow);
                XMLAdaptorOIDSerializer.Serialize(writer, queryRelated.Oid);
                writer.WriteEndElement();
            }
            #endregion Serialize <StartRow>

            #region Serialize <LinkedTo>
            if (queryRelated.LinkedTo != null)
            {
                writer.WriteStartElement(DTD.Request.QueryRequest.QueryRelated.TagLinkedTo);
                foreach (string lRole in queryRelated.LinkedTo.Keys)
                {
                    writer.WriteStartElement(DTD.Request.QueryRequest.QueryRelated.LinkedTo.TagLinkItem);
                    writer.WriteAttributeString(DTD.Request.QueryRequest.QueryRelated.LinkedTo.TagRole, lRole);
                    XMLAdaptorOIDSerializer.Serialize(writer, queryRelated.LinkedTo[lRole]);
                    writer.WriteEndElement();
                }
                writer.WriteEndElement();
            }
            #endregion Serialize <LinkedTo>
            return writer;
        }
 /// <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;
 }