/// <summary>
 /// 读取key node 下的关联的column的 Id
 /// </summary>
 /// <param name="xnP"></param>
 /// <param name="mKey"></param>
 private void GetRefIds(XmlNode xnP, KeyInfo mKey)
 {
     foreach (XmlNode xnp in xnP.ChildNodes)
     {
         XmlElement xe = (XmlElement)xnp;
         ColumnInfo column = new ColumnInfo();
         column.RefId = xe.GetAttribute("Ref");
         mKey.AddColumn(column);
     }
 }
 public void AddKey(KeyInfo mKey)
 {
     if (keys == null)
         keys = new List<KeyInfo>();
     keys.Add(mKey);
 }
        /// <summary>
        /// 读取key node的内容
        /// </summary>
        /// <param name="xnKey">key node</param>
        /// <returns></returns>
        private KeyInfo GetKey(XmlNode xnKey)
        {
            KeyInfo mKey = new KeyInfo();
            XmlElement xe = (XmlElement)xnKey;
            mKey.Id = xe.GetAttribute("Id");
            XmlNodeList xnKProperty = xe.ChildNodes;
            foreach (XmlNode xnP in xnKProperty)
            {
                switch (xnP.Name)
                {
                    case "a:ObjectID": mKey.ObjectID = xnP.InnerText;
                        break;
                    case "a:Name": mKey.Name = xnP.InnerText;
                        break;
                    case "a:Code": mKey.Code = xnP.InnerText;
                        break;
                    case "a:CreationDate": mKey.CreationDate = xnP.InnerText;
                        break;
                    case "a:Creator": mKey.Creator = xnP.InnerText;
                        break;
                    case "a:ModificationDate": mKey.ModificationDate = xnP.InnerText;
                        break;
                    case "a:Modifier": mKey.Modifier = xnP.InnerText;
                        break;
                    case "c:Key.Columns":
                        GetRefIds(xnP, mKey);
                        break;

                }
            }
            return mKey;
        }