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:
3047BinXmlToken t = PeekNextToken();
3048if (BinXmlToken.Attr == t)
3054if (BinXmlToken.EndElem == t)
3059else if (BinXmlToken.SQL_NVARCHAR == t)
3070if (BinXmlToken.EndElem != (BinXmlToken)ReadByte())
3121if (BinXmlToken.System == PeekToken())
3126if (BinXmlToken.Public == PeekToken())
3131if (BinXmlToken.Subset == PeekToken())
3266map[(int)BinXmlToken.XSD_BOOLEAN] = typeof(bool);
3267map[(int)BinXmlToken.SQL_TINYINT] = typeof(byte);
3268map[(int)BinXmlToken.XSD_BYTE] = typeof(sbyte);
3269map[(int)BinXmlToken.SQL_SMALLINT] = typeof(short);
3270map[(int)BinXmlToken.XSD_UNSIGNEDSHORT] = typeof(ushort);
3271map[(int)BinXmlToken.XSD_UNSIGNEDINT] = typeof(uint);
3272map[(int)BinXmlToken.SQL_REAL] = typeof(float);
3273map[(int)BinXmlToken.SQL_FLOAT] = typeof(double);
3274map[(int)BinXmlToken.SQL_BIGINT] = typeof(long);
3275map[(int)BinXmlToken.XSD_UNSIGNEDLONG] = typeof(ulong);
3276map[(int)BinXmlToken.XSD_QNAME] = typeof(XmlQualifiedName);
3278map[(int)BinXmlToken.SQL_BIT] = TypeOfInt32;
3279map[(int)BinXmlToken.SQL_INT] = TypeOfInt32;
3281map[(int)BinXmlToken.SQL_SMALLMONEY] = TypeOfDecimal;
3282map[(int)BinXmlToken.SQL_MONEY] = TypeOfDecimal;
3283map[(int)BinXmlToken.SQL_DECIMAL] = TypeOfDecimal;
3284map[(int)BinXmlToken.SQL_NUMERIC] = TypeOfDecimal;
3285map[(int)BinXmlToken.XSD_DECIMAL] = TypeOfDecimal;
3287map[(int)BinXmlToken.SQL_SMALLDATETIME] = TypeOfDateTime;
3288map[(int)BinXmlToken.SQL_DATETIME] = TypeOfDateTime;
3289map[(int)BinXmlToken.XSD_TIME] = TypeOfDateTime;
3290map[(int)BinXmlToken.XSD_DATETIME] = TypeOfDateTime;
3291map[(int)BinXmlToken.XSD_DATE] = TypeOfDateTime;
3292map[(int)BinXmlToken.XSD_KATMAI_DATE] = TypeOfDateTime;
3293map[(int)BinXmlToken.XSD_KATMAI_DATETIME] = TypeOfDateTime;
3294map[(int)BinXmlToken.XSD_KATMAI_TIME] = TypeOfDateTime;
3296map[(int)BinXmlToken.XSD_KATMAI_DATEOFFSET] = TypeOfDateTimeOffset;
3297map[(int)BinXmlToken.XSD_KATMAI_DATETIMEOFFSET] = TypeOfDateTimeOffset;
3298map[(int)BinXmlToken.XSD_KATMAI_TIMEOFFSET] = TypeOfDateTimeOffset;
3300map[(int)BinXmlToken.SQL_VARBINARY] = TypeOfByteArray;
3301map[(int)BinXmlToken.SQL_BINARY] = TypeOfByteArray;
3302map[(int)BinXmlToken.SQL_IMAGE] = TypeOfByteArray;
3303map[(int)BinXmlToken.SQL_UDT] = TypeOfByteArray;
3304map[(int)BinXmlToken.XSD_BINHEX] = TypeOfByteArray;
3305map[(int)BinXmlToken.XSD_BASE64] = TypeOfByteArray;
3307map[(int)BinXmlToken.SQL_CHAR] = TypeOfString;
3308map[(int)BinXmlToken.SQL_VARCHAR] = TypeOfString;
3309map[(int)BinXmlToken.SQL_TEXT] = TypeOfString;
3310map[(int)BinXmlToken.SQL_NCHAR] = TypeOfString;
3311map[(int)BinXmlToken.SQL_NVARCHAR] = TypeOfString;
3312map[(int)BinXmlToken.SQL_NTEXT] = TypeOfString;
3313map[(int)BinXmlToken.SQL_UUID] = TypeOfString;
3317private System.Type GetValueType(BinXmlToken token)
3328private void ReScanOverValue(BinXmlToken token)
3333private XmlNodeType ScanOverValue(BinXmlToken token, bool attr, bool checkChars)
3335if (token == BinXmlToken.SQL_NVARCHAR)
3365private XmlNodeType ScanOverAnyValue(BinXmlToken token, bool attr, bool checkChars)
3373case BinXmlToken.SQL_BIT:
3374case BinXmlToken.SQL_TINYINT:
3375case BinXmlToken.XSD_BOOLEAN:
3376case BinXmlToken.XSD_BYTE:
3382case BinXmlToken.SQL_SMALLINT:
3383case BinXmlToken.XSD_UNSIGNEDSHORT:
3389case BinXmlToken.SQL_INT:
3390case BinXmlToken.XSD_UNSIGNEDINT:
3391case BinXmlToken.SQL_REAL:
3392case BinXmlToken.SQL_SMALLMONEY:
3393case BinXmlToken.SQL_SMALLDATETIME:
3399case BinXmlToken.SQL_BIGINT:
3400case BinXmlToken.XSD_UNSIGNEDLONG:
3401case BinXmlToken.SQL_FLOAT:
3402case BinXmlToken.SQL_MONEY:
3403case BinXmlToken.SQL_DATETIME:
3404case BinXmlToken.XSD_TIME:
3405case BinXmlToken.XSD_DATETIME:
3406case BinXmlToken.XSD_DATE:
3412case BinXmlToken.SQL_UUID:
3418case BinXmlToken.SQL_DECIMAL:
3419case BinXmlToken.SQL_NUMERIC:
3420case BinXmlToken.XSD_DECIMAL:
3426case BinXmlToken.SQL_VARBINARY:
3427case BinXmlToken.SQL_BINARY:
3428case BinXmlToken.SQL_IMAGE:
3429case BinXmlToken.SQL_UDT:
3430case BinXmlToken.XSD_BINHEX:
3431case BinXmlToken.XSD_BASE64:
3437case BinXmlToken.SQL_CHAR:
3438case BinXmlToken.SQL_VARCHAR:
3439case BinXmlToken.SQL_TEXT:
3453case BinXmlToken.SQL_NVARCHAR:
3454case BinXmlToken.SQL_NCHAR:
3455case BinXmlToken.SQL_NTEXT:
3456return ScanOverValue(BinXmlToken.SQL_NVARCHAR, attr, checkChars);
3458case BinXmlToken.XSD_QNAME:
3463case BinXmlToken.XSD_KATMAI_DATE:
3464case BinXmlToken.XSD_KATMAI_DATETIME:
3465case BinXmlToken.XSD_KATMAI_TIME:
3466case BinXmlToken.XSD_KATMAI_DATEOFFSET:
3467case BinXmlToken.XSD_KATMAI_DATETIMEOFFSET:
3468case BinXmlToken.XSD_KATMAI_TIMEOFFSET:
3572private int GetXsdKatmaiTokenLength(BinXmlToken token)
3577case BinXmlToken.XSD_KATMAI_DATE:
3580case BinXmlToken.XSD_KATMAI_TIME:
3581case BinXmlToken.XSD_KATMAI_DATETIME:
3586case BinXmlToken.XSD_KATMAI_DATEOFFSET:
3587case BinXmlToken.XSD_KATMAI_TIMEOFFSET:
3588case BinXmlToken.XSD_KATMAI_DATETIMEOFFSET:
3612case BinXmlToken.SQL_BIT:
3613case BinXmlToken.SQL_TINYINT:
3619case BinXmlToken.XSD_BYTE:
3625case BinXmlToken.SQL_SMALLINT:
3628case BinXmlToken.SQL_INT:
3631case BinXmlToken.SQL_BIGINT:
3634case BinXmlToken.XSD_UNSIGNEDSHORT:
3637case BinXmlToken.XSD_UNSIGNEDINT:
3640case BinXmlToken.XSD_UNSIGNEDLONG:
3646case BinXmlToken.SQL_REAL:
3647case BinXmlToken.SQL_FLOAT:
3653case BinXmlToken.SQL_MONEY:
3654case BinXmlToken.SQL_SMALLMONEY:
3655case BinXmlToken.SQL_DECIMAL:
3656case BinXmlToken.SQL_NUMERIC:
3657case BinXmlToken.XSD_DECIMAL:
3670if (BinXmlToken.XSD_UNSIGNEDLONG == _token)
3686case BinXmlToken.SQL_BIT:
3687case BinXmlToken.SQL_TINYINT:
3688case BinXmlToken.SQL_SMALLINT:
3689case BinXmlToken.SQL_INT:
3690case BinXmlToken.SQL_BIGINT:
3691case BinXmlToken.XSD_BYTE:
3692case BinXmlToken.XSD_UNSIGNEDSHORT:
3693case BinXmlToken.XSD_UNSIGNEDINT:
3696case BinXmlToken.XSD_UNSIGNEDLONG:
3699case BinXmlToken.SQL_REAL:
3702case BinXmlToken.SQL_FLOAT:
3705case BinXmlToken.SQL_SMALLMONEY:
3710case BinXmlToken.SQL_MONEY:
3716case BinXmlToken.XSD_DECIMAL:
3717case BinXmlToken.SQL_DECIMAL:
3718case BinXmlToken.SQL_NUMERIC:
3720BinXmlSqlDecimal v = new BinXmlSqlDecimal(_data, _tokDataPos, _token == BinXmlToken.XSD_DECIMAL);
3734case BinXmlToken.SQL_BIT:
3735case BinXmlToken.SQL_TINYINT:
3736case BinXmlToken.SQL_SMALLINT:
3737case BinXmlToken.SQL_INT:
3738case BinXmlToken.SQL_BIGINT:
3739case BinXmlToken.XSD_BYTE:
3740case BinXmlToken.XSD_UNSIGNEDSHORT:
3741case BinXmlToken.XSD_UNSIGNEDINT:
3744case BinXmlToken.XSD_UNSIGNEDLONG:
3747case BinXmlToken.SQL_REAL:
3750case BinXmlToken.SQL_FLOAT:
3753case BinXmlToken.SQL_SMALLMONEY:
3754case BinXmlToken.SQL_MONEY:
3755case BinXmlToken.XSD_DECIMAL:
3756case BinXmlToken.SQL_DECIMAL:
3757case BinXmlToken.SQL_NUMERIC:
3770case BinXmlToken.SQL_DATETIME:
3779case BinXmlToken.SQL_SMALLDATETIME:
3788case BinXmlToken.XSD_TIME:
3794case BinXmlToken.XSD_DATE:
3800case BinXmlToken.XSD_DATETIME:
3806case BinXmlToken.XSD_KATMAI_DATE:
3809case BinXmlToken.XSD_KATMAI_DATETIME:
3812case BinXmlToken.XSD_KATMAI_TIME:
3815case BinXmlToken.XSD_KATMAI_DATEOFFSET:
3818case BinXmlToken.XSD_KATMAI_DATETIMEOFFSET:
3821case BinXmlToken.XSD_KATMAI_TIMEOFFSET:
3834BinXmlToken.XSD_KATMAI_DATEOFFSET => BinXmlDateTime.XsdKatmaiDateOffsetToDateTimeOffset(_data, _tokDataPos),
3835BinXmlToken.XSD_KATMAI_DATETIMEOFFSET => BinXmlDateTime.XsdKatmaiDateTimeOffsetToDateTimeOffset(_data, _tokDataPos),
3836BinXmlToken.XSD_KATMAI_TIMEOFFSET => BinXmlDateTime.XsdKatmaiTimeOffsetToDateTimeOffset(_data, _tokDataPos),
3847case BinXmlToken.SQL_DATETIME:
3856case BinXmlToken.SQL_SMALLDATETIME:
3865case BinXmlToken.XSD_TIME:
3871case BinXmlToken.XSD_DATE:
3877case BinXmlToken.XSD_DATETIME:
3883case BinXmlToken.XSD_KATMAI_DATE:
3886case BinXmlToken.XSD_KATMAI_DATETIME:
3889case BinXmlToken.XSD_KATMAI_TIME:
3892case BinXmlToken.XSD_KATMAI_DATEOFFSET:
3895case BinXmlToken.XSD_KATMAI_DATETIMEOFFSET:
3898case BinXmlToken.XSD_KATMAI_TIMEOFFSET:
3906private string ValueAsString(BinXmlToken token)
3913case BinXmlToken.SQL_NCHAR:
3914case BinXmlToken.SQL_NVARCHAR:
3915case BinXmlToken.SQL_NTEXT:
3918case BinXmlToken.XSD_BOOLEAN:
3926case BinXmlToken.SQL_BIT:
3927case BinXmlToken.SQL_TINYINT:
3928case BinXmlToken.SQL_SMALLINT:
3929case BinXmlToken.SQL_INT:
3930case BinXmlToken.SQL_BIGINT:
3931case BinXmlToken.XSD_BYTE:
3932case BinXmlToken.XSD_UNSIGNEDSHORT:
3933case BinXmlToken.XSD_UNSIGNEDINT:
3936case BinXmlToken.XSD_UNSIGNEDLONG:
3939case BinXmlToken.SQL_REAL:
3942case BinXmlToken.SQL_FLOAT:
3945case BinXmlToken.SQL_UUID:
3956case BinXmlToken.SQL_SMALLMONEY:
3961case BinXmlToken.SQL_MONEY:
3967case BinXmlToken.XSD_DECIMAL:
3968case BinXmlToken.SQL_DECIMAL:
3969case BinXmlToken.SQL_NUMERIC:
3971BinXmlSqlDecimal v = new BinXmlSqlDecimal(_data, _tokDataPos, token == BinXmlToken.XSD_DECIMAL);
3975case BinXmlToken.SQL_CHAR:
3976case BinXmlToken.SQL_VARCHAR:
3977case BinXmlToken.SQL_TEXT:
3985case BinXmlToken.SQL_VARBINARY:
3986case BinXmlToken.SQL_BINARY:
3987case BinXmlToken.SQL_IMAGE:
3988case BinXmlToken.SQL_UDT:
3989case BinXmlToken.XSD_BASE64:
3994case BinXmlToken.XSD_BINHEX:
3997case BinXmlToken.SQL_DATETIME:
3998case BinXmlToken.SQL_SMALLDATETIME:
3999case BinXmlToken.XSD_TIME:
4000case BinXmlToken.XSD_DATE:
4001case BinXmlToken.XSD_DATETIME:
4002case BinXmlToken.XSD_KATMAI_DATE:
4003case BinXmlToken.XSD_KATMAI_DATETIME:
4004case BinXmlToken.XSD_KATMAI_TIME:
4005case BinXmlToken.XSD_KATMAI_DATEOFFSET:
4006case BinXmlToken.XSD_KATMAI_DATETIMEOFFSET:
4007case BinXmlToken.XSD_KATMAI_TIMEOFFSET:
4010case BinXmlToken.XSD_QNAME:
4033private object ValueAsObject(BinXmlToken token, bool returnInternalTypes)
4038case BinXmlToken.SQL_NCHAR:
4039case BinXmlToken.SQL_NVARCHAR:
4040case BinXmlToken.SQL_NTEXT:
4043case BinXmlToken.XSD_BOOLEAN:
4046case BinXmlToken.SQL_BIT:
4049case BinXmlToken.SQL_TINYINT:
4052case BinXmlToken.SQL_SMALLINT:
4055case BinXmlToken.SQL_INT:
4058case BinXmlToken.SQL_BIGINT:
4061case BinXmlToken.XSD_BYTE:
4067case BinXmlToken.XSD_UNSIGNEDSHORT:
4070case BinXmlToken.XSD_UNSIGNEDINT:
4073case BinXmlToken.XSD_UNSIGNEDLONG:
4076case BinXmlToken.SQL_REAL:
4079case BinXmlToken.SQL_FLOAT:
4082case BinXmlToken.SQL_UUID:
4093case BinXmlToken.SQL_SMALLMONEY:
4102case BinXmlToken.SQL_MONEY:
4111case BinXmlToken.XSD_DECIMAL:
4112case BinXmlToken.SQL_DECIMAL:
4113case BinXmlToken.SQL_NUMERIC:
4115BinXmlSqlDecimal v = new BinXmlSqlDecimal(_data, _tokDataPos, token == BinXmlToken.XSD_DECIMAL);
4122case BinXmlToken.SQL_CHAR:
4123case BinXmlToken.SQL_VARCHAR:
4124case BinXmlToken.SQL_TEXT:
4132case BinXmlToken.SQL_VARBINARY:
4133case BinXmlToken.SQL_BINARY:
4134case BinXmlToken.SQL_IMAGE:
4135case BinXmlToken.SQL_UDT:
4136case BinXmlToken.XSD_BASE64:
4137case BinXmlToken.XSD_BINHEX:
4144case BinXmlToken.SQL_DATETIME:
4145case BinXmlToken.SQL_SMALLDATETIME:
4146case BinXmlToken.XSD_TIME:
4147case BinXmlToken.XSD_DATE:
4148case BinXmlToken.XSD_DATETIME:
4149case BinXmlToken.XSD_KATMAI_DATE:
4150case BinXmlToken.XSD_KATMAI_DATETIME:
4151case BinXmlToken.XSD_KATMAI_TIME:
4154case BinXmlToken.XSD_KATMAI_DATEOFFSET:
4155case BinXmlToken.XSD_KATMAI_DATETIMEOFFSET:
4156case BinXmlToken.XSD_KATMAI_TIMEOFFSET:
4159case BinXmlToken.XSD_QNAME:
4179private object ValueAs(BinXmlToken token, Type returnType, IXmlNamespaceResolver? namespaceResolver)
4185case BinXmlToken.SQL_NCHAR:
4186case BinXmlToken.SQL_NVARCHAR:
4187case BinXmlToken.SQL_NTEXT:
4193case BinXmlToken.XSD_BOOLEAN:
4199case BinXmlToken.SQL_BIT:
4205case BinXmlToken.SQL_TINYINT:
4211case BinXmlToken.SQL_SMALLINT:
4218case BinXmlToken.SQL_INT:
4225case BinXmlToken.SQL_BIGINT:
4232case BinXmlToken.XSD_BYTE:
4239case BinXmlToken.XSD_UNSIGNEDSHORT:
4246case BinXmlToken.XSD_UNSIGNEDINT:
4253case BinXmlToken.XSD_UNSIGNEDLONG:
4260case BinXmlToken.SQL_REAL:
4267case BinXmlToken.SQL_FLOAT:
4274case BinXmlToken.SQL_UUID:
4279case BinXmlToken.SQL_SMALLMONEY:
4285case BinXmlToken.SQL_MONEY:
4291case BinXmlToken.XSD_DECIMAL:
4292case BinXmlToken.SQL_DECIMAL:
4293case BinXmlToken.SQL_NUMERIC:
4295(new BinXmlSqlDecimal(_data, _tokDataPos, token == BinXmlToken.XSD_DECIMAL)).ToDecimal(),
4299case BinXmlToken.SQL_CHAR:
4300case BinXmlToken.SQL_VARCHAR:
4301case BinXmlToken.SQL_TEXT:
4312case BinXmlToken.SQL_VARBINARY:
4313case BinXmlToken.SQL_BINARY:
4314case BinXmlToken.SQL_IMAGE:
4315case BinXmlToken.SQL_UDT:
4316case BinXmlToken.XSD_BASE64:
4317case BinXmlToken.XSD_BINHEX:
4321value = GetValueConverter(token == BinXmlToken.XSD_BINHEX ? XmlTypeCode.HexBinary : XmlTypeCode.Base64Binary).ChangeType(
4326case BinXmlToken.SQL_DATETIME:
4327case BinXmlToken.SQL_SMALLDATETIME:
4328case BinXmlToken.XSD_DATETIME:
4329case BinXmlToken.XSD_KATMAI_DATE:
4330case BinXmlToken.XSD_KATMAI_DATETIME:
4331case BinXmlToken.XSD_KATMAI_TIME:
4337case BinXmlToken.XSD_KATMAI_DATEOFFSET:
4338case BinXmlToken.XSD_KATMAI_DATETIMEOFFSET:
4339case BinXmlToken.XSD_KATMAI_TIMEOFFSET:
4345case BinXmlToken.XSD_TIME:
4351case BinXmlToken.XSD_DATE:
4357case BinXmlToken.XSD_QNAME:
4391private XmlException CreateUnexpectedTokenException(BinXmlToken token)