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

◆ Read()

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

Definition at line 150 of file XmlCharCheckingReader.cs.

151 {
152 switch (_state)
153 {
154 case State.Initial:
155 _state = State.Interactive;
156 if (reader.ReadState != 0)
157 {
158 break;
159 }
160 goto case State.Interactive;
161 case State.Error:
162 return false;
163 case State.InReadBinary:
165 _state = State.Interactive;
166 goto case State.Interactive;
167 case State.Interactive:
168 if (!reader.Read())
169 {
170 return false;
171 }
172 break;
173 default:
174 return false;
175 }
176 XmlNodeType nodeType = reader.NodeType;
177 if (!_checkCharacters)
178 {
179 switch (nodeType)
180 {
181 case XmlNodeType.Comment:
182 if (_ignoreComments)
183 {
184 return Read();
185 }
186 break;
187 case XmlNodeType.Whitespace:
189 {
190 return Read();
191 }
192 break;
193 case XmlNodeType.ProcessingInstruction:
194 if (_ignorePis)
195 {
196 return Read();
197 }
198 break;
199 case XmlNodeType.DocumentType:
200 if (_dtdProcessing == DtdProcessing.Prohibit)
201 {
202 Throw(System.SR.Xml_DtdIsProhibitedEx, string.Empty);
203 }
204 else if (_dtdProcessing == DtdProcessing.Ignore)
205 {
206 return Read();
207 }
208 break;
209 }
210 return true;
211 }
212 switch (nodeType)
213 {
214 case XmlNodeType.Element:
215 if (!_checkCharacters)
216 {
217 break;
218 }
221 {
222 do
223 {
226 }
227 while (reader.MoveToNextAttribute());
229 }
230 break;
231 case XmlNodeType.Text:
232 case XmlNodeType.CDATA:
234 {
236 }
237 break;
238 case XmlNodeType.EntityReference:
240 {
242 }
243 break;
244 case XmlNodeType.ProcessingInstruction:
245 if (_ignorePis)
246 {
247 return Read();
248 }
250 {
253 }
254 break;
255 case XmlNodeType.Comment:
256 if (_ignoreComments)
257 {
258 return Read();
259 }
261 {
263 }
264 break;
265 case XmlNodeType.DocumentType:
266 if (_dtdProcessing == DtdProcessing.Prohibit)
267 {
268 Throw(System.SR.Xml_DtdIsProhibitedEx, string.Empty);
269 }
270 else if (_dtdProcessing == DtdProcessing.Ignore)
271 {
272 return Read();
273 }
275 {
278 string attribute = reader.GetAttribute("SYSTEM");
279 if (attribute != null)
280 {
282 }
283 attribute = reader.GetAttribute("PUBLIC");
284 int invCharIndex;
285 if (attribute != null && (invCharIndex = XmlCharType.IsPublicId(attribute)) >= 0)
286 {
288 }
289 }
290 break;
291 case XmlNodeType.Whitespace:
293 {
294 return Read();
295 }
297 {
299 }
300 break;
301 case XmlNodeType.SignificantWhitespace:
303 {
305 }
306 break;
307 case XmlNodeType.EndElement:
309 {
311 }
312 break;
313 }
314 _lastNodeType = nodeType;
315 return true;
316 }
static string Xml_InvalidCharacter
Definition SR.cs:110
static string Xml_DtdIsProhibitedEx
Definition SR.cs:160
Definition SR.cs:7
void Throw(string res, string arg)
string? GetAttribute(string name)
XmlNodeType NodeType
Definition XmlReader.cs:62
virtual string Name
Definition XmlReader.cs:65

References System.Xml.XmlCharCheckingReader._checkCharacters, System.Xml.XmlCharCheckingReader._dtdProcessing, System.Xml.XmlCharCheckingReader._ignoreComments, System.Xml.XmlCharCheckingReader._ignorePis, System.Xml.XmlCharCheckingReader._ignoreWhitespace, System.Xml.XmlCharCheckingReader._lastNodeType, System.Xml.XmlCharCheckingReader._state, System.Xml.XmlException.BuildCharExceptionArgs(), System.Xml.XmlCharCheckingReader.CheckCharacters(), System.Xml.XmlCharCheckingReader.CheckWhitespace(), System.Xml.Dictionary, System.Xml.XmlCharCheckingReader.FinishReadBinary(), System.Xml.XmlReader.GetAttribute(), System.Xml.XmlCharType.IsPublicId(), System.Xml.XmlReader.LocalName, System.Xml.XmlReader.MoveToElement(), System.Xml.XmlReader.MoveToFirstAttribute(), System.Xml.XmlReader.MoveToNextAttribute(), System.Xml.XmlReader.Name, System.Xml.XmlReader.NodeType, System.Xml.XmlReader.Prefix, System.Xml.XmlCharCheckingReader.Read(), System.Xml.XmlReader.Read(), System.Xml.XmlWrappingReader.reader, System.Xml.XmlReader.ReadState, System.Xml.XmlCharCheckingReader.Throw(), System.Xml.XmlCharCheckingReader.ValidateQName(), System.Xml.XmlReader.Value, System.SR.Xml_DtdIsProhibitedEx, and System.SR.Xml_InvalidCharacter.

Referenced by System.Xml.XmlCharCheckingReader.Read().