diff --git a/src/libraries/System.Private.Xml/src/System.Private.Xml.csproj b/src/libraries/System.Private.Xml/src/System.Private.Xml.csproj
index 0d6948e5f38b9f..2036931b408c86 100644
--- a/src/libraries/System.Private.Xml/src/System.Private.Xml.csproj
+++ b/src/libraries/System.Private.Xml/src/System.Private.Xml.csproj
@@ -7,12 +7,9 @@
enable
-
-
-
+
+
+
@@ -552,11 +549,6 @@
rss-0.91.dtd
-
-
- XmlCharType.bin
-
-
@@ -579,6 +571,7 @@
+
@@ -790,8 +783,7 @@
-
+
diff --git a/src/libraries/System.Private.Xml/src/System/Xml/Base64Decoder.cs b/src/libraries/System.Private.Xml/src/System/Xml/Base64Decoder.cs
index 950d840aba98e4..96375e646f2744 100644
--- a/src/libraries/System.Private.Xml/src/System/Xml/Base64Decoder.cs
+++ b/src/libraries/System.Private.Xml/src/System/Xml/Base64Decoder.cs
@@ -1,7 +1,6 @@
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.
-using System;
using System.Diagnostics;
namespace System.Xml
@@ -166,7 +165,6 @@ private unsafe void Decode(char* pChars, char* pCharsEndPos,
char* pChar = pChars;
int b = _bits;
int bFilled = _bitsFilled;
- XmlCharType xmlCharType = XmlCharType.Instance;
while (pChar < pCharsEndPos && pByte < pBytesEndPos)
{
char ch = *pChar;
@@ -178,7 +176,7 @@ private unsafe void Decode(char* pChars, char* pCharsEndPos,
pChar++;
// ignore whitespace
- if (xmlCharType.IsWhiteSpace(ch))
+ if (XmlCharType.IsWhiteSpace(ch))
{
continue;
}
@@ -219,7 +217,7 @@ private unsafe void Decode(char* pChars, char* pCharsEndPos,
{
do
{
- if (!(xmlCharType.IsWhiteSpace(*pChar++)))
+ if (!XmlCharType.IsWhiteSpace(*pChar++))
{
throw new XmlException(SR.Xml_InvalidBase64Value, new string(pChars, 0, (int)(pCharsEndPos - pChars)));
}
diff --git a/src/libraries/System.Private.Xml/src/System/Xml/BinHexDecoder.cs b/src/libraries/System.Private.Xml/src/System/Xml/BinHexDecoder.cs
index b4551c53542929..058621d26563d6 100644
--- a/src/libraries/System.Private.Xml/src/System/Xml/BinHexDecoder.cs
+++ b/src/libraries/System.Private.Xml/src/System/Xml/BinHexDecoder.cs
@@ -192,7 +192,6 @@ private static unsafe void Decode(char* pChars, char* pCharsEndPos,
char* pChar = pChars;
byte* pByte = pBytes;
- XmlCharType xmlCharType = XmlCharType.Instance;
while (pChar < pCharsEndPos && pByte < pBytesEndPos)
{
byte halfByte;
@@ -203,7 +202,7 @@ private static unsafe void Decode(char* pChars, char* pCharsEndPos,
{
halfByte = (byte)val;
}
- else if (xmlCharType.IsWhiteSpace(ch))
+ else if (XmlCharType.IsWhiteSpace(ch))
{
continue;
}
diff --git a/src/libraries/System.Private.Xml/src/System/Xml/BinaryXml/XmlBinaryReader.cs b/src/libraries/System.Private.Xml/src/System/Xml/BinaryXml/XmlBinaryReader.cs
index d8f34ab4c557f6..0215d5b243e614 100644
--- a/src/libraries/System.Private.Xml/src/System/Xml/BinaryXml/XmlBinaryReader.cs
+++ b/src/libraries/System.Private.Xml/src/System/Xml/BinaryXml/XmlBinaryReader.cs
@@ -333,7 +333,6 @@ public NestedBinXml(SymbolTables symbolTables, int docState, NestedBinXml? next)
private readonly bool _ignoreComments;
private readonly DtdProcessing _dtdProcessing;
- private XmlCharType _xmlCharType;
private readonly Encoding _unicode;
// current version of the protocol
@@ -342,7 +341,6 @@ public NestedBinXml(SymbolTables symbolTables, int docState, NestedBinXml? next)
public XmlSqlBinaryReader(Stream stream, byte[] data, int len, string baseUri, bool closeInput, XmlReaderSettings settings)
{
_unicode = System.Text.Encoding.Unicode;
- _xmlCharType = XmlCharType.Instance;
_xnt = settings.NameTable!;
if (_xnt == null)
@@ -3531,7 +3529,6 @@ private unsafe XmlNodeType CheckText(bool attr)
// assert that size is an even number
Debug.Assert(0 == ((_pos - _tokDataPos) & 1), "Data size should not be odd");
// grab local copy (perf)
- XmlCharType xmlCharType = _xmlCharType;
fixed (byte* pb = _data)
{
@@ -3546,7 +3543,7 @@ private unsafe XmlNodeType CheckText(bool attr)
int posNext = pos + 2;
if (posNext > end)
return _xmlspacePreserve ? XmlNodeType.SignificantWhitespace : XmlNodeType.Whitespace;
- if (pb[pos + 1] != 0 || !xmlCharType.IsWhiteSpace((char)pb[pos]))
+ if (pb[pos + 1] != 0 || !XmlCharType.IsWhiteSpace((char)pb[pos]))
break;
pos = posNext;
}
@@ -3561,7 +3558,7 @@ private unsafe XmlNodeType CheckText(bool attr)
if (posNext > end)
return XmlNodeType.Text;
ch = (char)(pb[pos] | ((int)(pb[pos + 1]) << 8));
- if (!_xmlCharType.IsCharData(ch))
+ if (!XmlCharType.IsCharData(ch))
break;
pos = posNext;
}
diff --git a/src/libraries/System.Private.Xml/src/System/Xml/Core/HtmlEncodedRawTextWriter.cs b/src/libraries/System.Private.Xml/src/System/Xml/Core/HtmlEncodedRawTextWriter.cs
index bd7c24855ff4b2..55bf9134f90947 100644
--- a/src/libraries/System.Private.Xml/src/System/Xml/Core/HtmlEncodedRawTextWriter.cs
+++ b/src/libraries/System.Private.Xml/src/System/Xml/Core/HtmlEncodedRawTextWriter.cs
@@ -572,7 +572,7 @@ private unsafe void WriteHtmlAttributeText(char* pSrc, char* pSrcEnd)
pDstEnd = pDstBegin + _bufLen;
}
- while (pDst < pDstEnd && _xmlCharType.IsAttributeValueChar((char)(ch = *pSrc)))
+ while (pDst < pDstEnd && XmlCharType.IsAttributeValueChar((char)(ch = *pSrc)))
{
*pDst++ = (char)ch;
pSrc++;
@@ -660,7 +660,7 @@ private unsafe void WriteUriAttributeText(char* pSrc, char* pSrcEnd)
pDstEnd = pDstBegin + _bufLen;
}
- while (pDst < pDstEnd && (_xmlCharType.IsAttributeValueChar((char)(ch = *pSrc)) && ch < 0x80))
+ while (pDst < pDstEnd && (XmlCharType.IsAttributeValueChar((char)(ch = *pSrc)) && ch < 0x80))
{
*pDst++ = (char)ch;
pSrc++;
diff --git a/src/libraries/System.Private.Xml/src/System/Xml/Core/HtmlUtf8RawTextWriter.cs b/src/libraries/System.Private.Xml/src/System/Xml/Core/HtmlUtf8RawTextWriter.cs
index 228088b9dc8315..55294ffdd97ea1 100644
--- a/src/libraries/System.Private.Xml/src/System/Xml/Core/HtmlUtf8RawTextWriter.cs
+++ b/src/libraries/System.Private.Xml/src/System/Xml/Core/HtmlUtf8RawTextWriter.cs
@@ -549,7 +549,7 @@ private unsafe void WriteHtmlAttributeText(char* pSrc, char* pSrcEnd)
pDstEnd = pDstBegin + _bufLen;
}
- while (pDst < pDstEnd && (_xmlCharType.IsAttributeValueChar((char)(ch = *pSrc)) && ch <= 0x7F))
+ while (pDst < pDstEnd && XmlCharType.IsAttributeValueChar((char)(ch = *pSrc)) && ch <= 0x7F)
{
*pDst++ = (byte)ch;
pSrc++;
@@ -637,7 +637,7 @@ private unsafe void WriteUriAttributeText(char* pSrc, char* pSrcEnd)
pDstEnd = pDstBegin + _bufLen;
}
- while (pDst < pDstEnd && (_xmlCharType.IsAttributeValueChar((char)(ch = *pSrc)) && ch < 0x80))
+ while (pDst < pDstEnd && XmlCharType.IsAttributeValueChar((char)(ch = *pSrc)) && ch < 0x80)
{
*pDst++ = (byte)ch;
pSrc++;
diff --git a/src/libraries/System.Private.Xml/src/System/Xml/Core/XmlAutoDetectWriter.cs b/src/libraries/System.Private.Xml/src/System/Xml/Core/XmlAutoDetectWriter.cs
index 39978242bc82d2..78b163d37906b9 100644
--- a/src/libraries/System.Private.Xml/src/System/Xml/Core/XmlAutoDetectWriter.cs
+++ b/src/libraries/System.Private.Xml/src/System/Xml/Core/XmlAutoDetectWriter.cs
@@ -396,7 +396,7 @@ private bool TextBlockCreatesWriter(string? textBlock)
if (_wrapped == null)
{
// Whitespace-only text blocks aren't enough to determine Xml vs. Html
- if (XmlCharType.Instance.IsOnlyWhitespace(textBlock))
+ if (XmlCharType.IsOnlyWhitespace(textBlock))
{
return false;
}
diff --git a/src/libraries/System.Private.Xml/src/System/Xml/Core/XmlCharCheckingReader.cs b/src/libraries/System.Private.Xml/src/System/Xml/Core/XmlCharCheckingReader.cs
index 30b088cdc3ffcd..2f9708a1131e0c 100644
--- a/src/libraries/System.Private.Xml/src/System/Xml/Core/XmlCharCheckingReader.cs
+++ b/src/libraries/System.Private.Xml/src/System/Xml/Core/XmlCharCheckingReader.cs
@@ -39,7 +39,6 @@ private enum State
private readonly DtdProcessing _dtdProcessing; // -1 means do nothing
private XmlNodeType _lastNodeType;
- private XmlCharType _xmlCharType;
private ReadContentAsBinaryHelper? _readBinaryHelper;
@@ -60,11 +59,6 @@ internal XmlCharCheckingReader(XmlReader reader, bool checkCharacters, bool igno
_dtdProcessing = dtdProcessing;
_lastNodeType = XmlNodeType.None;
-
- if (checkCharacters)
- {
- _xmlCharType = XmlCharType.Instance;
- }
}
//
@@ -320,7 +314,7 @@ public override bool Read()
if (str != null)
{
int i;
- if ((i = _xmlCharType.IsPublicId(str)) >= 0)
+ if ((i = XmlCharType.IsPublicId(str)) >= 0)
{
Throw(SR.Xml_InvalidCharacter, XmlException.BuildCharExceptionArgs(str, i));
}
@@ -622,7 +616,7 @@ private void Throw(string res, string[] args)
private void CheckWhitespace(string value)
{
int i;
- if ((i = _xmlCharType.IsOnlyWhitespaceWithPos(value)) != -1)
+ if ((i = XmlCharType.IsOnlyWhitespaceWithPos(value)) != -1)
{
Throw(SR.Xml_InvalidWhitespaceCharacter, XmlException.BuildCharExceptionArgs(value, i));
}
diff --git a/src/libraries/System.Private.Xml/src/System/Xml/Core/XmlCharCheckingReaderAsync.cs b/src/libraries/System.Private.Xml/src/System/Xml/Core/XmlCharCheckingReaderAsync.cs
index 85e0e2a6edace5..933d288774a0ee 100644
--- a/src/libraries/System.Private.Xml/src/System/Xml/Core/XmlCharCheckingReaderAsync.cs
+++ b/src/libraries/System.Private.Xml/src/System/Xml/Core/XmlCharCheckingReaderAsync.cs
@@ -172,7 +172,7 @@ public override async Task ReadAsync()
if (str != null)
{
int i;
- if ((i = _xmlCharType.IsPublicId(str)) >= 0)
+ if ((i = XmlCharType.IsPublicId(str)) >= 0)
{
Throw(SR.Xml_InvalidCharacter, XmlException.BuildCharExceptionArgs(str, i));
}
diff --git a/src/libraries/System.Private.Xml/src/System/Xml/Core/XmlCharCheckingWriter.cs b/src/libraries/System.Private.Xml/src/System/Xml/Core/XmlCharCheckingWriter.cs
index 548287eac1629d..f3cb979c70f0ee 100644
--- a/src/libraries/System.Private.Xml/src/System/Xml/Core/XmlCharCheckingWriter.cs
+++ b/src/libraries/System.Private.Xml/src/System/Xml/Core/XmlCharCheckingWriter.cs
@@ -24,7 +24,6 @@ internal partial class XmlCharCheckingWriter : XmlWrappingWriter
private readonly bool _replaceNewLines;
private readonly string _newLineChars;
- private XmlCharType _xmlCharType;
//
// Constructor
//
@@ -37,10 +36,6 @@ internal XmlCharCheckingWriter(XmlWriter baseWriter, bool checkValues, bool chec
_replaceNewLines = replaceNewLines;
_newLineChars = newLineChars;
- if (checkValues)
- {
- _xmlCharType = XmlCharType.Instance;
- }
}
//
@@ -83,7 +78,7 @@ public override void WriteDocType(string name, string? pubid, string? sysid, str
if (pubid != null)
{
int i;
- if ((i = _xmlCharType.IsPublicId(pubid)) >= 0)
+ if ((i = XmlCharType.IsPublicId(pubid)) >= 0)
{
throw XmlConvert.CreateInvalidCharException(pubid, i);
}
@@ -238,7 +233,7 @@ public override void WriteWhitespace(string? ws)
if (_checkNames)
{
int i;
- if ((i = _xmlCharType.IsOnlyWhitespaceWithPos(ws)) != -1)
+ if ((i = XmlCharType.IsOnlyWhitespaceWithPos(ws)) != -1)
{
throw new ArgumentException(SR.Format(SR.Xml_InvalidWhitespaceCharacter, XmlException.BuildCharExceptionArgs(ws, i)));
}
diff --git a/src/libraries/System.Private.Xml/src/System/Xml/Core/XmlCharCheckingWriterAsync.cs b/src/libraries/System.Private.Xml/src/System/Xml/Core/XmlCharCheckingWriterAsync.cs
index 0c6d854e23c87b..8d3b8c4934d850 100644
--- a/src/libraries/System.Private.Xml/src/System/Xml/Core/XmlCharCheckingWriterAsync.cs
+++ b/src/libraries/System.Private.Xml/src/System/Xml/Core/XmlCharCheckingWriterAsync.cs
@@ -29,7 +29,7 @@ public override Task WriteDocTypeAsync(string name, string? pubid, string? sysid
if (pubid != null)
{
int i;
- if ((i = _xmlCharType.IsPublicId(pubid)) >= 0)
+ if ((i = XmlCharType.IsPublicId(pubid)) >= 0)
{
throw XmlConvert.CreateInvalidCharException(pubid, i);
}
@@ -180,7 +180,7 @@ public override Task WriteWhitespaceAsync(string? ws)
if (_checkNames)
{
int i;
- if ((i = _xmlCharType.IsOnlyWhitespaceWithPos(ws)) != -1)
+ if ((i = XmlCharType.IsOnlyWhitespaceWithPos(ws)) != -1)
{
throw new ArgumentException(SR.Format(SR.Xml_InvalidWhitespaceCharacter, XmlException.BuildCharExceptionArgs(ws, i)));
}
diff --git a/src/libraries/System.Private.Xml/src/System/Xml/Core/XmlEncodedRawTextWriter.cs b/src/libraries/System.Private.Xml/src/System/Xml/Core/XmlEncodedRawTextWriter.cs
index 4b9796b609e13b..91a9b6d52ec9fa 100644
--- a/src/libraries/System.Private.Xml/src/System/Xml/Core/XmlEncodedRawTextWriter.cs
+++ b/src/libraries/System.Private.Xml/src/System/Xml/Core/XmlEncodedRawTextWriter.cs
@@ -5,9 +5,7 @@
// Instead, modify XmlRawTextWriterGenerator.ttinclude
#nullable disable
-using System;
using System.IO;
-using System.Xml;
using System.Text;
using System.Diagnostics;
using System.Globalization;
@@ -34,9 +32,6 @@ internal partial class XmlEncodedRawTextWriter : XmlRawWriter
// encoding of the stream or text writer
protected Encoding _encoding;
- // char type tables
- protected XmlCharType _xmlCharType = XmlCharType.Instance;
-
// buffer positions
protected int _bufPos = 1; // buffer position starts at 1, because we need to be able to safely step back -1 in case we need to
// close an empty element or in CDATA section detection of double ]; _bufChars[0] will always be 0
@@ -567,7 +562,7 @@ public override void WriteCharEntity(char ch)
{
string strVal = ((int)ch).ToString("X", NumberFormatInfo.InvariantInfo);
- if (_checkCharacters && !_xmlCharType.IsCharData(ch))
+ if (_checkCharacters && !XmlCharType.IsCharData(ch))
{
// we just have a single char, not a surrogate, therefore we have to pass in '\0' for the second char
throw XmlConvert.CreateInvalidCharException(ch, '\0');
@@ -908,7 +903,7 @@ protected unsafe void WriteAttributeTextBlock(char* pSrc, char* pSrcEnd)
pDstEnd = pDstBegin + _bufLen;
}
- while (pDst < pDstEnd && _xmlCharType.IsAttributeValueChar((char)(ch = *pSrc)))
+ while (pDst < pDstEnd && XmlCharType.IsAttributeValueChar((char)(ch = *pSrc)))
{
*pDst = (char)ch;
pDst++;
@@ -1032,7 +1027,7 @@ protected unsafe void WriteElementTextBlock(char* pSrc, char* pSrcEnd)
pDstEnd = pDstBegin + _bufLen;
}
- while (pDst < pDstEnd && _xmlCharType.IsAttributeValueChar((char)(ch = *pSrc)))
+ while (pDst < pDstEnd && XmlCharType.IsAttributeValueChar((char)(ch = *pSrc)))
{
*pDst = (char)ch;
pDst++;
@@ -1227,7 +1222,7 @@ protected unsafe void WriteRawWithCharChecking(char* pSrcBegin, char* pSrcEnd)
pDstEnd = pDstBegin + _bufLen;
}
- while (pDst < pDstEnd && _xmlCharType.IsTextChar((char)(ch = *pSrc)))
+ while (pDst < pDstEnd && XmlCharType.IsTextChar((char)(ch = *pSrc)))
{
*pDst = (char)ch;
pDst++;
@@ -1347,7 +1342,7 @@ protected unsafe void WriteCommentOrPi(string text, int stopChar)
pDstEnd = pDstBegin + _bufLen;
}
- while (pDst < pDstEnd && (_xmlCharType.IsTextChar((char)(ch = *pSrc)) && ch != stopChar))
+ while (pDst < pDstEnd && (XmlCharType.IsTextChar((char)(ch = *pSrc)) && ch != stopChar))
{
*pDst = (char)ch;
pDst++;
@@ -1498,7 +1493,7 @@ protected unsafe void WriteCDataSection(string text)
pDstEnd = pDstBegin + _bufLen;
}
- while (pDst < pDstEnd && (_xmlCharType.IsAttributeValueChar((char)(ch = *pSrc)) && ch != ']'))
+ while (pDst < pDstEnd && (XmlCharType.IsAttributeValueChar((char)(ch = *pSrc)) && ch != ']'))
{
*pDst = (char)ch;
pDst++;
@@ -1639,8 +1634,8 @@ protected unsafe void WriteCDataSection(string text)
private unsafe char* InvalidXmlChar(int ch, char* pDst, bool entitize)
{
- Debug.Assert(!_xmlCharType.IsWhiteSpace((char)ch));
- Debug.Assert(!_xmlCharType.IsAttributeValueChar((char)ch));
+ Debug.Assert(!XmlCharType.IsWhiteSpace((char)ch));
+ Debug.Assert(!XmlCharType.IsAttributeValueChar((char)ch));
if (_checkCharacters)
{
@@ -1853,7 +1848,7 @@ protected void ValidateContentChars(string chars, string propertyName, bool allo
{
if (allowOnlyWhitespace)
{
- if (!_xmlCharType.IsOnlyWhitespace(chars))
+ if (!XmlCharType.IsOnlyWhitespace(chars))
{
throw new ArgumentException(SR.Format(SR.Xml_IndentCharsNotWhitespace, propertyName));
}
@@ -1863,7 +1858,7 @@ protected void ValidateContentChars(string chars, string propertyName, bool allo
string error = null;
for (int i = 0; i < chars.Length; i++)
{
- if (!_xmlCharType.IsTextChar(chars[i]))
+ if (!XmlCharType.IsTextChar(chars[i]))
{
switch (chars[i])
{
diff --git a/src/libraries/System.Private.Xml/src/System/Xml/Core/XmlEncodedRawTextWriterAsync.cs b/src/libraries/System.Private.Xml/src/System/Xml/Core/XmlEncodedRawTextWriterAsync.cs
index b48b6051fce649..9231fe81926b4f 100644
--- a/src/libraries/System.Private.Xml/src/System/Xml/Core/XmlEncodedRawTextWriterAsync.cs
+++ b/src/libraries/System.Private.Xml/src/System/Xml/Core/XmlEncodedRawTextWriterAsync.cs
@@ -458,7 +458,7 @@ public override async Task WriteCharEntityAsync(char ch)
CheckAsyncCall();
string strVal = ((int)ch).ToString("X", NumberFormatInfo.InvariantInfo);
- if (_checkCharacters && !_xmlCharType.IsCharData(ch))
+ if (_checkCharacters && !XmlCharType.IsCharData(ch))
{
// we just have a single char, not a surrogate, therefore we have to pass in '\0' for the second char
throw XmlConvert.CreateInvalidCharException(ch, '\0');
@@ -737,7 +737,7 @@ protected unsafe int WriteAttributeTextBlockNoFlush(char* pSrc, char* pSrcEnd)
pDstEnd = pDstBegin + _bufLen;
}
- while (pDst < pDstEnd && _xmlCharType.IsAttributeValueChar((char)(ch = *pSrc)))
+ while (pDst < pDstEnd && XmlCharType.IsAttributeValueChar((char)(ch = *pSrc)))
{
*pDst = (char)ch;
pDst++;
@@ -941,7 +941,7 @@ protected unsafe int WriteElementTextBlockNoFlush(char* pSrc, char* pSrcEnd, out
pDstEnd = pDstBegin + _bufLen;
}
- while (pDst < pDstEnd && _xmlCharType.IsAttributeValueChar((char)(ch = *pSrc)))
+ while (pDst < pDstEnd && XmlCharType.IsAttributeValueChar((char)(ch = *pSrc)))
{
*pDst = (char)ch;
pDst++;
@@ -1357,7 +1357,7 @@ protected unsafe int WriteRawWithCharCheckingNoFlush(char* pSrcBegin, char* pSrc
pDstEnd = pDstBegin + _bufLen;
}
- while (pDst < pDstEnd && _xmlCharType.IsTextChar((char)(ch = *pSrc)))
+ while (pDst < pDstEnd && XmlCharType.IsTextChar((char)(ch = *pSrc)))
{
*pDst = (char)ch;
pDst++;
@@ -1559,7 +1559,7 @@ protected unsafe int WriteCommentOrPiNoFlush(string text, int index, int count,
pDstEnd = pDstBegin + _bufLen;
}
- while (pDst < pDstEnd && (_xmlCharType.IsTextChar((char)(ch = *pSrc)) && ch != stopChar))
+ while (pDst < pDstEnd && (XmlCharType.IsTextChar((char)(ch = *pSrc)) && ch != stopChar))
{
*pDst = (char)ch;
pDst++;
@@ -1749,7 +1749,7 @@ protected unsafe int WriteCDataSectionNoFlush(string text, int index, int count,
pDstEnd = pDstBegin + _bufLen;
}
- while (pDst < pDstEnd && (_xmlCharType.IsAttributeValueChar((char)(ch = *pSrc)) && ch != ']'))
+ while (pDst < pDstEnd && (XmlCharType.IsAttributeValueChar((char)(ch = *pSrc)) && ch != ']'))
{
*pDst = (char)ch;
pDst++;
diff --git a/src/libraries/System.Private.Xml/src/System/Xml/Core/XmlTextEncoder.cs b/src/libraries/System.Private.Xml/src/System/Xml/Core/XmlTextEncoder.cs
index a613b1ca9002a6..a25a9f08501aae 100644
--- a/src/libraries/System.Private.Xml/src/System/Xml/Core/XmlTextEncoder.cs
+++ b/src/libraries/System.Private.Xml/src/System/Xml/Core/XmlTextEncoder.cs
@@ -31,9 +31,6 @@ internal class XmlTextEncoder
private StringBuilder? _attrValue;
private bool _cacheAttrValue;
- // XmlCharType
- private XmlCharType _xmlCharType;
-
//
// Constructor
//
@@ -41,7 +38,6 @@ internal XmlTextEncoder(TextWriter textWriter)
{
_textWriter = textWriter;
_quoteChar = '"';
- _xmlCharType = XmlCharType.Instance;
}
//
@@ -146,7 +142,7 @@ internal void Write(char[] array, int offset, int count)
while (true)
{
int startPos = i;
- while (i < endPos && _xmlCharType.IsAttributeValueChar(ch = array[i]))
+ while (i < endPos && XmlCharType.IsAttributeValueChar(ch = array[i]))
{
i++;
}
@@ -224,7 +220,7 @@ internal void Write(char[] array, int offset, int count)
}
else
{
- Debug.Assert((ch < 0x20 && !_xmlCharType.IsWhiteSpace(ch)) || (ch > 0xFFFD));
+ Debug.Assert((ch < 0x20 && !XmlCharType.IsWhiteSpace(ch)) || (ch > 0xFFFD));
WriteCharEntityImpl(ch);
}
break;
@@ -274,7 +270,7 @@ internal void Write(string text)
char ch = (char)0;
while (true)
{
- while (i < len && _xmlCharType.IsAttributeValueChar(ch = text[i]))
+ while (i < len && XmlCharType.IsAttributeValueChar(ch = text[i]))
{
i++;
}
@@ -380,14 +376,14 @@ internal void Write(string text)
}
else
{
- Debug.Assert((ch < 0x20 && !_xmlCharType.IsWhiteSpace(ch)) || (ch > 0xFFFD));
+ Debug.Assert((ch < 0x20 && !XmlCharType.IsWhiteSpace(ch)) || (ch > 0xFFFD));
WriteCharEntityImpl(ch);
}
break;
}
i++;
startPos = i;
- while (i < len && _xmlCharType.IsAttributeValueChar(ch = text[i]))
+ while (i < len && XmlCharType.IsAttributeValueChar(ch = text[i]))
{
i++;
}
@@ -413,7 +409,7 @@ internal void WriteRawWithSurrogateChecking(string text)
while (true)
{
- while (i < len && (_xmlCharType.IsCharData((ch = text[i])) || ch < 0x20))
+ while (i < len && (XmlCharType.IsCharData((ch = text[i])) || ch < 0x20))
{
i++;
}
diff --git a/src/libraries/System.Private.Xml/src/System/Xml/Core/XmlTextReaderImpl.cs b/src/libraries/System.Private.Xml/src/System/Xml/Core/XmlTextReaderImpl.cs
index 7927d28da61745..eefbba970c17fd 100644
--- a/src/libraries/System.Private.Xml/src/System/Xml/Core/XmlTextReaderImpl.cs
+++ b/src/libraries/System.Private.Xml/src/System/Xml/Core/XmlTextReaderImpl.cs
@@ -143,9 +143,6 @@ private enum InitInputType
#endregion
- // XmlCharType instance
- private XmlCharType _xmlCharType = XmlCharType.Instance;
-
// current parsing state (aka. scanner data)
private ParsingState _ps;
@@ -3707,7 +3704,7 @@ private bool ParseXmlDeclaration(bool isTextDecl)
}
if (!XmlConvert.StrEqual(_ps.chars, _ps.charPos, 5, XmlDeclarationBeginning) ||
- _xmlCharType.IsNameSingleChar(_ps.chars![_ps.charPos + 5]))
+ XmlCharType.IsNameSingleChar(_ps.chars![_ps.charPos + 5]))
{
goto NoXmlDecl;
}
@@ -3889,7 +3886,7 @@ private bool ParseXmlDeclaration(bool isTextDecl)
char[] chars;
Continue:
chars = _ps.chars;
- while (_xmlCharType.IsAttributeValueChar(chars[pos]))
+ while (XmlCharType.IsAttributeValueChar(chars[pos]))
{
pos++;
}
@@ -4431,7 +4428,7 @@ private void ParseElement()
// case occurs (like end of buffer, invalid name char)
ContinueStartName:
// check element name start char
- if (_xmlCharType.IsStartNCNameSingleChar(chars[pos]))
+ if (XmlCharType.IsStartNCNameSingleChar(chars[pos]))
{
pos++;
}
@@ -4444,7 +4441,7 @@ private void ParseElement()
// parse element name
while (true)
{
- if (_xmlCharType.IsNCNameSingleChar(chars[pos]))
+ if (XmlCharType.IsNCNameSingleChar(chars[pos]))
{
pos++;
}
@@ -4519,7 +4516,7 @@ private void ParseElement()
char ch = chars[pos];
// whitespace after element name -> there are probably some attributes
- bool isWs = _xmlCharType.IsWhiteSpace(ch);
+ bool isWs = XmlCharType.IsWhiteSpace(ch);
if (isWs)
{
_ps.charPos = pos;
@@ -4707,7 +4704,7 @@ private void ParseEndElement()
goto ReadData;
}
- if (_xmlCharType.IsNCNameSingleChar(chars[pos]) || (chars[pos] == ':'))
+ if (XmlCharType.IsNCNameSingleChar(chars[pos]) || (chars[pos] == ':'))
{
ThrowTagMismatch(startTagNode);
}
@@ -4716,7 +4713,7 @@ private void ParseEndElement()
if (chars[pos] != '>')
{
char tmpCh;
- while (_xmlCharType.IsWhiteSpace(tmpCh = chars[pos]))
+ while (XmlCharType.IsWhiteSpace(tmpCh = chars[pos]))
{
pos++;
switch (tmpCh)
@@ -4814,7 +4811,7 @@ private void ParseAttributes()
// eat whitespace
int lineNoDelta = 0;
char tmpch0;
- while (_xmlCharType.IsWhiteSpace(tmpch0 = chars[pos]))
+ while (XmlCharType.IsWhiteSpace(tmpch0 = chars[pos]))
{
if (tmpch0 == (char)0xA)
{
@@ -4846,7 +4843,7 @@ private void ParseAttributes()
char tmpch1;
int startNameCharSize = 0;
- if (_xmlCharType.IsStartNCNameSingleChar(tmpch1 = chars[pos]))
+ if (XmlCharType.IsStartNCNameSingleChar(tmpch1 = chars[pos]))
{
startNameCharSize = 1;
}
@@ -4918,7 +4915,7 @@ private void ParseAttributes()
while (true)
{
- if (_xmlCharType.IsNCNameSingleChar(tmpch2 = chars[pos]))
+ if (XmlCharType.IsNCNameSingleChar(tmpch2 = chars[pos]))
{
pos++;
}
@@ -4948,7 +4945,7 @@ private void ParseAttributes()
colonPos = pos;
pos++;
- if (_xmlCharType.IsStartNCNameSingleChar(chars[pos]))
+ if (XmlCharType.IsStartNCNameSingleChar(chars[pos]))
{
pos++;
goto ContinueParseName;
@@ -5004,7 +5001,7 @@ private void ParseAttributes()
// parse attribute value
char tmpch3;
- while (_xmlCharType.IsAttributeValueChar(tmpch3 = chars[pos]))
+ while (XmlCharType.IsAttributeValueChar(tmpch3 = chars[pos]))
{
pos++;
}
@@ -5236,7 +5233,7 @@ private void ParseAttributeValueSlow(int curPos, char quoteChar, NodeData attr)
while (true)
{
// parse the rest of the attribute value
- while (_xmlCharType.IsAttributeValueChar(chars[pos]))
+ while (XmlCharType.IsAttributeValueChar(chars[pos]))
{
pos++;
}
@@ -5678,7 +5675,7 @@ private bool ParseText(out int startPos, out int endPos, ref int outOrChars)
while (true)
{
// parse text content
- while (_xmlCharType.IsTextChar(c = chars[pos]))
+ while (XmlCharType.IsTextChar(c = chars[pos]))
{
orChars |= (int)c;
pos++;
@@ -5752,7 +5749,7 @@ private bool ParseText(out int startPos, out int endPos, ref int outOrChars)
rcount += (charRefEndPos - pos - charCount);
pos = charRefEndPos;
- if (!_xmlCharType.IsWhiteSpace(chars[charRefEndPos - charCount]) ||
+ if (!XmlCharType.IsWhiteSpace(chars[charRefEndPos - charCount]) ||
(_v1Compat && entityType == EntityType.CharacterDec))
{
orChars |= 0xFF;
@@ -5781,7 +5778,7 @@ private bool ParseText(out int startPos, out int endPos, ref int outOrChars)
break;
case EntityType.CharacterHex:
case EntityType.CharacterNamed:
- if (!_xmlCharType.IsWhiteSpace(_ps.chars[pos - 1]))
+ if (!XmlCharType.IsWhiteSpace(_ps.chars[pos - 1]))
{
orChars |= 0xFF;
}
@@ -6060,7 +6057,7 @@ private bool ParseRootLevelWhitespace()
}
}
- if (_xmlCharType.IsCharData(_ps.chars[_ps.charPos]))
+ if (XmlCharType.IsCharData(_ps.chars[_ps.charPos]))
{
Throw(SR.Xml_InvalidRootData);
}
@@ -6448,7 +6445,7 @@ private bool ParsePIValue(out int outStartPos, out int outEndPos)
while (true)
{
char tmpch;
- while (_xmlCharType.IsTextChar(tmpch = chars[pos]) && tmpch != '?')
+ while (XmlCharType.IsTextChar(tmpch = chars[pos]) && tmpch != '?')
{
pos++;
}
@@ -6654,7 +6651,7 @@ private bool ParseCDataOrComment(XmlNodeType type, out int outStartPos, out int
while (true)
{
char tmpch;
- while (_xmlCharType.IsTextChar(tmpch = chars[pos]) && tmpch != stopChar)
+ while (XmlCharType.IsTextChar(tmpch = chars[pos]) && tmpch != stopChar)
{
pos++;
}
@@ -6818,7 +6815,7 @@ private bool ParseDoctypeDecl()
}
Debug.Assert(_ps.chars != null);
- if (!_xmlCharType.IsWhiteSpace(_ps.chars[_ps.charPos + 7]))
+ if (!XmlCharType.IsWhiteSpace(_ps.chars[_ps.charPos + 7]))
{
ThrowExpectingWhitespace(_ps.charPos + 7);
}
@@ -7008,7 +7005,7 @@ private void SkipUntil(char stopChar, bool recognizeLiterals)
{
char ch;
- while (_xmlCharType.IsAttributeValueChar(ch = chars[pos]) && chars[pos] != stopChar && ch != '-' && ch != '?')
+ while (XmlCharType.IsAttributeValueChar(ch = chars[pos]) && chars[pos] != stopChar && ch != '-' && ch != '?')
{
pos++;
}
@@ -7427,7 +7424,7 @@ private int ParseNumericCharRefInline(int startPos, bool expand, StringBuilder?
if (val <= char.MaxValue)
{
char ch = (char)val;
- if (!_xmlCharType.IsCharData(ch) &&
+ if (!XmlCharType.IsCharData(ch) &&
((_v1Compat && _normalize) || (!_v1Compat && _checkCharacters)))
{
Throw((_ps.chars[startPos + 2] == 'x') ? startPos + 3 : startPos + 2, SR.Xml_InvalidCharacter, XmlException.BuildCharExceptionArgs(ch, '\0'));
@@ -7665,7 +7662,7 @@ private int ParseQName(bool isQName, int startOffset, out int colonPos)
char[] chars = _ps.chars;
// start name char
- if (_xmlCharType.IsStartNCNameSingleChar(chars[pos]))
+ if (XmlCharType.IsStartNCNameSingleChar(chars[pos]))
{
pos++;
}
@@ -7689,7 +7686,7 @@ private int ParseQName(bool isQName, int startOffset, out int colonPos)
// parse name
while (true)
{
- if (_xmlCharType.IsNCNameSingleChar(chars[pos]))
+ if (XmlCharType.IsNCNameSingleChar(chars[pos]))
{
pos++;
}
@@ -8441,14 +8438,14 @@ private int IncrementalRead()
char c;
if (_incReadState == IncrementalReadState.Attributes)
{
- while (_xmlCharType.IsAttributeValueChar(c = chars[pos]) && c != '/')
+ while (XmlCharType.IsAttributeValueChar(c = chars[pos]) && c != '/')
{
pos++;
}
}
else
{
- while (_xmlCharType.IsAttributeValueChar(c = chars[pos]))
+ while (XmlCharType.IsAttributeValueChar(c = chars[pos]))
{
pos++;
}
@@ -8542,7 +8539,7 @@ private int IncrementalRead()
// ParseQName can flush the buffer, so we need to update the startPos, pos and chars after calling it
int endPos = ParseQName(true, 2, out colonPos);
if (XmlConvert.StrEqual(chars, _ps.charPos + 2, endPos - _ps.charPos - 2, _curNode.GetNameWPrefix(_nameTable)) &&
- (_ps.chars[endPos] == '>' || _xmlCharType.IsWhiteSpace(_ps.chars[endPos])))
+ (_ps.chars[endPos] == '>' || XmlCharType.IsWhiteSpace(_ps.chars[endPos])))
{
if (--_incReadDepth > 0)
{
@@ -8551,7 +8548,7 @@ private int IncrementalRead()
}
_ps.charPos = endPos;
- if (_xmlCharType.IsWhiteSpace(_ps.chars[endPos]))
+ if (XmlCharType.IsWhiteSpace(_ps.chars[endPos]))
{
EatWhitespaces(null);
}
@@ -8582,7 +8579,7 @@ private int IncrementalRead()
// ParseQName can flush the buffer, so we need to update the startPos, pos and chars after calling it
int endPos = ParseQName(true, 1, out colonPos);
if (XmlConvert.StrEqual(_ps.chars, _ps.charPos + 1, endPos - _ps.charPos - 1, _curNode.localName) &&
- (_ps.chars[endPos] == '>' || _ps.chars[endPos] == '/' || _xmlCharType.IsWhiteSpace(_ps.chars[endPos])))
+ (_ps.chars[endPos] == '>' || _ps.chars[endPos] == '/' || XmlCharType.IsWhiteSpace(_ps.chars[endPos])))
{
_incReadDepth++;
_incReadState = IncrementalReadState.Attributes;
@@ -8746,7 +8743,7 @@ private bool ParseAttributeValueChunk()
while (true)
{
- while (_xmlCharType.IsAttributeValueChar(chars[pos]))
+ while (XmlCharType.IsAttributeValueChar(chars[pos]))
pos++;
switch (chars[pos])
@@ -8790,7 +8787,7 @@ private bool ParseAttributeValueChunk()
case EntityType.CharacterHex:
case EntityType.CharacterNamed:
chars = _ps.chars;
- if (_normalize && _xmlCharType.IsWhiteSpace(chars[_ps.charPos]) && pos - _ps.charPos == 1)
+ if (_normalize && XmlCharType.IsWhiteSpace(chars[_ps.charPos]) && pos - _ps.charPos == 1)
{
chars[_ps.charPos] = (char)0x20; // CDATA normalization of character references in entities
}
@@ -8948,10 +8945,10 @@ private void ThrowUnexpectedToken(string expectedToken1, string? expectedToken2)
Debug.Assert(_ps.chars != null);
- if (_xmlCharType.IsNCNameSingleChar(_ps.chars[_ps.charPos]))
+ if (XmlCharType.IsNCNameSingleChar(_ps.chars[_ps.charPos]))
{
int pos = _ps.charPos + 1;
- while (_xmlCharType.IsNCNameSingleChar(_ps.chars[pos]))
+ while (XmlCharType.IsNCNameSingleChar(_ps.chars[pos]))
{
pos++;
}
diff --git a/src/libraries/System.Private.Xml/src/System/Xml/Core/XmlTextReaderImplAsync.cs b/src/libraries/System.Private.Xml/src/System/Xml/Core/XmlTextReaderImplAsync.cs
index d4ef7509a8f7d3..178c401897c452 100644
--- a/src/libraries/System.Private.Xml/src/System/Xml/Core/XmlTextReaderImplAsync.cs
+++ b/src/libraries/System.Private.Xml/src/System/Xml/Core/XmlTextReaderImplAsync.cs
@@ -1246,7 +1246,7 @@ private async Task ParseXmlDeclarationAsync(bool isTextDecl)
}
if (!XmlConvert.StrEqual(_ps.chars, _ps.charPos, 5, XmlDeclarationBeginning) ||
- _xmlCharType.IsNameSingleChar(_ps.chars[_ps.charPos + 5]))
+ XmlCharType.IsNameSingleChar(_ps.chars[_ps.charPos + 5]))
{
goto NoXmlDecl;
}
@@ -1425,7 +1425,7 @@ private async Task ParseXmlDeclarationAsync(bool isTextDecl)
Continue:
chars = _ps.chars;
- while (_xmlCharType.IsAttributeValueChar(chars[pos]))
+ while (XmlCharType.IsAttributeValueChar(chars[pos]))
{
pos++;
}
@@ -1939,7 +1939,7 @@ private Task ParseElementAsync()
// case occurs (like end of buffer, invalid name char)
ContinueStartName:
// check element name start char
- if (_xmlCharType.IsStartNCNameSingleChar(chars[pos]))
+ if (XmlCharType.IsStartNCNameSingleChar(chars[pos]))
{
pos++;
}
@@ -1952,7 +1952,7 @@ private Task ParseElementAsync()
// parse element name
while (true)
{
- if (_xmlCharType.IsNCNameSingleChar(chars[pos]))
+ if (XmlCharType.IsNCNameSingleChar(chars[pos]))
{
pos++;
}
@@ -2058,7 +2058,7 @@ private Task ParseElementAsync_SetElement(int colonPos, int pos)
// whitespace after element name -> there are probably some attributes
bool isWs;
- isWs = _xmlCharType.IsWhiteSpace(ch);
+ isWs = XmlCharType.IsWhiteSpace(ch);
_ps.charPos = pos;
if (isWs)
@@ -2269,7 +2269,7 @@ private Task ParseEndElementAsync_CheckEndTag(int nameLen, NodeData startTagNode
bool tagMismatch = false;
- if (_xmlCharType.IsNCNameSingleChar(chars[pos]) || (chars[pos] == ':'))
+ if (XmlCharType.IsNCNameSingleChar(chars[pos]) || (chars[pos] == ':'))
{
tagMismatch = true;
}
@@ -2283,7 +2283,7 @@ private Task ParseEndElementAsync_CheckEndTag(int nameLen, NodeData startTagNode
if (chars[pos] != '>')
{
char tmpCh;
- while (_xmlCharType.IsWhiteSpace(tmpCh = chars[pos]))
+ while (XmlCharType.IsWhiteSpace(tmpCh = chars[pos]))
{
pos++;
switch (tmpCh)
@@ -2392,7 +2392,7 @@ private async Task ParseAttributesAsync()
int lineNoDelta = 0;
char tmpch0;
- while (_xmlCharType.IsWhiteSpace(tmpch0 = chars[pos]))
+ while (XmlCharType.IsWhiteSpace(tmpch0 = chars[pos]))
{
if (tmpch0 == (char)0xA)
{
@@ -2424,7 +2424,7 @@ private async Task ParseAttributesAsync()
char tmpch1;
int startNameCharSize = 0;
- if (_xmlCharType.IsStartNCNameSingleChar(tmpch1 = chars[pos]))
+ if (XmlCharType.IsStartNCNameSingleChar(tmpch1 = chars[pos]))
{
startNameCharSize = 1;
}
@@ -2496,7 +2496,7 @@ private async Task ParseAttributesAsync()
while (true)
{
- if (_xmlCharType.IsNCNameSingleChar(tmpch2 = chars[pos]))
+ if (XmlCharType.IsNCNameSingleChar(tmpch2 = chars[pos]))
{
pos++;
}
@@ -2526,7 +2526,7 @@ private async Task ParseAttributesAsync()
colonPos = pos;
pos++;
- if (_xmlCharType.IsStartNCNameSingleChar(chars[pos]))
+ if (XmlCharType.IsStartNCNameSingleChar(chars[pos]))
{
pos++;
goto ContinueParseName;
@@ -2592,7 +2592,7 @@ private async Task ParseAttributesAsync()
// parse attribute value
char tmpch3;
- while (_xmlCharType.IsAttributeValueChar(tmpch3 = chars[pos]))
+ while (XmlCharType.IsAttributeValueChar(tmpch3 = chars[pos]))
{
pos++;
}
@@ -2691,7 +2691,7 @@ private async Task ParseAttributeValueSlowAsync(int curPos, char quoteChar, Node
while (true)
{
// parse the rest of the attribute value
- while (_xmlCharType.IsAttributeValueChar(chars[pos]))
+ while (XmlCharType.IsAttributeValueChar(chars[pos]))
{
pos++;
}
@@ -3325,7 +3325,7 @@ private enum ParseTextFunction
while (true)
{
// parse text content
- while (_xmlCharType.IsTextChar(c = chars[pos]))
+ while (XmlCharType.IsTextChar(c = chars[pos]))
{
orChars |= (int)c;
pos++;
@@ -3441,7 +3441,7 @@ private enum ParseTextFunction
rcount += (charRefEndPos - pos - charCount);
pos = charRefEndPos;
- if (!_xmlCharType.IsWhiteSpace(chars[charRefEndPos - charCount]) ||
+ if (!XmlCharType.IsWhiteSpace(chars[charRefEndPos - charCount]) ||
(_v1Compat && entityType == EntityType.CharacterDec))
{
orChars |= 0xFF;
@@ -3479,7 +3479,7 @@ private enum ParseTextFunction
break;
case EntityType.CharacterHex:
case EntityType.CharacterNamed:
- if (!_xmlCharType.IsWhiteSpace(_ps.chars[pos - 1]))
+ if (!XmlCharType.IsWhiteSpace(_ps.chars[pos - 1]))
{
orChars |= 0xFF;
}
@@ -3781,7 +3781,7 @@ private async Task ParseRootLevelWhitespaceAsync()
}
}
- if (_xmlCharType.IsCharData(_ps.chars[_ps.charPos]))
+ if (XmlCharType.IsCharData(_ps.chars[_ps.charPos]))
{
Throw(SR.Xml_InvalidRootData);
}
@@ -4118,7 +4118,7 @@ private async Task ParsePIAsync(StringBuilder? piInDtdStringBuilder)
{
char tmpch;
- while (_xmlCharType.IsTextChar(tmpch = chars[pos]) && tmpch != '?')
+ while (XmlCharType.IsTextChar(tmpch = chars[pos]) && tmpch != '?')
{
pos++;
}
@@ -4345,7 +4345,7 @@ private async Task ParseCDataOrCommentAsync(XmlNodeType type)
while (true)
{
char tmpch;
- while (_xmlCharType.IsTextChar(tmpch = chars[pos]) && tmpch != stopChar)
+ while (XmlCharType.IsTextChar(tmpch = chars[pos]) && tmpch != stopChar)
{
pos++;
}
@@ -4508,7 +4508,7 @@ private async Task ParseDoctypeDeclAsync()
{
ThrowUnexpectedToken((!_rootElementParsed && _dtdInfo == null) ? "DOCTYPE" : "