/// <summary>
 /// Serializes an AlternateKey object to an XML stream.
 /// </summary>
 /// <param name="writer">XML stream to write.</param>
 /// <param name="alternateKey">AlternateKey object.</param>
 /// <returns>XML stream with the AlternateKey object.</returns>
 public static XmlWriter Serialize(XmlWriter writer, Oids.Oid alternateKey)
 {
     writer.WriteStartElement(DTD.TagAlternateKey);
     writer.WriteAttributeString(DTD.AlternateKey.TagName, alternateKey.ClassName);
     // Process element childs.
     foreach (KeyValuePair<ModelType, object> i in alternateKey.GetFields())
     {
         writer.WriteStartElement(DTD.AlternateKey.TagAlternateKeyField);
         writer.WriteAttributeString(DTD.AlternateKey.TagType, Convert.MODELTypeToStringType(i.Key));
         // Set value for this node.
         try
         {
             writer.WriteString(Convert.TypeToXml(i.Key, i.Value));
         }
         catch (Exception ex)
         {
             StringBuilder lMessage = new StringBuilder("Fail Alternate Key Serialize [");
             lMessage.Append(alternateKey.ClassName);
             lMessage.Append(" - ");
             lMessage.Append(alternateKey.AlternateKeyName);
             lMessage.Append(']');
             throw new ApplicationException(lMessage.ToString(), ex);
         }
         writer.WriteEndElement();
     }
     writer.WriteEndElement();
     return writer;
 }
 /// <summary>
 /// Serializes an Oid object to an XML stream.
 /// </summary>
 /// <param name="writer">XML stream to write.</param>
 /// <param name="oid">Oid.</param>
 /// <returns>XML stream with the Oid object.</returns>
 public static XmlWriter Serialize(XmlWriter writer, Oids.Oid oid)
 {
     writer.WriteStartElement(DTD.TagOID);
     writer.WriteAttributeString(DTD.OID.TagClass, oid.ClassName);
     foreach (KeyValuePair<ModelType,object> i in oid.GetFields())
     {
         writer.WriteStartElement(DTD.OID.TagOIDField);
         writer.WriteAttributeString(DTD.OID.TagType, Convert.MODELTypeToStringType(i.Key));
         try
         {
             writer.WriteString(Convert.TypeToXml(i.Key, i.Value));
         }
         catch(Exception ex)
         {
             StringBuilder lMessage = new StringBuilder("Fail OID Serialize [");
             lMessage.Append(oid.ClassName);
             lMessage.Append(']');
             throw new ApplicationException(lMessage.ToString(), ex);
         }
         writer.WriteEndElement();
     }
     writer.WriteEndElement();
     return writer;
 }