Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches

◆ Read()

override bool System.Xml.XmlUTF8TextReader.Read ( )
inline

Definition at line 827 of file XmlUTF8TextReader.cs.

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 {
870 XmlExceptionHelper.ThrowXmlException(this, new XmlException(System.SR.XmlCDATAInvalidAtTopLevel));
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 {
888 XmlExceptionHelper.ThrowInvalidRootData(this);
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 {
918 XmlExceptionHelper.ThrowXmlException(this, new XmlException(System.SR.XmlCloseCData));
919 }
920 base.BufferReader.SkipByte();
922 break;
923 }
924 case 239:
926 break;
927 default:
928 XmlExceptionHelper.ThrowInvalidXml(this, @byte);
929 break;
930 }
931 }
932 return true;
933 }
static string XmlCDATAInvalidAtTopLevel
Definition SR.cs:356
static string XmlCloseCData
Definition SR.cs:358
Definition SR.cs:7
void SetCharValue(int ch)
override bool MoveToElement()
XmlComplexTextNode MoveToComplexText()
static readonly byte[] s_charType
int ReadText(byte[] buffer, int offset, int offsetMax)

References System.Xml.XmlUTF8TextReader._buffered, System.Xml.XmlUTF8TextReader._maxBytesPerRead, System.buffer, System.Xml.Dictionary, System.Xml.XmlBaseReader.ExitScope(), System.Xml.XmlBaseReader.MoveToComplexText(), System.Xml.XmlBaseReader.MoveToElement(), System.Xml.XmlBaseReader.MoveToEndOfFile(), System.offset, System.Xml.XmlUTF8TextReader.ReadCData(), System.Xml.XmlUTF8TextReader.ReadComment(), System.Xml.XmlUTF8TextReader.ReadDeclaration(), System.Xml.XmlUTF8TextReader.ReadEndElement(), System.Xml.XmlUTF8TextReader.ReadEscapedText(), System.Xml.XmlUTF8TextReader.ReadStartElement(), System.Xml.XmlUTF8TextReader.ReadText(), System.Xml.XmlUTF8TextReader.ReadWhitespace(), System.Xml.XmlUTF8TextReader.s_charType, System.Xml.ValueHandle.SetCharValue(), System.Xml.XmlBaseReader.SignNode(), System.Xml.XmlExceptionHelper.ThrowInvalidRootData(), System.Xml.XmlExceptionHelper.ThrowInvalidXml(), System.Xml.XmlExceptionHelper.ThrowXmlException(), System.Xml.XmlBaseReader.XmlNode.Value, System.SR.XmlCDATAInvalidAtTopLevel, System.SR.XmlCloseCData, and System.Xml.XmlException.