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

◆ LoadNameAndType()

GenerateNameType System.Xml.Xsl.IlGen.XmlILVisitor.LoadNameAndType ( XPathNodeType nodeType,
QilNode ndName,
bool isStart,
bool callChk )
inlineprivate

Definition at line 2557 of file XmlILVisitor.cs.

2558 {
2560 GenerateNameType result = GenerateNameType.StackName;
2561 if (ndName.NodeType == QilNodeType.LiteralQName)
2562 {
2563 if (isStart || !callChk)
2564 {
2566 string prefix = qilName.Prefix;
2567 string localName = qilName.LocalName;
2568 string namespaceUri = qilName.NamespaceUri;
2569 if (qilName.NamespaceUri.Length == 0)
2570 {
2571 _helper.Emit(OpCodes.Ldstr, qilName.LocalName);
2572 return GenerateNameType.LiteralLocalName;
2573 }
2574 if (!ValidateNames.ValidateName(prefix, localName, namespaceUri, nodeType, ValidateNames.Flags.CheckPrefixMapping))
2575 {
2576 if (isStart)
2577 {
2578 _helper.Emit(OpCodes.Ldstr, localName);
2579 _helper.Emit(OpCodes.Ldstr, namespaceUri);
2580 _helper.Construct(XmlILConstructors.QName);
2581 result = GenerateNameType.QName;
2582 }
2583 }
2584 else
2585 {
2587 _helper.Emit(OpCodes.Ldstr, localName);
2588 _helper.Emit(OpCodes.Ldstr, namespaceUri);
2589 result = GenerateNameType.LiteralName;
2590 }
2591 }
2592 }
2593 else if (isStart)
2594 {
2595 if (ndName.NodeType == QilNodeType.NameOf)
2596 {
2598 result = GenerateNameType.CopiedName;
2599 }
2600 else if (ndName.NodeType == QilNodeType.StrParseQName)
2601 {
2603 result = (((ndName as QilBinary).Right.XmlType.TypeCode != XmlTypeCode.String) ? GenerateNameType.TagNameAndMappings : GenerateNameType.TagNameAndNamespace);
2604 }
2605 else
2606 {
2608 result = GenerateNameType.QName;
2609 }
2610 }
2611 return result;
2612 }
static readonly OpCode Ldstr
Definition OpCodes.cs:231
void Construct(ConstructorInfo constr)
override QilNode VisitStrParseQName(QilBinary ndParsedTagName)

References System.Xml.Dictionary, System.Reflection.Emit.OpCodes.Ldstr, System.prefix, System.Xml.Xsl.IlGen.XmlILConstructors.QName, System.Collections.Generic.Right, and System.Xml.ValidateNames.ValidateName().

Referenced by System.Xml.Xsl.IlGen.XmlILVisitor.VisitAttributeCtor(), and System.Xml.Xsl.IlGen.XmlILVisitor.VisitElementCtor().