示例#1
0
 private void LoadControlDefinitions(XmlNode definitionsNode, List <ControlDefinition> controlDefinitionList)
 {
     using (this.StackFrame(definitionsNode))
     {
         int controlDefinitionIndex = 0;
         foreach (XmlNode n in definitionsNode.ChildNodes)
         {
             if (MatchNodeName(n, XmlTags.ControlNode))
             {
                 ControlDefinition def = LoadControlDefinition(n, controlDefinitionIndex++);
                 if (def != null)
                 {
                     controlDefinitionList.Add(def);
                 }
             }
             else
             {
                 ProcessUnknownNode(n);
             }
         }
     }
 }
示例#2
0
 private ControlDefinition LoadControlDefinition(System.Xml.XmlNode controlDefinitionNode, int index)
 {
     using (base.StackFrame(controlDefinitionNode, index))
     {
         bool flag = false;
         bool flag2 = false;
         ControlDefinition definition = new ControlDefinition();
         foreach (System.Xml.XmlNode node in controlDefinitionNode.ChildNodes)
         {
             if (base.MatchNodeName(node, "Name"))
             {
                 if (!flag)
                 {
                     flag = true;
                     definition.name = base.GetMandatoryInnerText(node);
                     if (definition.name == null)
                     {
                         base.ReportError(StringUtil.Format(FormatAndOutXmlLoadingStrings.NullControlName, base.ComputeCurrentXPath(), base.FilePath));
                         return null;
                     }
                 }
                 else
                 {
                     base.ProcessDuplicateNode(node);
                 }
             }
             else if (base.MatchNodeName(node, "CustomControl"))
             {
                 if (flag2)
                 {
                     base.ProcessDuplicateNode(node);
                     return null;
                 }
                 flag2 = true;
                 definition.controlBody = this.LoadComplexControl(node);
                 if (definition.controlBody == null)
                 {
                     return null;
                 }
             }
             else
             {
                 base.ProcessUnknownNode(node);
             }
         }
         if (definition.name == null)
         {
             base.ReportMissingNode("Name");
             return null;
         }
         if (definition.controlBody == null)
         {
             base.ReportMissingNode("CustomControl");
             return null;
         }
         return definition;
     }
 }
示例#3
0
        private ControlDefinition LoadControlDefinition(XmlNode controlDefinitionNode, int index)
        {
            using (this.StackFrame(controlDefinitionNode, index))
            {
                bool nameNodeFound    = false;      // cardinality 1
                bool controlNodeFound = false;      // cardinality 1

                ControlDefinition def = new ControlDefinition();

                foreach (XmlNode n in controlDefinitionNode.ChildNodes)
                {
                    if (MatchNodeName(n, XmlTags.NameNode))
                    {
                        if (nameNodeFound)
                        {
                            this.ProcessDuplicateNode(n);
                            continue;
                        }

                        nameNodeFound = true;
                        def.name      = GetMandatoryInnerText(n);
                        if (def.name == null)
                        {
                            //Error at XPath {0} in file {1}: Control cannot have a null Name.
                            this.ReportError(StringUtil.Format(FormatAndOutXmlLoadingStrings.NullControlName, ComputeCurrentXPath(), FilePath));
                            return(null); //fatal error
                        }
                    }
                    else if (MatchNodeName(n, XmlTags.ComplexControlNode))
                    {
                        // NOTE: for the time being we allow only complex control definitions to be loaded
                        if (controlNodeFound)
                        {
                            this.ProcessDuplicateNode(n);
                            return(null); //fatal
                        }

                        controlNodeFound = true;
                        def.controlBody  = LoadComplexControl(n);
                        if (def.controlBody == null)
                        {
                            return(null); //fatal error
                        }
                    }
                    else
                    {
                        this.ProcessUnknownNode(n);
                    }
                }

                if (def.name == null)
                {
                    this.ReportMissingNode(XmlTags.NameNode);
                    return(null); //fatal
                }

                if (def.controlBody == null)
                {
                    this.ReportMissingNode(XmlTags.ComplexControlNode);
                    return(null); //fatal
                }

                return(def);
            }
        }
示例#4
0
        private ControlDefinition LoadControlDefinition(XmlNode controlDefinitionNode, int index)
        {
            using (this.StackFrame(controlDefinitionNode, index))
            {
                bool nameNodeFound = false;         // cardinality 1
                bool controlNodeFound = false;         // cardinality 1

                ControlDefinition def = new ControlDefinition();

                foreach (XmlNode n in controlDefinitionNode.ChildNodes)
                {
                    if (MatchNodeName(n, XmlTags.NameNode))
                    {
                        if (nameNodeFound)
                        {
                            this.ProcessDuplicateNode(n);
                            continue;
                        }

                        nameNodeFound = true;
                        def.name = GetMandatoryInnerText(n);
                        if (def.name == null)
                        {
                            //Error at XPath {0} in file {1}: Control cannot have a null Name.
                            this.ReportError(StringUtil.Format(FormatAndOutXmlLoadingStrings.NullControlName, ComputeCurrentXPath(), FilePath));
                            return null; //fatal error
                        }
                    }
                    else if (MatchNodeName(n, XmlTags.ComplexControlNode))
                    {
                        // NOTE: for the time being we allow only complex control definitions to be loaded
                        if (controlNodeFound)
                        {
                            this.ProcessDuplicateNode(n);
                            return null; //fatal
                        }

                        controlNodeFound = true;
                        def.controlBody = LoadComplexControl(n);
                        if (def.controlBody == null)
                        {
                            return null; //fatal error
                        }
                    }
                    else
                    {
                        this.ProcessUnknownNode(n);
                    }
                }

                if (def.name == null)
                {
                    this.ReportMissingNode(XmlTags.NameNode);
                    return null; //fatal
                }

                if (def.controlBody == null)
                {
                    this.ReportMissingNode(XmlTags.ComplexControlNode);
                    return null; //fatal
                }

                return def;
            }
        }