Exemple #1
0
        /// <summary>
        /// Load Segmentation node from XmlElement of PMML file
        /// </summary>
        /// <param name="node">Xml PMML file to read</param>
        /// <returns></returns>
        public static Segment loadFromXmlNode(XmlNode node)
        {
            Segment segment = new Segment();

            /*tree.ModelName = node.Attributes["modelName"].Value;
             *
             * if (node.Attributes["missingValueStrategy"] != null)
             *      tree.MissingValueStrategy = MissingValueStrategyfromString(node.Attributes["missingValueStrategy"].Value);
             *
             * // By default noTrueChildStrategy = returnNullPrediction
             * tree.noTrueChildStrategy = NoTrueChildStrategy.ReturnNullPrediction;
             * if (node.Attributes["noTrueChildStrategy"] != null)
             *      tree.noTrueChildStrategy = NoTrueChildStrategyfromString(node.Attributes["noTrueChildStrategy"].Value);
             */

            foreach (XmlNode item in node.ChildNodes)
            {
                if ("Extension".Equals(item.Name))
                {
                    // Not yet implemented
                }
                else if ("simplepredicate".Equals(item.Name.ToLowerInvariant()))
                {
                    segment.predicate = SimplePredicate.loadFromXmlNode(item);
                }
                else if ("true".Equals(item.Name.ToLowerInvariant()))
                {
                    segment.predicate = new TruePredicate();
                }
                else if ("false".Equals(item.Name.ToLowerInvariant()))
                {
                    segment.predicate = new FalsePredicate();
                }
                else if ("compoundpredicate".Equals(item.Name.ToLowerInvariant()))
                {
                    segment.predicate = CompoundPredicate.loadFromXmlNode(item);
                }
                else if ("simplesetpredicate".Equals(item.Name.ToLowerInvariant()))
                {
                    segment.predicate = SimpleSetPredicate.loadFromXmlNode(item);
                }
                else if ("treemodel".Equals(item.Name.ToLowerInvariant()))
                {
                    segment.model = TreeModel.loadFromXmlNode(item);
                }
                else
                {
                    throw new NotImplementedException();
                }
            }

            return(segment);
        }
        /// <summary>
        /// Load Node from XmlNode
        /// </summary>
        /// <param name="node"></param>
        /// <returns></returns>
        public static SimpleRule loadFromXmlNode(XmlNode node)
        {
            SimpleRule root = new SimpleRule();

            // TODO : Add extention reading

            if (node.Attributes["id"] == null)
            {
                throw new PmmlException("Attribute 'id' is required in 'SimpleRule'.");
            }
            root.fid = node.Attributes["id"].Value;

            /*if (node.Attributes["operator"] == null)
             *      throw new PmmlException("Attribute 'operator' is required in 'SimplePredicate'.");
             * root.foperator = node.Attributes["operator"].Value;
             *
             * if (!("isMissing".Equals(root.foperator) || "isNotMissing".Equals(root.foperator)))
             * {
             *      if (node.Attributes["value"] == null)
             *              throw new PmmlException(string.Format("Attribute 'value' is required in 'SimplePredicate' if 'operator' is '{0}'.", root.foperator));
             *      root.fvalue = node.Attributes["value"].Value;
             * }*/

            root.fscore = node.Attributes["score"].Value;

            foreach (XmlNode item in node.ChildNodes)
            {
                if ("extension".Equals(item.Name.ToLowerInvariant()))
                {
                    // TODO : implement extension
                    //root.Nodes.Add(Node.loadFromXmlNode(item));
                }
                else if ("simplepredicate".Equals(item.Name.ToLowerInvariant()))
                {
                    root.Predicate = SimplePredicate.loadFromXmlNode(item);
                }
                else if ("compoundpredicate".Equals(item.Name.ToLowerInvariant()))
                {
                    root.Predicate = CompoundPredicate.loadFromXmlNode(item);
                }
                else if ("scoredistribution".Equals(item.Name.ToLowerInvariant()))
                {
                    root.ScoreDistributions.Add(ScoreDistribution.loadFromXmlNode(item));
                }
                else
                {
                    throw new NotImplementedException();
                }
            }

            return(root);
        }
        /// <summary>
        /// Load Node from XmlNode
        /// </summary>
        /// <param name="node"></param>
        /// <returns></returns>
        public static CompoundPredicate loadFromXmlNode(XmlNode node)
        {
            CompoundPredicate root = new CompoundPredicate();

            // TODO : Add extention reading

            root.fbooleanOperator = node.Attributes["booleanOperator"].Value;

            root.fpredicates = new List <Predicate>();
            foreach (XmlNode item in node.ChildNodes)
            {
                if ("extension".Equals(item.Name.ToLowerInvariant()))
                {
                    //root.Nodes.Add(Node.loadFromXmlNode(item));
                }
                else if ("simplepredicate".Equals(item.Name.ToLowerInvariant()))
                {
                    root.fpredicates.Add(SimplePredicate.loadFromXmlNode(item));
                }
                else if ("true".Equals(item.Name.ToLowerInvariant()))
                {
                    root.fpredicates.Add(new TruePredicate());
                }
                else if ("false".Equals(item.Name.ToLowerInvariant()))
                {
                    root.fpredicates.Add(new FalsePredicate());
                }
                else if ("compoundpredicate".Equals(item.Name.ToLowerInvariant()))
                {
                    root.fpredicates.Add(CompoundPredicate.loadFromXmlNode(item));
                }
                else if ("simplesetpredicate".Equals(item.Name.ToLowerInvariant()))
                {
                    root.fpredicates.Add(SimpleSetPredicate.loadFromXmlNode(item));
                }
                else
                {
                    throw new NotImplementedException();
                }
            }

            return(root);
        }
Exemple #4
0
        /// <summary>
        /// Load Node from XmlNode
        /// </summary>
        /// <param name="node"></param>
        /// <returns></returns>
        public static Node loadFromXmlNode(XmlNode node)
        {
            Node root = new Node(new TruePredicate());

            if (node.Attributes["id"] != null)
            {
                root.id = node.Attributes["id"].Value;
            }

            if (node.Attributes["score"] != null)
            {
                root.score = node.Attributes["score"].Value;
            }

            if (node.Attributes["recordCount"] != null)
            {
                root.recordCount = Convert.ToDecimal(node.Attributes["recordCount"].Value, CultureInfo.InvariantCulture);
            }

            root.scoreDistributions = new List <ScoreDistribution>();
            foreach (XmlNode item in node.ChildNodes)
            {
                if ("extension".Equals(item.Name.ToLowerInvariant()))
                {
                    // TODO : implement extension
                    //root.Nodes.Add(Node.loadFromXmlNode(item));
                }
                else if ("node".Equals(item.Name.ToLowerInvariant()))
                {
                    root.Nodes.Add(Node.loadFromXmlNode(item));
                }
                else if ("simplepredicate".Equals(item.Name.ToLowerInvariant()))
                {
                    root.Predicate = SimplePredicate.loadFromXmlNode(item);
                }
                else if ("true".Equals(item.Name.ToLowerInvariant()))
                {
                    root.Predicate = new TruePredicate();
                }
                else if ("false".Equals(item.Name.ToLowerInvariant()))
                {
                    root.Predicate = new FalsePredicate();
                }
                else if ("compoundpredicate".Equals(item.Name.ToLowerInvariant()))
                {
                    root.Predicate = CompoundPredicate.loadFromXmlNode(item);
                }
                else if ("simplesetpredicate".Equals(item.Name.ToLowerInvariant()))
                {
                    root.Predicate = SimpleSetPredicate.loadFromXmlNode(item);
                }
                else if ("scoredistribution".Equals(item.Name.ToLowerInvariant()))
                {
                    root.ScoreDistributions.Add(ScoreDistribution.loadFromXmlNode(item));
                }
                else
                {
                    throw new NotImplementedException();
                }
            }

            return(root);
        }