System.Xml.ValidateNames.ParseNCName C# (CSharp) Method

ParseNCName() private method

private ParseNCName ( string s, int offset ) : int
s string
offset int
return int
        internal static unsafe int ParseNCName(string s, int offset)
        {
            Debug.Assert(s != null && offset <= s.Length);

            // Quit if the first character is not a valid NCName starting character
            int i = offset;
            if (i < s.Length)
            {
                if (s_xmlCharType.IsStartNCNameSingleChar(s[i]))
                {
                    i++;
                }
#if XML10_FIFTH_EDITION
                else if (s_xmlCharType.IsNCNameSurrogateChar(s, i)) {
                    i += 2;
                }
#endif
                else
                {
                    return 0; // no valid StartNCName char
                }

                // Keep parsing until the end of string or an invalid NCName character is reached
                while (i < s.Length)
                {
                    if (s_xmlCharType.IsNCNameSingleChar(s[i]))
                    {
                        i++;
                    }
#if XML10_FIFTH_EDITION
                    else if (s_xmlCharType.IsNCNameSurrogateChar(s, i)) {
                        i += 2;
                    }
#endif
                    else
                    {
                        break;
                    }
                }
            }

            return i - offset;
        }

Same methods

ValidateNames::ParseNCName ( string s ) : int

Usage Example

        private void ValidateNCName(string ncname)
        {
            if (ncname.Length == 0)
            {
                throw new ArgumentException(SR.Xml_EmptyName);
            }
            int len = ValidateNames.ParseNCName(ncname, 0);

            if (len != ncname.Length)
            {
                throw new ArgumentException(string.Format(len == 0 ? SR.Xml_BadStartNameChar : SR.Xml_BadNameChar, XmlException.BuildCharExceptionArgs(ncname, len)));
            }
        }
All Usage Examples Of System.Xml.ValidateNames::ParseNCName