private void LoadXml(XmlReader xmlReader)
        {
            var result  = new List <TernarAccord>();
            var nav     = new XPathDocument(xmlReader).CreateNavigator();
            var manager = new XmlNamespaceManager(nav.NameTable);

            manager.AddNamespace("act", "urn:asc.notify.action_pattern.xsd");
            var nodes = nav.Select("act:accordings/action", manager);

            while (nodes.MoveNext())
            {
                var actNav   = nodes.Current;
                var actionID = actNav.GetAttribute("actionID", "");
                var action   = _ActionProvider.GetAction(actionID);
                if (action == null)
                {
                    log.Error(String.Format("action with id=\"{0}\" not instanced", actionID));
                    continue;
                }

                var defaultActionPattern = actNav.GetAttribute("defaultPatternID", "");
                if (!String.IsNullOrEmpty(defaultActionPattern))
                {
                    var defaultPattern = _PatternProvider.GetPattern(defaultActionPattern);
                    if (defaultPattern == null)
                    {
                        log.Error(String.Format("pattern with id=\"{0}\" not instanced", defaultActionPattern)); continue;
                    }
                    result.Add(new TernarAccord(action, new Accord(null, defaultPattern)));
                }

                var sendersNodes = actNav.SelectChildren("sender", "");
                while (sendersNodes.MoveNext())
                {
                    var senderName = sendersNodes.Current.GetAttribute("senderName", "");
                    var patternID  = sendersNodes.Current.GetAttribute("patternID", "");
                    var pattern    = _PatternProvider.GetPattern(patternID);
                    if (pattern == null)
                    {
                        log.Error(String.Format("pattern with id=\"{0}\" not instanced", patternID));
                        continue;
                    }
                    result.Add(new TernarAccord(action, new Accord(senderName, pattern)));
                }
            }
            _ConstProvider = new ConstActionPatternProvider(result.ToArray());
        }