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

◆ ParseAttlistDeclAsync()

async Task System.Xml.DtdParser.ParseAttlistDeclAsync ( )
inlineprivate

Definition at line 3373 of file DtdParser.cs.

3374 {
3376 {
3377 XmlQualifiedName nameQualified = GetNameQualified(canHavePrefix: true);
3379 {
3382 }
3383 SchemaAttDef attrDef = null;
3384 while (true)
3385 {
3387 {
3388 case Token.QName:
3389 {
3392 {
3393 IsDeclaredInExternal = !ParsingInternalSubset,
3394 LineNumber = LineNo,
3395 LinePosition = LinePos - (_curPos - _tokenStartPos)
3396 };
3397 bool attrDefAlreadyExists = elementDecl.GetAttDef(attrDef.Name) != null;
3400 if (attrDef.Prefix.Length > 0 && attrDef.Prefix.Equals("xml"))
3401 {
3402 if (attrDef.Name.Name == "space")
3403 {
3404 if (_v1Compat)
3405 {
3406 string text = attrDef.DefaultValueExpanded.Trim();
3407 if (text.Equals("preserve") || text.Equals("default"))
3408 {
3410 }
3411 }
3412 else
3413 {
3415 if (attrDef.TokenizedType != XmlTokenizedType.ENUMERATION)
3416 {
3417 Throw(System.SR.Xml_EnumerationRequired, string.Empty, attrDef.LineNumber, attrDef.LinePosition);
3418 }
3419 if (_validate)
3420 {
3422 }
3423 }
3424 }
3425 else if (attrDef.Name.Name == "lang")
3426 {
3428 }
3429 }
3431 {
3432 elementDecl.AddAttDef(attrDef);
3433 }
3434 continue;
3435 }
3436 case Token.GreaterThan:
3437 if (_v1Compat && attrDef != null && attrDef.Prefix.Length > 0 && attrDef.Prefix.Equals("xml") && attrDef.Name.Name == "space")
3438 {
3440 if (attrDef.Datatype.TokenizedType != XmlTokenizedType.ENUMERATION)
3441 {
3442 Throw(System.SR.Xml_EnumerationRequired, string.Empty, attrDef.LineNumber, attrDef.LinePosition);
3443 }
3444 if (_validate)
3445 {
3447 }
3448 }
3449 return;
3450 }
3451 break;
3452 }
3453 }
3455 }
bool TryGetValue(TKey key, [MaybeNullWhen(false)] out TValue value)
void Add(TKey key, TValue value)
static string Xml_EnumerationRequired
Definition SR.cs:248
Definition SR.cs:7
async Task ParseAttlistTypeAsync(SchemaAttDef attrDef, SchemaElementDecl elementDecl, bool ignoreErrors)
void Throw(int curPos, string res)
XmlQualifiedName GetNameQualified(bool canHavePrefix)
IDtdParserAdapterWithValidation _readerAdapterWithValidation
Definition DtdParser.cs:142
async Task ParseAttlistDefaultAsync(SchemaAttDef attrDef, bool ignoreErrors)
SchemaInfo _schemaInfo
Definition DtdParser.cs:146
async Task< Token > GetTokenAsync(bool needWhiteSpace)
Dictionary< XmlQualifiedName, SchemaElementDecl > ElementDecls
Definition SchemaInfo.cs:55
Dictionary< XmlQualifiedName, SchemaElementDecl > UndeclaredElementDecls
Definition SchemaInfo.cs:57

References System.Xml.DtdParser._curPos, System.Xml.DtdParser._readerAdapterWithValidation, System.Xml.DtdParser._schemaInfo, System.Xml.DtdParser._tokenStartPos, System.Xml.DtdParser._v1Compat, System.Xml.DtdParser._validate, System.Collections.Generic.Dictionary< TKey, TValue >.Add(), System.Xml.Dictionary, System.Xml.Schema.SchemaInfo.ElementDecls, System.Xml.DtdParser.GetNameQualified(), System.Xml.DtdParser.GetTokenAsync(), System.Xml.DtdParser.LineNo, System.Xml.DtdParser.LinePos, System.Xml.DtdParser.OnUnexpectedError(), System.Xml.DtdParser.ParseAttlistDefaultAsync(), System.Xml.DtdParser.ParseAttlistTypeAsync(), System.Xml.DtdParser.ParsingInternalSubset, System.text, System.Xml.DtdParser.Throw(), System.Collections.Generic.Dictionary< TKey, TValue >.TryGetValue(), System.Xml.Schema.SchemaInfo.UndeclaredElementDecls, System.Xml.IDtdParserAdapterWithValidation.ValidationEventHandling, and System.SR.Xml_EnumerationRequired.

Referenced by System.Xml.DtdParser.ParseSubsetAsync().