System\Xml\BinaryXml\XmlBinaryReader.cs (783)
276private BinXmlToken _token;
339_token = BinXmlToken.Error;
803_token = BinXmlToken.Element;
805_token = BinXmlToken.XmlDecl;
807_token = BinXmlToken.DocType;
842BinXmlToken tok = RescanNextToken();
843if (BinXmlToken.Attr == tok || BinXmlToken.EndAttrs == tok)
854_token = BinXmlToken.Error;
878_token = BinXmlToken.Error;
1013BinXmlToken token = RescanNextToken();
1014if (BinXmlToken.Attr == token || BinXmlToken.EndAttrs == token)
1070case BinXmlToken.XSD_BOOLEAN:
1074case BinXmlToken.SQL_BIT:
1075case BinXmlToken.SQL_TINYINT:
1076case BinXmlToken.SQL_SMALLINT:
1077case BinXmlToken.SQL_INT:
1078case BinXmlToken.SQL_BIGINT:
1079case BinXmlToken.SQL_REAL:
1080case BinXmlToken.SQL_FLOAT:
1081case BinXmlToken.SQL_MONEY:
1082case BinXmlToken.SQL_SMALLMONEY:
1083case BinXmlToken.SQL_DATETIME:
1084case BinXmlToken.SQL_SMALLDATETIME:
1085case BinXmlToken.SQL_DECIMAL:
1086case BinXmlToken.SQL_NUMERIC:
1087case BinXmlToken.XSD_DECIMAL:
1088case BinXmlToken.SQL_UUID:
1089case BinXmlToken.SQL_VARBINARY:
1090case BinXmlToken.SQL_BINARY:
1091case BinXmlToken.SQL_IMAGE:
1092case BinXmlToken.SQL_UDT:
1093case BinXmlToken.XSD_KATMAI_DATE:
1094case BinXmlToken.XSD_KATMAI_DATETIME:
1095case BinXmlToken.XSD_KATMAI_TIME:
1096case BinXmlToken.XSD_KATMAI_DATEOFFSET:
1097case BinXmlToken.XSD_KATMAI_DATETIMEOFFSET:
1098case BinXmlToken.XSD_KATMAI_TIMEOFFSET:
1099case BinXmlToken.XSD_BINHEX:
1100case BinXmlToken.XSD_BASE64:
1101case BinXmlToken.XSD_TIME:
1102case BinXmlToken.XSD_DATETIME:
1103case BinXmlToken.XSD_DATE:
1104case BinXmlToken.XSD_BYTE:
1105case BinXmlToken.XSD_UNSIGNEDSHORT:
1106case BinXmlToken.XSD_UNSIGNEDINT:
1107case BinXmlToken.XSD_UNSIGNEDLONG:
1108case BinXmlToken.XSD_QNAME:
1111case BinXmlToken.SQL_CHAR:
1112case BinXmlToken.SQL_VARCHAR:
1113case BinXmlToken.SQL_TEXT:
1114case BinXmlToken.SQL_NCHAR:
1115case BinXmlToken.SQL_NVARCHAR:
1116case BinXmlToken.SQL_NTEXT:
1119case BinXmlToken.Element:
1120case BinXmlToken.EndElem:
1160case BinXmlToken.SQL_DATETIME:
1161case BinXmlToken.SQL_SMALLDATETIME:
1162case BinXmlToken.XSD_TIME:
1163case BinXmlToken.XSD_DATETIME:
1164case BinXmlToken.XSD_DATE:
1165case BinXmlToken.XSD_KATMAI_DATE:
1166case BinXmlToken.XSD_KATMAI_DATETIME:
1167case BinXmlToken.XSD_KATMAI_TIME:
1168case BinXmlToken.XSD_KATMAI_DATEOFFSET:
1169case BinXmlToken.XSD_KATMAI_DATETIMEOFFSET:
1170case BinXmlToken.XSD_KATMAI_TIMEOFFSET:
1174case BinXmlToken.SQL_BIT:
1175case BinXmlToken.SQL_TINYINT:
1176case BinXmlToken.SQL_SMALLINT:
1177case BinXmlToken.SQL_INT:
1178case BinXmlToken.SQL_BIGINT:
1179case BinXmlToken.SQL_REAL:
1180case BinXmlToken.SQL_FLOAT:
1181case BinXmlToken.SQL_MONEY:
1182case BinXmlToken.SQL_SMALLMONEY:
1183case BinXmlToken.SQL_DECIMAL:
1184case BinXmlToken.SQL_NUMERIC:
1185case BinXmlToken.XSD_DECIMAL:
1186case BinXmlToken.SQL_UUID:
1187case BinXmlToken.SQL_VARBINARY:
1188case BinXmlToken.SQL_BINARY:
1189case BinXmlToken.SQL_IMAGE:
1190case BinXmlToken.SQL_UDT:
1191case BinXmlToken.XSD_BINHEX:
1192case BinXmlToken.XSD_BASE64:
1193case BinXmlToken.XSD_BOOLEAN:
1194case BinXmlToken.XSD_BYTE:
1195case BinXmlToken.XSD_UNSIGNEDSHORT:
1196case BinXmlToken.XSD_UNSIGNEDINT:
1197case BinXmlToken.XSD_UNSIGNEDLONG:
1198case BinXmlToken.XSD_QNAME:
1201case BinXmlToken.SQL_CHAR:
1202case BinXmlToken.SQL_VARCHAR:
1203case BinXmlToken.SQL_TEXT:
1204case BinXmlToken.SQL_NCHAR:
1205case BinXmlToken.SQL_NVARCHAR:
1206case BinXmlToken.SQL_NTEXT:
1209case BinXmlToken.Element:
1210case BinXmlToken.EndElem:
1255case BinXmlToken.SQL_REAL:
1256case BinXmlToken.SQL_FLOAT:
1260case BinXmlToken.SQL_BIT:
1261case BinXmlToken.SQL_TINYINT:
1262case BinXmlToken.SQL_SMALLINT:
1263case BinXmlToken.SQL_INT:
1264case BinXmlToken.SQL_BIGINT:
1265case BinXmlToken.SQL_MONEY:
1266case BinXmlToken.SQL_SMALLMONEY:
1267case BinXmlToken.SQL_DATETIME:
1268case BinXmlToken.SQL_SMALLDATETIME:
1269case BinXmlToken.SQL_DECIMAL:
1270case BinXmlToken.SQL_NUMERIC:
1271case BinXmlToken.XSD_DECIMAL:
1272case BinXmlToken.SQL_UUID:
1273case BinXmlToken.SQL_VARBINARY:
1274case BinXmlToken.SQL_BINARY:
1275case BinXmlToken.SQL_IMAGE:
1276case BinXmlToken.SQL_UDT:
1277case BinXmlToken.XSD_KATMAI_DATE:
1278case BinXmlToken.XSD_KATMAI_DATETIME:
1279case BinXmlToken.XSD_KATMAI_TIME:
1280case BinXmlToken.XSD_KATMAI_DATEOFFSET:
1281case BinXmlToken.XSD_KATMAI_DATETIMEOFFSET:
1282case BinXmlToken.XSD_KATMAI_TIMEOFFSET:
1283case BinXmlToken.XSD_BINHEX:
1284case BinXmlToken.XSD_BASE64:
1285case BinXmlToken.XSD_BOOLEAN:
1286case BinXmlToken.XSD_TIME:
1287case BinXmlToken.XSD_DATETIME:
1288case BinXmlToken.XSD_DATE:
1289case BinXmlToken.XSD_BYTE:
1290case BinXmlToken.XSD_UNSIGNEDSHORT:
1291case BinXmlToken.XSD_UNSIGNEDINT:
1292case BinXmlToken.XSD_UNSIGNEDLONG:
1293case BinXmlToken.XSD_QNAME:
1296case BinXmlToken.SQL_CHAR:
1297case BinXmlToken.SQL_VARCHAR:
1298case BinXmlToken.SQL_TEXT:
1299case BinXmlToken.SQL_NCHAR:
1300case BinXmlToken.SQL_NVARCHAR:
1301case BinXmlToken.SQL_NTEXT:
1304case BinXmlToken.Element:
1305case BinXmlToken.EndElem:
1350case BinXmlToken.SQL_REAL:
1351case BinXmlToken.SQL_FLOAT:
1355case BinXmlToken.SQL_BIT:
1356case BinXmlToken.SQL_TINYINT:
1357case BinXmlToken.SQL_SMALLINT:
1358case BinXmlToken.SQL_INT:
1359case BinXmlToken.SQL_BIGINT:
1360case BinXmlToken.SQL_MONEY:
1361case BinXmlToken.SQL_SMALLMONEY:
1362case BinXmlToken.SQL_DATETIME:
1363case BinXmlToken.SQL_SMALLDATETIME:
1364case BinXmlToken.SQL_DECIMAL:
1365case BinXmlToken.SQL_NUMERIC:
1366case BinXmlToken.XSD_DECIMAL:
1367case BinXmlToken.SQL_UUID:
1368case BinXmlToken.SQL_VARBINARY:
1369case BinXmlToken.SQL_BINARY:
1370case BinXmlToken.SQL_IMAGE:
1371case BinXmlToken.SQL_UDT:
1372case BinXmlToken.XSD_KATMAI_DATE:
1373case BinXmlToken.XSD_KATMAI_DATETIME:
1374case BinXmlToken.XSD_KATMAI_TIME:
1375case BinXmlToken.XSD_KATMAI_DATEOFFSET:
1376case BinXmlToken.XSD_KATMAI_DATETIMEOFFSET:
1377case BinXmlToken.XSD_KATMAI_TIMEOFFSET:
1378case BinXmlToken.XSD_BINHEX:
1379case BinXmlToken.XSD_BASE64:
1380case BinXmlToken.XSD_BOOLEAN:
1381case BinXmlToken.XSD_TIME:
1382case BinXmlToken.XSD_DATETIME:
1383case BinXmlToken.XSD_DATE:
1384case BinXmlToken.XSD_BYTE:
1385case BinXmlToken.XSD_UNSIGNEDSHORT:
1386case BinXmlToken.XSD_UNSIGNEDINT:
1387case BinXmlToken.XSD_UNSIGNEDLONG:
1388case BinXmlToken.XSD_QNAME:
1391case BinXmlToken.SQL_CHAR:
1392case BinXmlToken.SQL_VARCHAR:
1393case BinXmlToken.SQL_TEXT:
1394case BinXmlToken.SQL_NCHAR:
1395case BinXmlToken.SQL_NVARCHAR:
1396case BinXmlToken.SQL_NTEXT:
1399case BinXmlToken.Element:
1400case BinXmlToken.EndElem:
1445case BinXmlToken.SQL_BIT:
1446case BinXmlToken.SQL_TINYINT:
1447case BinXmlToken.SQL_SMALLINT:
1448case BinXmlToken.SQL_INT:
1449case BinXmlToken.SQL_BIGINT:
1450case BinXmlToken.SQL_MONEY:
1451case BinXmlToken.SQL_SMALLMONEY:
1452case BinXmlToken.SQL_DECIMAL:
1453case BinXmlToken.SQL_NUMERIC:
1454case BinXmlToken.XSD_DECIMAL:
1455case BinXmlToken.XSD_BYTE:
1456case BinXmlToken.XSD_UNSIGNEDSHORT:
1457case BinXmlToken.XSD_UNSIGNEDINT:
1458case BinXmlToken.XSD_UNSIGNEDLONG:
1462case BinXmlToken.SQL_REAL:
1463case BinXmlToken.SQL_FLOAT:
1464case BinXmlToken.SQL_DATETIME:
1465case BinXmlToken.SQL_SMALLDATETIME:
1466case BinXmlToken.SQL_UUID:
1467case BinXmlToken.SQL_VARBINARY:
1468case BinXmlToken.SQL_BINARY:
1469case BinXmlToken.SQL_IMAGE:
1470case BinXmlToken.SQL_UDT:
1471case BinXmlToken.XSD_KATMAI_DATE:
1472case BinXmlToken.XSD_KATMAI_DATETIME:
1473case BinXmlToken.XSD_KATMAI_TIME:
1474case BinXmlToken.XSD_KATMAI_DATEOFFSET:
1475case BinXmlToken.XSD_KATMAI_DATETIMEOFFSET:
1476case BinXmlToken.XSD_KATMAI_TIMEOFFSET:
1477case BinXmlToken.XSD_BINHEX:
1478case BinXmlToken.XSD_BASE64:
1479case BinXmlToken.XSD_BOOLEAN:
1480case BinXmlToken.XSD_TIME:
1481case BinXmlToken.XSD_DATETIME:
1482case BinXmlToken.XSD_DATE:
1483case BinXmlToken.XSD_QNAME:
1486case BinXmlToken.SQL_CHAR:
1487case BinXmlToken.SQL_VARCHAR:
1488case BinXmlToken.SQL_TEXT:
1489case BinXmlToken.SQL_NCHAR:
1490case BinXmlToken.SQL_NVARCHAR:
1491case BinXmlToken.SQL_NTEXT:
1494case BinXmlToken.Element:
1495case BinXmlToken.EndElem:
1540case BinXmlToken.SQL_BIT:
1541case BinXmlToken.SQL_TINYINT:
1542case BinXmlToken.SQL_SMALLINT:
1543case BinXmlToken.SQL_INT:
1544case BinXmlToken.SQL_BIGINT:
1545case BinXmlToken.SQL_MONEY:
1546case BinXmlToken.SQL_SMALLMONEY:
1547case BinXmlToken.SQL_DECIMAL:
1548case BinXmlToken.SQL_NUMERIC:
1549case BinXmlToken.XSD_DECIMAL:
1550case BinXmlToken.XSD_BYTE:
1551case BinXmlToken.XSD_UNSIGNEDSHORT:
1552case BinXmlToken.XSD_UNSIGNEDINT:
1553case BinXmlToken.XSD_UNSIGNEDLONG:
1557case BinXmlToken.SQL_REAL:
1558case BinXmlToken.SQL_FLOAT:
1559case BinXmlToken.SQL_DATETIME:
1560case BinXmlToken.SQL_SMALLDATETIME:
1561case BinXmlToken.SQL_UUID:
1562case BinXmlToken.SQL_VARBINARY:
1563case BinXmlToken.SQL_BINARY:
1564case BinXmlToken.SQL_IMAGE:
1565case BinXmlToken.SQL_UDT:
1566case BinXmlToken.XSD_KATMAI_DATE:
1567case BinXmlToken.XSD_KATMAI_DATETIME:
1568case BinXmlToken.XSD_KATMAI_TIME:
1569case BinXmlToken.XSD_KATMAI_DATEOFFSET:
1570case BinXmlToken.XSD_KATMAI_DATETIMEOFFSET:
1571case BinXmlToken.XSD_KATMAI_TIMEOFFSET:
1572case BinXmlToken.XSD_BINHEX:
1573case BinXmlToken.XSD_BASE64:
1574case BinXmlToken.XSD_BOOLEAN:
1575case BinXmlToken.XSD_TIME:
1576case BinXmlToken.XSD_DATETIME:
1577case BinXmlToken.XSD_DATE:
1578case BinXmlToken.XSD_QNAME:
1581case BinXmlToken.SQL_CHAR:
1582case BinXmlToken.SQL_VARCHAR:
1583case BinXmlToken.SQL_TEXT:
1584case BinXmlToken.SQL_NCHAR:
1585case BinXmlToken.SQL_NVARCHAR:
1586case BinXmlToken.SQL_NTEXT:
1589case BinXmlToken.Element:
1590case BinXmlToken.EndElem:
1635case BinXmlToken.SQL_BIT:
1636case BinXmlToken.SQL_TINYINT:
1637case BinXmlToken.SQL_SMALLINT:
1638case BinXmlToken.SQL_INT:
1639case BinXmlToken.SQL_BIGINT:
1640case BinXmlToken.SQL_MONEY:
1641case BinXmlToken.SQL_SMALLMONEY:
1642case BinXmlToken.SQL_DECIMAL:
1643case BinXmlToken.SQL_NUMERIC:
1644case BinXmlToken.XSD_DECIMAL:
1645case BinXmlToken.XSD_BYTE:
1646case BinXmlToken.XSD_UNSIGNEDSHORT:
1647case BinXmlToken.XSD_UNSIGNEDINT:
1648case BinXmlToken.XSD_UNSIGNEDLONG:
1652case BinXmlToken.SQL_REAL:
1653case BinXmlToken.SQL_FLOAT:
1654case BinXmlToken.SQL_DATETIME:
1655case BinXmlToken.SQL_SMALLDATETIME:
1656case BinXmlToken.SQL_UUID:
1657case BinXmlToken.SQL_VARBINARY:
1658case BinXmlToken.SQL_BINARY:
1659case BinXmlToken.SQL_IMAGE:
1660case BinXmlToken.SQL_UDT:
1661case BinXmlToken.XSD_KATMAI_DATE:
1662case BinXmlToken.XSD_KATMAI_DATETIME:
1663case BinXmlToken.XSD_KATMAI_TIME:
1664case BinXmlToken.XSD_KATMAI_DATEOFFSET:
1665case BinXmlToken.XSD_KATMAI_DATETIMEOFFSET:
1666case BinXmlToken.XSD_KATMAI_TIMEOFFSET:
1667case BinXmlToken.XSD_BINHEX:
1668case BinXmlToken.XSD_BASE64:
1669case BinXmlToken.XSD_BOOLEAN:
1670case BinXmlToken.XSD_TIME:
1671case BinXmlToken.XSD_DATETIME:
1672case BinXmlToken.XSD_DATE:
1673case BinXmlToken.XSD_QNAME:
1676case BinXmlToken.SQL_CHAR:
1677case BinXmlToken.SQL_VARCHAR:
1678case BinXmlToken.SQL_TEXT:
1679case BinXmlToken.SQL_NCHAR:
1680case BinXmlToken.SQL_NVARCHAR:
1681case BinXmlToken.SQL_NTEXT:
1684case BinXmlToken.Element:
1685case BinXmlToken.EndElem:
1879private void VerifyVersion(int requiredVersion, BinXmlToken token)
2167private BinXmlToken PeekToken()
2172return BinXmlToken.EOF;
2173return (BinXmlToken)_data[_pos];
2176private BinXmlToken ReadToken()
2181return BinXmlToken.EOF;
2182return (BinXmlToken)_data[_pos++];
2185private BinXmlToken NextToken2(BinXmlToken token)
2191case BinXmlToken.Name:
2194case BinXmlToken.QName:
2197case BinXmlToken.NmFlush:
2200case BinXmlToken.Extn:
2210private BinXmlToken NextToken1()
2212BinXmlToken token;
2218token = (BinXmlToken)_data[pos];
2225if (token >= BinXmlToken.NmFlush
2226&& token <= BinXmlToken.Name)
2231private BinXmlToken NextToken()
2236BinXmlToken t = (BinXmlToken)_data[pos];
2237if (!(t >= BinXmlToken.NmFlush && t <= BinXmlToken.Name))
2247private BinXmlToken PeekNextToken()
2249BinXmlToken token = NextToken();
2250if (BinXmlToken.EOF != token)
2256private BinXmlToken RescanNextToken()
2258BinXmlToken token;
2264case BinXmlToken.Name:
2270case BinXmlToken.QName:
2275case BinXmlToken.Extn:
2281case BinXmlToken.NmFlush:
2352BinXmlToken token = RescanNextToken();
2353if (BinXmlToken.Attr == token || BinXmlToken.EndAttrs == token)
2402_token = BinXmlToken.Attr;
2540if (BinXmlToken.XmlDecl == PeekToken())
2545if (BinXmlToken.Encoding == PeekToken())
2585BinXmlToken token;
2593while (BinXmlToken.EndAttrs != (token = NextToken()))
2595if (BinXmlToken.Attr == token)
2757Debug.Assert(_token == BinXmlToken.CData, "this.token == BinXmlToken.CData");
2760while (PeekToken() == BinXmlToken.CData)
2778case BinXmlToken.CData:
2784case BinXmlToken.EndCData:
2836case BinXmlToken.EOF:
2842case BinXmlToken.Element:
2846case BinXmlToken.EndElem:
2850case BinXmlToken.DocType:
2859case BinXmlToken.PI:
2865case BinXmlToken.Comment:
2871case BinXmlToken.CData:
2875case BinXmlToken.Nest:
2881case BinXmlToken.EndNest:
2887case BinXmlToken.XmlText:
2892case BinXmlToken.SQL_BIT:
2893case BinXmlToken.SQL_TINYINT:
2894case BinXmlToken.SQL_SMALLINT:
2895case BinXmlToken.SQL_INT:
2896case BinXmlToken.SQL_BIGINT:
2897case BinXmlToken.SQL_REAL:
2898case BinXmlToken.SQL_FLOAT:
2899case BinXmlToken.SQL_MONEY:
2900case BinXmlToken.SQL_SMALLMONEY:
2901case BinXmlToken.SQL_DATETIME:
2902case BinXmlToken.SQL_SMALLDATETIME:
2903case BinXmlToken.SQL_DECIMAL:
2904case BinXmlToken.SQL_NUMERIC:
2905case BinXmlToken.XSD_DECIMAL:
2906case BinXmlToken.SQL_UUID:
2907case BinXmlToken.SQL_VARBINARY:
2908case BinXmlToken.SQL_BINARY:
2909case BinXmlToken.SQL_IMAGE:
2910case BinXmlToken.SQL_UDT:
2911case BinXmlToken.XSD_KATMAI_DATE:
2912case BinXmlToken.XSD_KATMAI_DATETIME:
2913case BinXmlToken.XSD_KATMAI_TIME:
2914case BinXmlToken.XSD_KATMAI_DATEOFFSET:
2915case BinXmlToken.XSD_KATMAI_DATETIMEOFFSET:
2916case BinXmlToken.XSD_KATMAI_TIMEOFFSET:
2917case BinXmlToken.XSD_BINHEX:
2918case BinXmlToken.XSD_BASE64:
2919case BinXmlToken.SQL_CHAR:
2920case BinXmlToken.SQL_VARCHAR:
2921case BinXmlToken.SQL_TEXT:
2922case BinXmlToken.SQL_NCHAR:
2923case BinXmlToken.SQL_NVARCHAR:
2924case BinXmlToken.SQL_NTEXT:
2925case BinXmlToken.XSD_BOOLEAN:
2926case BinXmlToken.XSD_TIME:
2927case BinXmlToken.XSD_DATETIME:
2928case BinXmlToken.XSD_DATE:
2929case BinXmlToken.XSD_BYTE:
2930case BinXmlToken.XSD_UNSIGNEDSHORT:
2931case BinXmlToken.XSD_UNSIGNEDINT:
2932case BinXmlToken.XSD_UNSIGNEDLONG:
2933case BinXmlToken.XSD_QNAME:
2948private void ImplReadData(BinXmlToken tokenType)
2955case BinXmlToken.SQL_CHAR:
2956case BinXmlToken.SQL_VARCHAR:
2957case BinXmlToken.SQL_TEXT:
2958case BinXmlToken.SQL_NCHAR:
2959case BinXmlToken.SQL_NVARCHAR:
2960case BinXmlToken.SQL_NTEXT:
2973BinXmlToken tNext = PeekNextToken();
2976case BinXmlToken.SQL_BIT:
2977case BinXmlToken.SQL_TINYINT:
2978case BinXmlToken.SQL_SMALLINT:
2979case BinXmlToken.SQL_INT:
2980case BinXmlToken.SQL_BIGINT:
2981case BinXmlToken.SQL_REAL:
2982case BinXmlToken.SQL_FLOAT:
2983case BinXmlToken.SQL_MONEY:
2984case BinXmlToken.SQL_SMALLMONEY:
2985case BinXmlToken.SQL_DATETIME:
2986case BinXmlToken.SQL_SMALLDATETIME:
2987case BinXmlToken.SQL_DECIMAL:
2988case BinXmlToken.SQL_NUMERIC:
2989case BinXmlToken.XSD_DECIMAL:
2990case BinXmlToken.SQL_UUID:
2991case BinXmlToken.SQL_VARBINARY:
2992case BinXmlToken.SQL_BINARY:
2993case BinXmlToken.SQL_IMAGE:
2994case BinXmlToken.SQL_UDT:
2995case BinXmlToken.XSD_KATMAI_DATE:
2996case BinXmlToken.XSD_KATMAI_DATETIME:
2997case BinXmlToken.XSD_KATMAI_TIME:
2998case BinXmlToken.XSD_KATMAI_DATEOFFSET:
2999case BinXmlToken.XSD_KATMAI_DATETIMEOFFSET:
3000case BinXmlToken.XSD_KATMAI_TIMEOFFSET:
3001case BinXmlToken.XSD_BINHEX:
3002case BinXmlToken.XSD_BASE64:
3003case BinXmlToken.SQL_CHAR:
3004case BinXmlToken.SQL_VARCHAR:
3005case BinXmlToken.SQL_TEXT:
3006case BinXmlToken.SQL_NCHAR:
3007case BinXmlToken.SQL_NVARCHAR:
3008case BinXmlToken.SQL_NTEXT:
3009case BinXmlToken.XSD_BOOLEAN:
3010case BinXmlToken.XSD_TIME:
3011case BinXmlToken.XSD_DATETIME:
3012case BinXmlToken.XSD_DATE:
3013case BinXmlToken.XSD_BYTE:
3014case BinXmlToken.XSD_UNSIGNEDSHORT:
3015case BinXmlToken.XSD_UNSIGNEDINT:
3016case BinXmlToken.XSD_UNSIGNEDLONG:
3017case BinXmlToken.XSD_QNAME:
3050BinXmlToken t = PeekNextToken();
3051if (BinXmlToken.Attr == t)
3057if (BinXmlToken.EndElem == t)
3062else if (BinXmlToken.SQL_NVARCHAR == t)
3073if (BinXmlToken.EndElem != (BinXmlToken)ReadByte())
3124if (BinXmlToken.System == PeekToken())
3129if (BinXmlToken.Public == PeekToken())
3134if (BinXmlToken.Subset == PeekToken())
3269map[(int)BinXmlToken.XSD_BOOLEAN] = typeof(bool);
3270map[(int)BinXmlToken.SQL_TINYINT] = typeof(byte);
3271map[(int)BinXmlToken.XSD_BYTE] = typeof(sbyte);
3272map[(int)BinXmlToken.SQL_SMALLINT] = typeof(short);
3273map[(int)BinXmlToken.XSD_UNSIGNEDSHORT] = typeof(ushort);
3274map[(int)BinXmlToken.XSD_UNSIGNEDINT] = typeof(uint);
3275map[(int)BinXmlToken.SQL_REAL] = typeof(float);
3276map[(int)BinXmlToken.SQL_FLOAT] = typeof(double);
3277map[(int)BinXmlToken.SQL_BIGINT] = typeof(long);
3278map[(int)BinXmlToken.XSD_UNSIGNEDLONG] = typeof(ulong);
3279map[(int)BinXmlToken.XSD_QNAME] = typeof(XmlQualifiedName);
3281map[(int)BinXmlToken.SQL_BIT] = TypeOfInt32;
3282map[(int)BinXmlToken.SQL_INT] = TypeOfInt32;
3284map[(int)BinXmlToken.SQL_SMALLMONEY] = TypeOfDecimal;
3285map[(int)BinXmlToken.SQL_MONEY] = TypeOfDecimal;
3286map[(int)BinXmlToken.SQL_DECIMAL] = TypeOfDecimal;
3287map[(int)BinXmlToken.SQL_NUMERIC] = TypeOfDecimal;
3288map[(int)BinXmlToken.XSD_DECIMAL] = TypeOfDecimal;
3290map[(int)BinXmlToken.SQL_SMALLDATETIME] = TypeOfDateTime;
3291map[(int)BinXmlToken.SQL_DATETIME] = TypeOfDateTime;
3292map[(int)BinXmlToken.XSD_TIME] = TypeOfDateTime;
3293map[(int)BinXmlToken.XSD_DATETIME] = TypeOfDateTime;
3294map[(int)BinXmlToken.XSD_DATE] = TypeOfDateTime;
3295map[(int)BinXmlToken.XSD_KATMAI_DATE] = TypeOfDateTime;
3296map[(int)BinXmlToken.XSD_KATMAI_DATETIME] = TypeOfDateTime;
3297map[(int)BinXmlToken.XSD_KATMAI_TIME] = TypeOfDateTime;
3299map[(int)BinXmlToken.XSD_KATMAI_DATEOFFSET] = TypeOfDateTimeOffset;
3300map[(int)BinXmlToken.XSD_KATMAI_DATETIMEOFFSET] = TypeOfDateTimeOffset;
3301map[(int)BinXmlToken.XSD_KATMAI_TIMEOFFSET] = TypeOfDateTimeOffset;
3303map[(int)BinXmlToken.SQL_VARBINARY] = TypeOfByteArray;
3304map[(int)BinXmlToken.SQL_BINARY] = TypeOfByteArray;
3305map[(int)BinXmlToken.SQL_IMAGE] = TypeOfByteArray;
3306map[(int)BinXmlToken.SQL_UDT] = TypeOfByteArray;
3307map[(int)BinXmlToken.XSD_BINHEX] = TypeOfByteArray;
3308map[(int)BinXmlToken.XSD_BASE64] = TypeOfByteArray;
3310map[(int)BinXmlToken.SQL_CHAR] = TypeOfString;
3311map[(int)BinXmlToken.SQL_VARCHAR] = TypeOfString;
3312map[(int)BinXmlToken.SQL_TEXT] = TypeOfString;
3313map[(int)BinXmlToken.SQL_NCHAR] = TypeOfString;
3314map[(int)BinXmlToken.SQL_NVARCHAR] = TypeOfString;
3315map[(int)BinXmlToken.SQL_NTEXT] = TypeOfString;
3316map[(int)BinXmlToken.SQL_UUID] = TypeOfString;
3320private System.Type GetValueType(BinXmlToken token)
3331private void ReScanOverValue(BinXmlToken token)
3336private XmlNodeType ScanOverValue(BinXmlToken token, bool attr, bool checkChars)
3338if (token == BinXmlToken.SQL_NVARCHAR)
3368private XmlNodeType ScanOverAnyValue(BinXmlToken token, bool attr, bool checkChars)
3376case BinXmlToken.SQL_BIT:
3377case BinXmlToken.SQL_TINYINT:
3378case BinXmlToken.XSD_BOOLEAN:
3379case BinXmlToken.XSD_BYTE:
3385case BinXmlToken.SQL_SMALLINT:
3386case BinXmlToken.XSD_UNSIGNEDSHORT:
3392case BinXmlToken.SQL_INT:
3393case BinXmlToken.XSD_UNSIGNEDINT:
3394case BinXmlToken.SQL_REAL:
3395case BinXmlToken.SQL_SMALLMONEY:
3396case BinXmlToken.SQL_SMALLDATETIME:
3402case BinXmlToken.SQL_BIGINT:
3403case BinXmlToken.XSD_UNSIGNEDLONG:
3404case BinXmlToken.SQL_FLOAT:
3405case BinXmlToken.SQL_MONEY:
3406case BinXmlToken.SQL_DATETIME:
3407case BinXmlToken.XSD_TIME:
3408case BinXmlToken.XSD_DATETIME:
3409case BinXmlToken.XSD_DATE:
3415case BinXmlToken.SQL_UUID:
3421case BinXmlToken.SQL_DECIMAL:
3422case BinXmlToken.SQL_NUMERIC:
3423case BinXmlToken.XSD_DECIMAL:
3429case BinXmlToken.SQL_VARBINARY:
3430case BinXmlToken.SQL_BINARY:
3431case BinXmlToken.SQL_IMAGE:
3432case BinXmlToken.SQL_UDT:
3433case BinXmlToken.XSD_BINHEX:
3434case BinXmlToken.XSD_BASE64:
3440case BinXmlToken.SQL_CHAR:
3441case BinXmlToken.SQL_VARCHAR:
3442case BinXmlToken.SQL_TEXT:
3456case BinXmlToken.SQL_NVARCHAR:
3457case BinXmlToken.SQL_NCHAR:
3458case BinXmlToken.SQL_NTEXT:
3459return ScanOverValue(BinXmlToken.SQL_NVARCHAR, attr, checkChars);
3461case BinXmlToken.XSD_QNAME:
3466case BinXmlToken.XSD_KATMAI_DATE:
3467case BinXmlToken.XSD_KATMAI_DATETIME:
3468case BinXmlToken.XSD_KATMAI_TIME:
3469case BinXmlToken.XSD_KATMAI_DATEOFFSET:
3470case BinXmlToken.XSD_KATMAI_DATETIMEOFFSET:
3471case BinXmlToken.XSD_KATMAI_TIMEOFFSET:
3575private int GetXsdKatmaiTokenLength(BinXmlToken token)
3580case BinXmlToken.XSD_KATMAI_DATE:
3583case BinXmlToken.XSD_KATMAI_TIME:
3584case BinXmlToken.XSD_KATMAI_DATETIME:
3589case BinXmlToken.XSD_KATMAI_DATEOFFSET:
3590case BinXmlToken.XSD_KATMAI_TIMEOFFSET:
3591case BinXmlToken.XSD_KATMAI_DATETIMEOFFSET:
3615case BinXmlToken.SQL_BIT:
3616case BinXmlToken.SQL_TINYINT:
3622case BinXmlToken.XSD_BYTE:
3628case BinXmlToken.SQL_SMALLINT:
3631case BinXmlToken.SQL_INT:
3634case BinXmlToken.SQL_BIGINT:
3637case BinXmlToken.XSD_UNSIGNEDSHORT:
3640case BinXmlToken.XSD_UNSIGNEDINT:
3643case BinXmlToken.XSD_UNSIGNEDLONG:
3649case BinXmlToken.SQL_REAL:
3650case BinXmlToken.SQL_FLOAT:
3656case BinXmlToken.SQL_MONEY:
3657case BinXmlToken.SQL_SMALLMONEY:
3658case BinXmlToken.SQL_DECIMAL:
3659case BinXmlToken.SQL_NUMERIC:
3660case BinXmlToken.XSD_DECIMAL:
3673if (BinXmlToken.XSD_UNSIGNEDLONG == _token)
3689case BinXmlToken.SQL_BIT:
3690case BinXmlToken.SQL_TINYINT:
3691case BinXmlToken.SQL_SMALLINT:
3692case BinXmlToken.SQL_INT:
3693case BinXmlToken.SQL_BIGINT:
3694case BinXmlToken.XSD_BYTE:
3695case BinXmlToken.XSD_UNSIGNEDSHORT:
3696case BinXmlToken.XSD_UNSIGNEDINT:
3699case BinXmlToken.XSD_UNSIGNEDLONG:
3702case BinXmlToken.SQL_REAL:
3705case BinXmlToken.SQL_FLOAT:
3708case BinXmlToken.SQL_SMALLMONEY:
3713case BinXmlToken.SQL_MONEY:
3719case BinXmlToken.XSD_DECIMAL:
3720case BinXmlToken.SQL_DECIMAL:
3721case BinXmlToken.SQL_NUMERIC:
3723BinXmlSqlDecimal v = new BinXmlSqlDecimal(_data, _tokDataPos, _token == BinXmlToken.XSD_DECIMAL);
3737case BinXmlToken.SQL_BIT:
3738case BinXmlToken.SQL_TINYINT:
3739case BinXmlToken.SQL_SMALLINT:
3740case BinXmlToken.SQL_INT:
3741case BinXmlToken.SQL_BIGINT:
3742case BinXmlToken.XSD_BYTE:
3743case BinXmlToken.XSD_UNSIGNEDSHORT:
3744case BinXmlToken.XSD_UNSIGNEDINT:
3747case BinXmlToken.XSD_UNSIGNEDLONG:
3750case BinXmlToken.SQL_REAL:
3753case BinXmlToken.SQL_FLOAT:
3756case BinXmlToken.SQL_SMALLMONEY:
3757case BinXmlToken.SQL_MONEY:
3758case BinXmlToken.XSD_DECIMAL:
3759case BinXmlToken.SQL_DECIMAL:
3760case BinXmlToken.SQL_NUMERIC:
3773case BinXmlToken.SQL_DATETIME:
3782case BinXmlToken.SQL_SMALLDATETIME:
3791case BinXmlToken.XSD_TIME:
3797case BinXmlToken.XSD_DATE:
3803case BinXmlToken.XSD_DATETIME:
3809case BinXmlToken.XSD_KATMAI_DATE:
3812case BinXmlToken.XSD_KATMAI_DATETIME:
3815case BinXmlToken.XSD_KATMAI_TIME:
3818case BinXmlToken.XSD_KATMAI_DATEOFFSET:
3821case BinXmlToken.XSD_KATMAI_DATETIMEOFFSET:
3824case BinXmlToken.XSD_KATMAI_TIMEOFFSET:
3837BinXmlToken.XSD_KATMAI_DATEOFFSET => BinXmlDateTime.XsdKatmaiDateOffsetToDateTimeOffset(_data, _tokDataPos),
3838BinXmlToken.XSD_KATMAI_DATETIMEOFFSET => BinXmlDateTime.XsdKatmaiDateTimeOffsetToDateTimeOffset(_data, _tokDataPos),
3839BinXmlToken.XSD_KATMAI_TIMEOFFSET => BinXmlDateTime.XsdKatmaiTimeOffsetToDateTimeOffset(_data, _tokDataPos),
3850case BinXmlToken.SQL_DATETIME:
3859case BinXmlToken.SQL_SMALLDATETIME:
3868case BinXmlToken.XSD_TIME:
3874case BinXmlToken.XSD_DATE:
3880case BinXmlToken.XSD_DATETIME:
3886case BinXmlToken.XSD_KATMAI_DATE:
3889case BinXmlToken.XSD_KATMAI_DATETIME:
3892case BinXmlToken.XSD_KATMAI_TIME:
3895case BinXmlToken.XSD_KATMAI_DATEOFFSET:
3898case BinXmlToken.XSD_KATMAI_DATETIMEOFFSET:
3901case BinXmlToken.XSD_KATMAI_TIMEOFFSET:
3909private string ValueAsString(BinXmlToken token)
3916case BinXmlToken.SQL_NCHAR:
3917case BinXmlToken.SQL_NVARCHAR:
3918case BinXmlToken.SQL_NTEXT:
3921case BinXmlToken.XSD_BOOLEAN:
3929case BinXmlToken.SQL_BIT:
3930case BinXmlToken.SQL_TINYINT:
3931case BinXmlToken.SQL_SMALLINT:
3932case BinXmlToken.SQL_INT:
3933case BinXmlToken.SQL_BIGINT:
3934case BinXmlToken.XSD_BYTE:
3935case BinXmlToken.XSD_UNSIGNEDSHORT:
3936case BinXmlToken.XSD_UNSIGNEDINT:
3939case BinXmlToken.XSD_UNSIGNEDLONG:
3942case BinXmlToken.SQL_REAL:
3945case BinXmlToken.SQL_FLOAT:
3948case BinXmlToken.SQL_UUID:
3959case BinXmlToken.SQL_SMALLMONEY:
3964case BinXmlToken.SQL_MONEY:
3970case BinXmlToken.XSD_DECIMAL:
3971case BinXmlToken.SQL_DECIMAL:
3972case BinXmlToken.SQL_NUMERIC:
3974BinXmlSqlDecimal v = new BinXmlSqlDecimal(_data, _tokDataPos, token == BinXmlToken.XSD_DECIMAL);
3978case BinXmlToken.SQL_CHAR:
3979case BinXmlToken.SQL_VARCHAR:
3980case BinXmlToken.SQL_TEXT:
3988case BinXmlToken.SQL_VARBINARY:
3989case BinXmlToken.SQL_BINARY:
3990case BinXmlToken.SQL_IMAGE:
3991case BinXmlToken.SQL_UDT:
3992case BinXmlToken.XSD_BASE64:
3997case BinXmlToken.XSD_BINHEX:
4000case BinXmlToken.SQL_DATETIME:
4001case BinXmlToken.SQL_SMALLDATETIME:
4002case BinXmlToken.XSD_TIME:
4003case BinXmlToken.XSD_DATE:
4004case BinXmlToken.XSD_DATETIME:
4005case BinXmlToken.XSD_KATMAI_DATE:
4006case BinXmlToken.XSD_KATMAI_DATETIME:
4007case BinXmlToken.XSD_KATMAI_TIME:
4008case BinXmlToken.XSD_KATMAI_DATEOFFSET:
4009case BinXmlToken.XSD_KATMAI_DATETIMEOFFSET:
4010case BinXmlToken.XSD_KATMAI_TIMEOFFSET:
4013case BinXmlToken.XSD_QNAME:
4036private object ValueAsObject(BinXmlToken token, bool returnInternalTypes)
4041case BinXmlToken.SQL_NCHAR:
4042case BinXmlToken.SQL_NVARCHAR:
4043case BinXmlToken.SQL_NTEXT:
4046case BinXmlToken.XSD_BOOLEAN:
4049case BinXmlToken.SQL_BIT:
4052case BinXmlToken.SQL_TINYINT:
4055case BinXmlToken.SQL_SMALLINT:
4058case BinXmlToken.SQL_INT:
4061case BinXmlToken.SQL_BIGINT:
4064case BinXmlToken.XSD_BYTE:
4070case BinXmlToken.XSD_UNSIGNEDSHORT:
4073case BinXmlToken.XSD_UNSIGNEDINT:
4076case BinXmlToken.XSD_UNSIGNEDLONG:
4079case BinXmlToken.SQL_REAL:
4082case BinXmlToken.SQL_FLOAT:
4085case BinXmlToken.SQL_UUID:
4096case BinXmlToken.SQL_SMALLMONEY:
4105case BinXmlToken.SQL_MONEY:
4114case BinXmlToken.XSD_DECIMAL:
4115case BinXmlToken.SQL_DECIMAL:
4116case BinXmlToken.SQL_NUMERIC:
4118BinXmlSqlDecimal v = new BinXmlSqlDecimal(_data, _tokDataPos, token == BinXmlToken.XSD_DECIMAL);
4125case BinXmlToken.SQL_CHAR:
4126case BinXmlToken.SQL_VARCHAR:
4127case BinXmlToken.SQL_TEXT:
4135case BinXmlToken.SQL_VARBINARY:
4136case BinXmlToken.SQL_BINARY:
4137case BinXmlToken.SQL_IMAGE:
4138case BinXmlToken.SQL_UDT:
4139case BinXmlToken.XSD_BASE64:
4140case BinXmlToken.XSD_BINHEX:
4147case BinXmlToken.SQL_DATETIME:
4148case BinXmlToken.SQL_SMALLDATETIME:
4149case BinXmlToken.XSD_TIME:
4150case BinXmlToken.XSD_DATE:
4151case BinXmlToken.XSD_DATETIME:
4152case BinXmlToken.XSD_KATMAI_DATE:
4153case BinXmlToken.XSD_KATMAI_DATETIME:
4154case BinXmlToken.XSD_KATMAI_TIME:
4157case BinXmlToken.XSD_KATMAI_DATEOFFSET:
4158case BinXmlToken.XSD_KATMAI_DATETIMEOFFSET:
4159case BinXmlToken.XSD_KATMAI_TIMEOFFSET:
4162case BinXmlToken.XSD_QNAME:
4182private object ValueAs(BinXmlToken token, Type returnType, IXmlNamespaceResolver? namespaceResolver)
4188case BinXmlToken.SQL_NCHAR:
4189case BinXmlToken.SQL_NVARCHAR:
4190case BinXmlToken.SQL_NTEXT:
4196case BinXmlToken.XSD_BOOLEAN:
4202case BinXmlToken.SQL_BIT:
4208case BinXmlToken.SQL_TINYINT:
4214case BinXmlToken.SQL_SMALLINT:
4221case BinXmlToken.SQL_INT:
4228case BinXmlToken.SQL_BIGINT:
4235case BinXmlToken.XSD_BYTE:
4242case BinXmlToken.XSD_UNSIGNEDSHORT:
4249case BinXmlToken.XSD_UNSIGNEDINT:
4256case BinXmlToken.XSD_UNSIGNEDLONG:
4263case BinXmlToken.SQL_REAL:
4270case BinXmlToken.SQL_FLOAT:
4277case BinXmlToken.SQL_UUID:
4282case BinXmlToken.SQL_SMALLMONEY:
4288case BinXmlToken.SQL_MONEY:
4294case BinXmlToken.XSD_DECIMAL:
4295case BinXmlToken.SQL_DECIMAL:
4296case BinXmlToken.SQL_NUMERIC:
4298(new BinXmlSqlDecimal(_data, _tokDataPos, token == BinXmlToken.XSD_DECIMAL)).ToDecimal(),
4302case BinXmlToken.SQL_CHAR:
4303case BinXmlToken.SQL_VARCHAR:
4304case BinXmlToken.SQL_TEXT:
4315case BinXmlToken.SQL_VARBINARY:
4316case BinXmlToken.SQL_BINARY:
4317case BinXmlToken.SQL_IMAGE:
4318case BinXmlToken.SQL_UDT:
4319case BinXmlToken.XSD_BASE64:
4320case BinXmlToken.XSD_BINHEX:
4324value = GetValueConverter(token == BinXmlToken.XSD_BINHEX ? XmlTypeCode.HexBinary : XmlTypeCode.Base64Binary).ChangeType(
4329case BinXmlToken.SQL_DATETIME:
4330case BinXmlToken.SQL_SMALLDATETIME:
4331case BinXmlToken.XSD_DATETIME:
4332case BinXmlToken.XSD_KATMAI_DATE:
4333case BinXmlToken.XSD_KATMAI_DATETIME:
4334case BinXmlToken.XSD_KATMAI_TIME:
4340case BinXmlToken.XSD_KATMAI_DATEOFFSET:
4341case BinXmlToken.XSD_KATMAI_DATETIMEOFFSET:
4342case BinXmlToken.XSD_KATMAI_TIMEOFFSET:
4348case BinXmlToken.XSD_TIME:
4354case BinXmlToken.XSD_DATE:
4360case BinXmlToken.XSD_QNAME:
4394private XmlException CreateUnexpectedTokenException(BinXmlToken token)