/// <summary>
 /// Clone function.
 /// </summary>
 /// <returns>CaseItem.</returns>
 public CaseItem Clone()
 {
     CaseItem clonedItem = new CaseItem();
     this.CopyTo(clonedItem);
     return clonedItem;
 }
        /// <summary>
        /// Load CaseItem from XmlNode.
        /// </summary>
        /// <param name="propertyNode">XmlNode.</param>
        /// <param name="nsmgr">XmlNamespaceManager.</param>
        /// <returns>CaseItem.</returns>
        internal static CaseItem Load(XmlNode propertyNode, XmlNamespaceManager nsmgr)
        {
            Debug.Assert(propertyNode != null && nsmgr != null);

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

            return caseItem;
        }
        /// <summary>
        /// Initializes a new instance of the <see cref="LexiconItemProperty"/> class.
        /// Construction from Case item.
        /// </summary>
        /// <param name="caseItem">Case value of this property.</param>
        public LexiconItemProperty(CaseItem caseItem)
        {
            if (caseItem == null)
            {
                throw new ArgumentNullException("caseItem");
            }

            Case = caseItem;
        }