System.Xml.DocumentSchemaValidator.ValidateChildrenTillNextAncestor C# (CSharp) Méthode

ValidateChildrenTillNextAncestor() private méthode

private ValidateChildrenTillNextAncestor ( XmlNode parentNode, XmlNode childToStopAt ) : void
parentNode XmlNode
childToStopAt XmlNode
Résultat void
        private void ValidateChildrenTillNextAncestor(XmlNode parentNode, XmlNode childToStopAt)
        {
            XmlNode child;

            for (child = parentNode.FirstChild; child != null; child = child.NextSibling)
            {
                if (child == childToStopAt)
                {
                    break;
                }
                switch (child.NodeType)
                {
                    case XmlNodeType.EntityReference:
                        ValidateChildrenTillNextAncestor(child, childToStopAt);
                        break;

                    case XmlNodeType.Element: //Flat validation, do not drill down into children
                        ValidateSingleElement(child as XmlElement, true, null);
                        break;

                    case XmlNodeType.Text:
                    case XmlNodeType.CDATA:
                        _validator.ValidateText(child.Value);
                        break;

                    case XmlNodeType.Whitespace:
                    case XmlNodeType.SignificantWhitespace:
                        _validator.ValidateWhitespace(child.Value);
                        break;

                    case XmlNodeType.Comment:
                    case XmlNodeType.ProcessingInstruction:
                        break;

                    default:
                        throw new InvalidOperationException(SR.Format(SR.Xml_UnexpectedNodeType, new string[] { _currentNode.NodeType.ToString() }));
                }
            }
            Debug.Assert(child == childToStopAt);
        }