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

◆ ParseExternalId()

void System.Xml.DtdParser.ParseExternalId ( Token idTokenType,
Token declType,
out string publicId,
out string systemId )
inlineprivate

Definition at line 1252 of file DtdParser.cs.

1253 {
1254 LineInfo keywordLineInfo = new LineInfo(LineNo, LinePos - 6);
1255 publicId = null;
1256 systemId = null;
1257 if (GetToken(needWhiteSpace: true) != Token.Literal)
1258 {
1259 ThrowUnexpectedToken(_curPos, "\"", "'");
1260 }
1261 if (idTokenType == Token.SYSTEM)
1262 {
1263 systemId = GetValue();
1264 if (systemId.Contains('#'))
1265 {
1266 Throw(_curPos - systemId.Length - 1, System.SR.Xml_FragmentId, new string[2]
1267 {
1268 systemId.Substring(systemId.IndexOf('#')),
1269 systemId
1270 });
1271 }
1272 if (declType == Token.DOCTYPE && !_freeFloatingDtd)
1273 {
1276 }
1277 return;
1278 }
1279 publicId = GetValue();
1280 int num;
1281 if ((num = XmlCharType.IsPublicId(publicId)) >= 0)
1282 {
1283 ThrowInvalidChar(_curPos - 1 - publicId.Length + num, publicId, num);
1284 }
1285 if (declType == Token.DOCTYPE && !_freeFloatingDtd)
1286 {
1289 if (GetToken(needWhiteSpace: false) == Token.Literal)
1290 {
1291 if (!_whitespaceSeen)
1292 {
1294 }
1295 systemId = GetValue();
1298 }
1299 else
1300 {
1301 ThrowUnexpectedToken(_curPos, "\"", "'");
1302 }
1303 }
1304 else if (GetToken(needWhiteSpace: false) == Token.Literal)
1305 {
1306 if (!_whitespaceSeen)
1307 {
1309 }
1310 systemId = GetValue();
1311 }
1312 else if (declType != Token.NOTATION)
1313 {
1314 ThrowUnexpectedToken(_curPos, "\"", "'");
1315 }
1316 }
bool ICollection< KeyValuePair< TKey, TValue > >. Contains(KeyValuePair< TKey, TValue > keyValuePair)
static string Xml_FragmentId
Definition SR.cs:252
static string Xml_ExpectingWhiteSpace
Definition SR.cs:66
Definition SR.cs:7
void Throw(int curPos, string res)
LineInfo _literalLineInfo
Definition DtdParser.cs:192
Token GetToken(bool needWhiteSpace)
void ThrowUnexpectedToken(int pos, string expectedToken)
IDtdParserAdapter _readerAdapter
Definition DtdParser.cs:140
void ThrowInvalidChar(int pos, string data, int invCharPos)
void OnSystemId(string systemId, LineInfo keywordLineInfo, LineInfo systemLiteralLineInfo)
void OnPublicId(string publicId, LineInfo keywordLineInfo, LineInfo publicLiteralLineInfo)

References System.Xml.DtdParser._curPos, System.Xml.DtdParser._freeFloatingDtd, System.Xml.DtdParser._literalLineInfo, System.Xml.DtdParser._literalQuoteChar, System.Xml.DtdParser._readerAdapter, System.Xml.DtdParser._whitespaceSeen, System.Collections.Generic.Dictionary< TKey, TValue >.Contains(), System.Xml.DtdParser.GetToken(), System.Xml.DtdParser.GetValue(), System.Xml.XmlCharType.IsPublicId(), System.Xml.DtdParser.LineNo, System.Xml.LineInfo.lineNo, System.Xml.DtdParser.LinePos, System.Xml.LineInfo.linePos, System.Xml.IDtdParserAdapter.OnPublicId(), System.Xml.IDtdParserAdapter.OnSystemId(), System.Xml.DtdParser.Throw(), System.Xml.DtdParser.ThrowInvalidChar(), System.Xml.DtdParser.ThrowUnexpectedToken(), System.SR.Xml_ExpectingWhiteSpace, and System.SR.Xml_FragmentId.

Referenced by System.Xml.DtdParser.ParseEntityDecl(), System.Xml.DtdParser.ParseInDocumentDtd(), and System.Xml.DtdParser.ParseNotationDecl().