Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches
XmlUTF8TextReader.cs
Go to the documentation of this file.
1using System.IO;
3using System.Text;
4
5namespace System.Xml;
6
8{
9 private static class CharType
10 {
11 public const byte None = 0;
12
13 public const byte FirstName = 1;
14
15 public const byte Name = 2;
16
17 public const byte Whitespace = 4;
18
19 public const byte Text = 8;
20
21 public const byte AttributeText = 16;
22
23 public const byte SpecialWhitespace = 32;
24
25 public const byte Comment = 64;
26 }
27
28 private const int MaxTextChunk = 2048;
29
30 private readonly PrefixHandle _prefix;
31
32 private readonly StringHandle _localName;
33
34 private int[] _rowOffsets;
35
36 private OnXmlDictionaryReaderClose _onClose;
37
38 private bool _buffered;
39
40 private int _maxBytesPerRead;
41
42 private static readonly byte[] s_charType = new byte[256]
43 {
44 0, 0, 0, 0, 0, 0, 0, 0, 0, 108,
45 108, 0, 0, 68, 0, 0, 0, 0, 0, 0,
46 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
47 0, 0, 124, 88, 72, 88, 88, 88, 64, 72,
48 88, 88, 88, 88, 88, 90, 90, 88, 90, 90,
49 90, 90, 90, 90, 90, 90, 90, 90, 88, 88,
50 64, 88, 88, 88, 88, 91, 91, 91, 91, 91,
51 91, 91, 91, 91, 91, 91, 91, 91, 91, 91,
52 91, 91, 91, 91, 91, 91, 91, 91, 91, 91,
53 91, 88, 88, 80, 88, 91, 88, 91, 91, 91,
54 91, 91, 91, 91, 91, 91, 91, 91, 91, 91,
55 91, 91, 91, 91, 91, 91, 91, 91, 91, 91,
56 91, 91, 91, 88, 88, 88, 88, 88, 91, 91,
57 91, 91, 91, 91, 91, 91, 91, 91, 91, 91,
58 91, 91, 91, 91, 91, 91, 91, 91, 91, 91,
59 91, 91, 91, 91, 91, 91, 91, 91, 91, 91,
60 91, 91, 91, 91, 91, 91, 91, 91, 91, 91,
61 91, 91, 91, 91, 91, 91, 91, 91, 91, 91,
62 91, 91, 91, 91, 91, 91, 91, 91, 91, 91,
63 91, 91, 91, 91, 91, 91, 91, 91, 91, 91,
64 91, 91, 91, 91, 91, 91, 91, 91, 91, 91,
65 91, 91, 91, 91, 91, 91, 91, 91, 91, 91,
66 91, 91, 91, 91, 91, 91, 91, 91, 91, 91,
67 91, 91, 91, 91, 91, 91, 91, 91, 91, 3,
68 91, 91, 91, 91, 91, 91, 91, 91, 91, 91,
69 91, 91, 91, 91, 91, 91
70 };
71
72 public int LineNumber
73 {
74 get
75 {
77 return row;
78 }
79 }
80
81 public int LinePosition
82 {
83 get
84 {
86 return column;
87 }
88 }
89
91 {
92 _prefix = new PrefixHandle(base.BufferReader);
93 _localName = new StringHandle(base.BufferReader);
94 }
95
123
124 public void SetInput(Stream stream, Encoding encoding, XmlDictionaryReaderQuotas quotas, OnXmlDictionaryReaderClose onClose)
125 {
126 if (stream == null)
127 {
129 }
131 stream = new EncodingStreamWrapper(stream, encoding);
132 base.BufferReader.SetBuffer(stream, null, null);
133 _buffered = false;
134 }
135
136 private void MoveToInitial(XmlDictionaryReaderQuotas quotas, OnXmlDictionaryReaderClose onClose)
137 {
139 _maxBytesPerRead = quotas.MaxBytesPerRead;
141 }
142
143 public override void Close()
144 {
145 _rowOffsets = null;
146 base.Close();
147 OnXmlDictionaryReaderClose onClose = _onClose;
148 _onClose = null;
149 if (onClose != null)
150 {
151 try
152 {
153 onClose(this);
154 }
155 catch (Exception e)
156 {
158 }
159 }
160 }
161
162 private void SkipWhitespace()
163 {
164 while (!base.BufferReader.EndOfFile && (s_charType[base.BufferReader.GetByte()] & 4u) != 0)
165 {
166 base.BufferReader.SkipByte();
167 }
168 }
169
170 private void ReadDeclaration()
171 {
172 if (!_buffered)
173 {
175 }
176 byte[] buffer = base.BufferReader.GetBuffer(5, out var offset);
177 if (buffer[offset] != 63 || buffer[offset + 1] != 120 || buffer[offset + 2] != 109 || buffer[offset + 3] != 108 || (s_charType[buffer[offset + 4]] & 4) == 0)
178 {
180 }
181 if (base.Node.ReadState != 0)
182 {
184 }
185 base.BufferReader.Advance(5);
186 int offset2 = offset + 1;
187 int length = 3;
188 int offset3 = base.BufferReader.Offset;
191 int num;
192 for (num = base.BufferReader.Offset - offset3; num > 0; num--)
193 {
194 byte @byte = base.BufferReader.GetByte(offset3 + num - 1);
195 if ((s_charType[@byte] & 4) == 0)
196 {
197 break;
198 }
199 }
200 buffer = base.BufferReader.GetBuffer(2, out offset);
201 if (buffer[offset] != 63 || buffer[offset + 1] != 62)
202 {
204 }
205 base.BufferReader.Advance(2);
207 xmlDeclarationNode.LocalName.SetValue(offset2, length);
208 xmlDeclarationNode.Value.SetValue(ValueHandleType.UTF8, offset3, num);
209 }
210
211 private void VerifyNCName(string s)
212 {
213 try
214 {
216 }
217 catch (XmlException exception)
218 {
220 }
221 }
222
224 {
225 int i;
226 int offsetMax;
227 byte[] buffer = base.BufferReader.GetBuffer(out i, out offsetMax);
228 int num = 0;
229 int num2 = 0;
230 int num3 = 0;
231 int num4 = i;
232 if (i < offsetMax)
233 {
234 num = buffer[i];
235 num3 = num;
236 if ((s_charType[num] & 1) == 0)
237 {
238 num2 |= 0x80;
239 }
240 num2 |= num;
241 for (i++; i < offsetMax; i++)
242 {
243 num = buffer[i];
244 if ((s_charType[num] & 2) == 0)
245 {
246 break;
247 }
248 num2 |= num;
249 }
250 }
251 else
252 {
253 num2 |= 0x80;
254 num = 0;
255 }
256 if (num == 58)
257 {
258 int num5 = i - num4;
259 if (num5 == 1 && num3 >= 97 && num3 <= 122)
260 {
261 prefix.SetValue(PrefixHandle.GetAlphaPrefix(num3 - 97));
262 }
263 else
264 {
265 prefix.SetValue(num4, num5);
266 }
267 i++;
268 int num6 = i;
269 if (i < offsetMax)
270 {
271 num = buffer[i];
272 if ((s_charType[num] & 1) == 0)
273 {
274 num2 |= 0x80;
275 }
276 num2 |= num;
277 for (i++; i < offsetMax; i++)
278 {
279 num = buffer[i];
280 if ((s_charType[num] & 2) == 0)
281 {
282 break;
283 }
284 num2 |= num;
285 }
286 }
287 else
288 {
289 num2 |= 0x80;
290 num = 0;
291 }
292 localName.SetValue(num6, i - num6);
293 if (num2 >= 128)
294 {
295 VerifyNCName(prefix.GetString());
296 VerifyNCName(localName.GetString());
297 }
298 }
299 else
300 {
301 prefix.SetValue(PrefixHandleType.Empty);
302 localName.SetValue(num4, i - num4);
303 if (num2 >= 128)
304 {
305 VerifyNCName(localName.GetString());
306 }
307 }
308 base.BufferReader.Advance(i - num4);
309 }
310
311 private int ReadAttributeText(byte[] buffer, int offset, int offsetMax)
312 {
313 byte[] array = s_charType;
314 int num = offset;
315 while (offset < offsetMax && (array[buffer[offset]] & 0x10u) != 0)
316 {
317 offset++;
318 }
319 return offset - num;
320 }
321
322 private void ReadAttributes()
323 {
324 int num = 0;
325 if (_buffered)
326 {
327 num = base.BufferReader.Offset;
328 }
329 while (true)
330 {
332 if (base.BufferReader.GetByte() != 61)
333 {
335 if (base.BufferReader.GetByte() != 61)
336 {
337 XmlExceptionHelper.ThrowTokenExpected(this, "=", (char)base.BufferReader.GetByte());
338 }
339 }
340 base.BufferReader.SkipByte();
341 byte @byte = base.BufferReader.GetByte();
342 if (@byte != 34 && @byte != 39)
343 {
345 @byte = base.BufferReader.GetByte();
346 if (@byte != 34 && @byte != 39)
347 {
348 XmlExceptionHelper.ThrowTokenExpected(this, "\"", (char)base.BufferReader.GetByte());
349 }
350 }
351 base.BufferReader.SkipByte();
352 bool flag = false;
353 int offset = base.BufferReader.Offset;
354 byte byte2;
355 while (true)
356 {
357 int offset2;
358 int offsetMax;
359 byte[] buffer = base.BufferReader.GetBuffer(out offset2, out offsetMax);
361 base.BufferReader.Advance(count);
362 byte2 = base.BufferReader.GetByte();
363 if (byte2 == @byte)
364 {
365 break;
366 }
367 switch (byte2)
368 {
369 case 38:
370 ReadCharRef();
371 flag = true;
372 break;
373 case 34:
374 case 39:
375 base.BufferReader.SkipByte();
376 break;
377 case 9:
378 case 10:
379 case 13:
380 base.BufferReader.SkipByte();
381 flag = true;
382 break;
383 case 239:
384 ReadNonFFFE();
385 break;
386 default:
387 {
388 char c = (char)@byte;
389 XmlExceptionHelper.ThrowTokenExpected(this, c.ToString(), (char)byte2);
390 break;
391 }
392 }
393 }
396 if (_prefix.IsXmlns)
397 {
398 Namespace @namespace = AddNamespace();
399 _localName.ToPrefixHandle(@namespace.Prefix);
400 @namespace.Uri.SetValue(offset, length, flag);
402 }
403 else if (_prefix.IsEmpty && _localName.IsXmlns)
404 {
406 namespace2.Prefix.SetValue(PrefixHandleType.Empty);
407 namespace2.Uri.SetValue(offset, length, flag);
409 }
410 else if (_prefix.IsXml)
411 {
413 xmlAttributeNode.Prefix.SetValue(_prefix);
414 xmlAttributeNode.LocalName.SetValue(_localName);
415 xmlAttributeNode.Value.SetValue(flag ? ValueHandleType.EscapedUTF8 : ValueHandleType.UTF8, offset, length);
417 }
418 else
419 {
421 xmlAttributeNode.Prefix.SetValue(_prefix);
422 xmlAttributeNode.LocalName.SetValue(_localName);
423 xmlAttributeNode.Value.SetValue(flag ? ValueHandleType.EscapedUTF8 : ValueHandleType.UTF8, offset, length);
424 }
425 xmlAttributeNode.QuoteChar = (char)@byte;
426 base.BufferReader.SkipByte();
427 byte2 = base.BufferReader.GetByte();
428 bool flag2 = false;
429 while ((s_charType[byte2] & 4u) != 0)
430 {
431 flag2 = true;
432 base.BufferReader.SkipByte();
433 byte2 = base.BufferReader.GetByte();
434 }
435 if (byte2 == 62 || byte2 == 47 || byte2 == 63)
436 {
437 break;
438 }
439 if (!flag2)
440 {
442 }
443 }
444 if (_buffered && base.BufferReader.Offset - num > _maxBytesPerRead)
445 {
447 }
449 }
450
451 private bool IsNextCharacterNonFFFE(byte[] buffer, int offset)
452 {
453 if (buffer[offset + 1] == 191 && (buffer[offset + 2] == 190 || buffer[offset + 2] == 191))
454 {
455 return false;
456 }
457 return true;
458 }
459
460 private void ReadNonFFFE()
461 {
462 int offset;
463 byte[] buffer = base.BufferReader.GetBuffer(3, out offset);
464 if (buffer[offset + 1] == 191 && (buffer[offset + 2] == 190 || buffer[offset + 2] == 191))
465 {
467 }
468 base.BufferReader.Advance(3);
469 }
470
471 private void BufferElement()
472 {
473 int offset = base.BufferReader.Offset;
474 bool flag = false;
475 byte b = 0;
476 while (!flag)
477 {
478 int offset2;
479 int offsetMax;
480 byte[] buffer = base.BufferReader.GetBuffer(128, out offset2, out offsetMax);
481 if (offset2 + 128 != offsetMax)
482 {
483 break;
484 }
485 for (int i = offset2; i < offsetMax; i++)
486 {
487 if (flag)
488 {
489 break;
490 }
491 byte b2 = buffer[i];
492 if (b == 0)
493 {
494 if (b2 == 39 || b2 == 34)
495 {
496 b = b2;
497 }
498 if (b2 == 62)
499 {
500 flag = true;
501 }
502 }
503 else if (b2 == b)
504 {
505 b = 0;
506 }
507 }
508 base.BufferReader.Advance(128);
509 }
511 }
512
513 private new void ReadStartElement()
514 {
515 if (!_buffered)
516 {
518 }
520 xmlElementNode.NameOffset = base.BufferReader.Offset;
523 byte @byte = base.BufferReader.GetByte();
524 while ((s_charType[@byte] & 4u) != 0)
525 {
526 base.BufferReader.SkipByte();
527 @byte = base.BufferReader.GetByte();
528 }
529 if (@byte != 62 && @byte != 47)
530 {
532 @byte = base.BufferReader.GetByte();
533 }
535 bool flag = false;
536 if (@byte == 47)
537 {
538 flag = true;
539 base.BufferReader.SkipByte();
540 }
543 if (base.BufferReader.GetByte() != 62)
544 {
545 XmlExceptionHelper.ThrowTokenExpected(this, ">", (char)base.BufferReader.GetByte());
546 }
547 base.BufferReader.SkipByte();
548 xmlElementNode.BufferOffset = base.BufferReader.Offset;
549 }
550
551 private new void ReadEndElement()
552 {
553 base.BufferReader.SkipByte();
554 XmlElementNode elementNode = base.ElementNode;
556 int nameLength = elementNode.NameLength;
557 int offset;
558 byte[] buffer = base.BufferReader.GetBuffer(nameLength, out offset);
559 for (int i = 0; i < nameLength; i++)
560 {
561 if (buffer[offset + i] != buffer[nameOffset + i])
562 {
564 XmlExceptionHelper.ThrowTagMismatch(this, elementNode.Prefix.GetString(), elementNode.LocalName.GetString(), _prefix.GetString(), _localName.GetString());
565 }
566 }
567 base.BufferReader.Advance(nameLength);
568 if (base.BufferReader.GetByte() != 62)
569 {
571 if (base.BufferReader.GetByte() != 62)
572 {
573 XmlExceptionHelper.ThrowTokenExpected(this, ">", (char)base.BufferReader.GetByte());
574 }
575 }
576 base.BufferReader.SkipByte();
578 }
579
580 private void ReadComment()
581 {
582 base.BufferReader.SkipByte();
583 if (base.BufferReader.GetByte() != 45)
584 {
585 XmlExceptionHelper.ThrowTokenExpected(this, "--", (char)base.BufferReader.GetByte());
586 }
587 base.BufferReader.SkipByte();
588 int offset = base.BufferReader.Offset;
589 while (true)
590 {
591 byte @byte = base.BufferReader.GetByte();
592 if (@byte != 45)
593 {
594 if ((s_charType[@byte] & 0x40) == 0)
595 {
596 if (@byte == 239)
597 {
598 ReadNonFFFE();
599 }
600 else
601 {
603 }
604 }
605 else
606 {
607 base.BufferReader.SkipByte();
608 }
609 continue;
610 }
611 int offset2;
612 byte[] buffer = base.BufferReader.GetBuffer(3, out offset2);
613 if (buffer[offset2] == 45 && buffer[offset2 + 1] == 45)
614 {
615 if (buffer[offset2 + 2] == 62)
616 {
617 break;
618 }
620 }
621 base.BufferReader.SkipByte();
622 }
625 base.BufferReader.Advance(3);
626 }
627
628 private void ReadCData()
629 {
630 byte[] buffer = base.BufferReader.GetBuffer(7, out var offset);
631 if (buffer[offset] != 91 || buffer[offset + 1] != 67 || buffer[offset + 2] != 68 || buffer[offset + 3] != 65 || buffer[offset + 4] != 84 || buffer[offset + 5] != 65 || buffer[offset + 6] != 91)
632 {
633 XmlExceptionHelper.ThrowTokenExpected(this, "[CDATA[", Encoding.UTF8.GetString(buffer, offset, 7));
634 }
635 base.BufferReader.Advance(7);
636 int offset2 = base.BufferReader.Offset;
637 while (true)
638 {
639 switch (base.BufferReader.GetByte())
640 {
641 case 239:
642 ReadNonFFFE();
643 break;
644 default:
645 base.BufferReader.SkipByte();
646 break;
647 case 93:
648 {
649 buffer = base.BufferReader.GetBuffer(3, out offset);
650 if (buffer[offset] != 93 || buffer[offset + 1] != 93 || buffer[offset + 2] != 62)
651 {
652 base.BufferReader.SkipByte();
653 break;
654 }
657 base.BufferReader.Advance(3);
658 return;
659 }
660 }
661 }
662 }
663
664 private int ReadCharRef()
665 {
666 int offset = base.BufferReader.Offset;
667 base.BufferReader.SkipByte();
668 while (base.BufferReader.GetByte() != 59)
669 {
670 base.BufferReader.SkipByte();
671 }
672 base.BufferReader.SkipByte();
675 int charEntity = base.BufferReader.GetCharEntity(offset, num);
676 base.BufferReader.Advance(num);
677 return charEntity;
678 }
679
680 private void ReadWhitespace()
681 {
682 int offset;
683 int offsetMax;
684 int num;
685 if (_buffered)
686 {
687 byte[] buffer = base.BufferReader.GetBuffer(out offset, out offsetMax);
689 }
690 else
691 {
692 byte[] buffer = base.BufferReader.GetBuffer(2048, out offset, out offsetMax);
694 num = BreakText(buffer, offset, num);
695 }
696 base.BufferReader.Advance(num);
698 }
699
700 private int ReadWhitespace(byte[] buffer, int offset, int offsetMax)
701 {
702 byte[] array = s_charType;
703 int num = offset;
704 while (offset < offsetMax && (array[buffer[offset]] & 0x20u) != 0)
705 {
706 offset++;
707 }
708 return offset - num;
709 }
710
711 private int ReadText(byte[] buffer, int offset, int offsetMax)
712 {
713 byte[] array = s_charType;
714 int num = offset;
715 while (offset < offsetMax && (array[buffer[offset]] & 8u) != 0)
716 {
717 offset++;
718 }
719 return offset - num;
720 }
721
723 {
724 byte[] array = s_charType;
725 int num = offset;
726 while (offset < offsetMax && ((array[buffer[offset]] & 8u) != 0 || buffer[offset] == 239))
727 {
728 if (buffer[offset] != 239)
729 {
730 offset++;
731 continue;
732 }
733 if (offset + 2 < offsetMax)
734 {
736 {
737 offset += 3;
738 }
739 else
740 {
742 }
743 continue;
744 }
745 if (base.BufferReader.Offset < offset)
746 {
747 break;
748 }
749 base.BufferReader.GetBuffer(3, out var _);
750 }
751 return offset - num;
752 }
753
754 private int BreakText(byte[] buffer, int offset, int length)
755 {
756 if (length > 0 && (buffer[offset + length - 1] & 0x80) == 128)
757 {
758 int num = length;
759 do
760 {
761 length--;
762 }
763 while (length > 0 && (buffer[offset + length] & 0xC0) != 192);
764 if (length == 0)
765 {
766 return num;
767 }
768 byte b = (byte)(buffer[offset + length] << 2);
769 int num2 = 2;
770 while ((b & 0x80) == 128)
771 {
772 b <<= 1;
773 num2++;
774 if (num2 > 4)
775 {
776 return num;
777 }
778 }
779 if (length + num2 == num)
780 {
781 return num;
782 }
783 }
784 return length;
785 }
786
788 {
789 byte[] buffer;
790 int offset;
791 int offsetMax;
792 int num;
793 if (_buffered)
794 {
795 buffer = base.BufferReader.GetBuffer(out offset, out offsetMax);
797 }
798 else
799 {
800 buffer = base.BufferReader.GetBuffer(2048, out offset, out offsetMax);
802 }
803 base.BufferReader.Advance(num);
804 if (offset < offsetMax - 1 - num && buffer[offset + num] == 60 && buffer[offset + num + 1] != 33)
805 {
807 }
808 else
809 {
811 }
812 }
813
814 private void ReadEscapedText()
815 {
816 int num = ReadCharRef();
817 if (num < 256 && (s_charType[num] & 4u) != 0)
818 {
820 }
821 else
822 {
824 }
825 }
826
827 public override bool Read()
828 {
829 if (base.Node.ReadState == ReadState.Closed)
830 {
831 return false;
832 }
833 if (base.Node.CanMoveToElement)
834 {
836 }
837 SignNode();
838 if (base.Node.ExitScope)
839 {
840 ExitScope();
841 }
842 if (!_buffered)
843 {
844 base.BufferReader.SetWindow(base.ElementNode.BufferOffset, _maxBytesPerRead);
845 }
846 if (base.BufferReader.EndOfFile)
847 {
849 return false;
850 }
851 byte @byte = base.BufferReader.GetByte();
852 if (@byte == 60)
853 {
854 base.BufferReader.SkipByte();
855 switch (base.BufferReader.GetByte())
856 {
857 case 47:
859 break;
860 case 33:
861 base.BufferReader.SkipByte();
862 @byte = base.BufferReader.GetByte();
863 if (@byte == 45)
864 {
865 ReadComment();
866 break;
867 }
868 if (base.OutsideRootElement)
869 {
871 }
872 ReadCData();
873 break;
874 case 63:
876 break;
877 default:
879 break;
880 }
881 }
882 else if ((s_charType[@byte] & 0x20u) != 0)
883 {
885 }
886 else if (base.OutsideRootElement && @byte != 13)
887 {
889 }
890 else if ((s_charType[@byte] & 8u) != 0)
891 {
893 }
894 else
895 {
896 switch (@byte)
897 {
898 case 38:
900 break;
901 case 13:
902 base.BufferReader.SkipByte();
903 if (!base.BufferReader.EndOfFile && base.BufferReader.GetByte() == 10)
904 {
906 }
907 else
908 {
910 }
911 break;
912 case 93:
913 {
914 int offset;
915 byte[] buffer = base.BufferReader.GetBuffer(3, out offset);
916 if (buffer[offset] == 93 && buffer[offset + 1] == 93 && buffer[offset + 2] == 62)
917 {
919 }
920 base.BufferReader.SkipByte();
922 break;
923 }
924 case 239:
926 break;
927 default:
929 break;
930 }
931 }
932 return true;
933 }
934
936 {
937 return new XmlSigningNodeWriter(text: true);
938 }
939
940 public bool HasLineInfo()
941 {
942 return true;
943 }
944
945 private void GetPosition(out int row, out int column)
946 {
947 if (_rowOffsets == null)
948 {
949 _rowOffsets = base.BufferReader.GetRows();
950 }
951 int offset = base.BufferReader.Offset;
952 int i;
953 for (i = 0; i < _rowOffsets.Length - 1 && _rowOffsets[i + 1] < offset; i++)
954 {
955 }
956 row = i + 1;
957 column = offset - _rowOffsets[i] + 1;
958 }
959}
static string XmlInvalidCommentChars
Definition SR.cs:420
static string Format(string resourceFormat, object p1)
Definition SR.cs:118
static string XmlSpaceBetweenAttributes
Definition SR.cs:492
static string ValueMustBeNonNegative
Definition SR.cs:296
static string XmlInvalidFFFE
Definition SR.cs:428
static string XmlCDATAInvalidAtTopLevel
Definition SR.cs:356
static string SizeExceedsRemainingBufferSpace
Definition SR.cs:324
static string XmlCloseCData
Definition SR.cs:358
static string OffsetExceedsBufferSize
Definition SR.cs:322
Definition SR.cs:7
static Encoding UTF8
Definition Encoding.cs:526
static ArraySegment< byte > ProcessBuffer(byte[] buffer, int offset, int count, Encoding encoding)
static string GetString(PrefixHandleType type)
static PrefixHandleType GetAlphaPrefix(int index)
void SetValue(int offset, int length)
string GetString(XmlNameTable nameTable)
void SetValue(ValueHandleType type)
void SetCharValue(int ch)
XmlDeclarationNode MoveToDeclaration()
override string LookupNamespace(string prefix)
XmlTextNode MoveToWhitespaceText()
override bool MoveToElement()
XmlComplexTextNode MoveToComplexText()
XmlCommentNode MoveToComment()
XmlAttributeNode AddXmlAttribute()
XmlAtomicTextNode MoveToAtomicText()
void FixXmlAttribute(XmlAttributeNode attributeNode)
XmlAttributeNode AddXmlnsAttribute(Namespace ns)
XmlAttributeNode AddAttribute()
XmlElementNode EnterScope()
static string VerifyNCName(string name)
static void ThrowInvalidRootData(XmlDictionaryReader reader)
static void ThrowTokenExpected(XmlDictionaryReader reader, string expected, char found)
static void ThrowProcessingInstructionNotSupported(XmlDictionaryReader reader)
static void ThrowTagMismatch(XmlDictionaryReader reader, string expectedPrefix, string expectedLocalName, string foundPrefix, string foundLocalName)
static void ThrowDeclarationNotFirst(XmlDictionaryReader reader)
static void ThrowInvalidXml(XmlDictionaryReader reader, byte b)
static void ThrowMaxBytesPerReadExceeded(XmlDictionaryReader reader, int maxBytesPerRead)
static void ThrowXmlException(XmlDictionaryReader reader, string res)
bool IsNextCharacterNonFFFE(byte[] buffer, int offset)
readonly StringHandle _localName
readonly PrefixHandle _prefix
int ReadAttributeText(byte[] buffer, int offset, int offsetMax)
OnXmlDictionaryReaderClose _onClose
override XmlSigningNodeWriter CreateSigningNodeWriter()
void SetInput(byte[] buffer, int offset, int count, Encoding encoding, XmlDictionaryReaderQuotas quotas, OnXmlDictionaryReaderClose onClose)
void MoveToInitial(XmlDictionaryReaderQuotas quotas, OnXmlDictionaryReaderClose onClose)
void SetInput(Stream stream, Encoding encoding, XmlDictionaryReaderQuotas quotas, OnXmlDictionaryReaderClose onClose)
int BreakText(byte[] buffer, int offset, int length)
static readonly byte[] s_charType
int ReadTextAndWatchForInvalidCharacters(byte[] buffer, int offset, int offsetMax)
void GetPosition(out int row, out int column)
int ReadWhitespace(byte[] buffer, int offset, int offsetMax)
void ReadText(bool hasLeadingByteOf0xEF)
void ReadQualifiedName(PrefixHandle prefix, StringHandle localName)
int ReadText(byte[] buffer, int offset, int offsetMax)