/// <summary>
        /// Load GenderItem from XmlNode.
        /// </summary>
        /// <param name="propertyNode">XmlNode.</param>
        /// <param name="nsmgr">XmlNamespaceManager.</param>
        /// <returns>GenderItem.</returns>
        internal static GenderItem Load(XmlNode propertyNode, XmlNamespaceManager nsmgr)
        {
            Debug.Assert(propertyNode != null && nsmgr != null);

            GenderItem genderItem = null;
            if (propertyNode.SelectSingleNode("tts:gender", nsmgr) != null)
            {
                genderItem = new GenderItem(propertyNode.SelectSingleNode("tts:gender/@v", nsmgr).InnerText);
                XmlNode originalValueNode = propertyNode.SelectSingleNode("tts:gender/@vo", nsmgr);
                if (originalValueNode != null && !string.IsNullOrEmpty(originalValueNode.InnerText))
                {
                    genderItem.OldValue = originalValueNode.InnerText;
                }
            }

            return genderItem;
        }
        /// <summary>
        /// Initializes a new instance of the <see cref="LexiconItemProperty"/> class.
        /// Construction from POS and Gender item.
        /// </summary>
        /// <param name="pos">POS value of this property.</param>
        /// <param name="gender">Gender value of this property.</param>
        public LexiconItemProperty(PosItem pos, GenderItem gender)
        {
            if (pos == null)
            {
                throw new ArgumentNullException("pos");
            }

            if (gender == null)
            {
                throw new ArgumentNullException("gender");
            }

            PartOfSpeech = pos;
            Gender = gender;
        }
 /// <summary>
 /// Clone function.
 /// </summary>
 /// <returns>GenderItem.</returns>
 public GenderItem Clone()
 {
     GenderItem clonedItem = new GenderItem();
     this.CopyTo(clonedItem);
     return clonedItem;
 }
        /// <summary>
        /// Initializes a new instance of the <see cref="LexiconItemProperty"/> class.
        /// Construction from Gender item.
        /// </summary>
        /// <param name="gender">Gender value of this property.</param>
        public LexiconItemProperty(GenderItem gender)
        {
            if (gender == null)
            {
                throw new ArgumentNullException("gender");
            }

            Gender = gender;
        }