Array.Copy (nameBuffer, arr, index);\r
nameBuffer = arr;\r
}\r
- if (c > 0x10000) {\r
- AppendNameChar ((c - 0x10000) / 0x400 + 0xD800, ref index);\r
- AppendNameChar ((c - 0x10000) % 0x400 + 0xDC00, ref index);\r
- }\r
- else\r
- nameBuffer [index++] = (char) c;\r
+ nameBuffer [index++] = (char) c;\r
}\r
\r
private string ReadTripleQuoted (char quoteChar)\r
return Token.Asterisk;\r
case '\\':\r
if (backslashed)\r
- return Token.ERROR;\r
+ return Token.BackSlash;\r
return ParseToken (true);\r
case '+':\r
return Token.Plus;\r
peekChar = '>';\r
goto default;\r
case '#':\r
-// tokenValue = ReadLine ();\r
+ // NOTE: This interpretation is expanded against the spec\r
+// if (ReadChar () != '#')\r
+// throw new RelaxngException ("Invalid character after '#'.");\r
+ tokenValue = ReadLine ();\r
// return Token.Documentation;\r
- ReadLine ();\r
return ParseToken (false);\r
case '\'':\r
case '\"':\r
} // else '' or ""\r
name = String.Empty;\r
}\r
- int invidx = XmlChar.IndexOfInvalid (name, true) ;\r
- if (invidx >= 0)\r
- throw new RelaxngException (String.Format ("Invalid XML character in compact syntax literal segment at {0:X}", (int) name [invidx]));\r
tokenValue = name;\r
return Token.LiteralSegment;\r
default:\r
}\r
tokenValue = name;\r
if (backslashed)\r
- return Token.QuotedIdentifier;\r
+ return Token.NCName;\r
switch (name) {\r
case "attribute":\r
isElement = false;\r