/// <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); }
/// <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); }