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

◆ GetAttributes() [2/2]

ContextInfo System.Xml.Xsl.Xslt.XsltInput.GetAttributes ( XsltAttribute[] attributes)
inline

Definition at line 766 of file XsltInput.cs.

767 {
768 _attributes = attributes;
769 _records[0].value = null;
770 int attExPrefixes = 0;
771 int attExPrefixes2 = 0;
772 int xPathDefaultNamespace = 0;
773 int defaultCollation = 0;
774 int num = 0;
775 bool flag = IsXsltNamespace() && IsKeyword(_atoms.Output);
777 bool flag3 = _compiler.Version == 2;
778 for (int i = 0; i < attributes.Length; i++)
779 {
781 }
783 if (flag2 || (flag3 && !flag))
784 {
785 for (int j = 1; MoveToAttributeBase(j); j++)
786 {
788 {
789 SetVersion(j);
790 break;
791 }
792 }
793 }
794 if (_compiler.Version == 0)
795 {
796 SetVersion(1.0);
797 }
799 int num2 = (flag3 ? (XsltLoader.V2Opt | XsltLoader.V2Req) : (XsltLoader.V1Opt | XsltLoader.V1Req));
800 for (int k = 1; MoveToAttributeBase(k); k++)
801 {
802 if (IsNullNamespace())
803 {
804 string localName = LocalName;
805 int l;
806 for (l = 0; l < attributes.Length; l++)
807 {
808 if (Ref.Equal(localName, attributes[l].name) && (attributes[l].flags & num2) != 0)
809 {
811 break;
812 }
813 }
814 if (l == attributes.Length)
815 {
816 if (Ref.Equal(localName, _atoms.ExcludeResultPrefixes) && (flag2 || flag3))
817 {
819 continue;
820 }
821 if (Ref.Equal(localName, _atoms.ExtensionElementPrefixes) && (flag2 || flag3))
822 {
824 continue;
825 }
826 if (Ref.Equal(localName, _atoms.XPathDefaultNamespace) && flag3)
827 {
829 continue;
830 }
831 if (Ref.Equal(localName, _atoms.DefaultCollation) && flag3)
832 {
834 continue;
835 }
836 if (Ref.Equal(localName, _atoms.UseWhen) && flag3)
837 {
838 num = k;
839 continue;
840 }
842 }
843 }
844 else if (IsXsltNamespace())
845 {
847 }
848 }
849 _attributesRead = true;
855 if (num != 0)
856 {
858 }
860 for (int m = 0; m < attributes.Length; m++)
861 {
862 if (_xsltAttributeNumber[m] == 0)
863 {
864 int flags = attributes[m].flags;
865 if ((_compiler.Version == 2 && (flags & XsltLoader.V2Req) != 0) || (_compiler.Version == 1 && (flags & XsltLoader.V1Req) != 0 && (!ForwardCompatibility || (flags & XsltLoader.V2Req) != 0)))
866 {
867 ReportError(System.SR.Xslt_MissingAttribute, attributes[m].name);
868 }
869 }
870 }
871 return _ctxInfo;
872 }
static string Xslt_MissingAttribute
Definition SR.cs:1882
static string Xslt_InvalidAttribute
Definition SR.cs:1880
Definition SR.cs:7
bool ExitForwardsCompatible(bool fwdCompat)
Definition Compiler.cs:315
void SetVersion(int attVersion)
Definition XsltInput.cs:731
XsltAttribute[] _attributes
Definition XsltInput.cs:172
readonly KeywordsTable _atoms
Definition XsltInput.cs:148
readonly int[] _xsltAttributeNumber
Definition XsltInput.cs:174
void InsertExNamespaces(int attExPrefixes, ContextInfo ctxInfo, bool extensions)
Definition XsltInput.cs:957
void SetDefaultCollation(int attCollation)
bool MoveToAttributeBase(int attNum)
Definition XsltInput.cs:659
void ReportError(string res, params string[] args)
bool IsKeyword(string kwd)
Definition XsltInput.cs:702
void SetXPathDefaultNamespace(int attNamespace)
readonly Compiler _compiler
Definition XsltInput.cs:150

References System.Xml.Xsl.Xslt.XsltInput._atoms, System.Xml.Xsl.Xslt.XsltInput._attributes, System.Xml.Xsl.Xslt.XsltInput._attributesRead, System.Xml.Xsl.Xslt.XsltInput._compiler, System.Xml.Xsl.Xslt.XsltInput._ctxInfo, System.Xml.Xsl.Xslt.XsltInput._records, System.Xml.Xsl.Xslt.XsltInput._xsltAttributeNumber, System.Xml.Xsl.Xslt.KeywordsTable.DefaultCollation, System.Xml.Dictionary, System.Xml.Xsl.Xslt.Compiler.EnterForwardsCompatible(), System.Xml.Ref.Equal(), System.Xml.Xsl.Xslt.KeywordsTable.ExcludeResultPrefixes, System.Xml.Xsl.Xslt.Compiler.ExitForwardsCompatible(), System.Xml.Xsl.Xslt.KeywordsTable.ExtensionElementPrefixes, System.Xml.Xsl.Xslt.XsltInput.XsltAttribute.flags, System.Xml.Xsl.Xslt.XsltInput.ForwardCompatibility, System.Xml.Xsl.Xslt.XsltInput.InsertExNamespaces(), System.Xml.Xsl.Xslt.XsltInput.IsKeyword(), System.Xml.Xsl.Xslt.XsltInput.IsNullNamespace(), System.Xml.Xsl.Xslt.XsltInput.IsXsltNamespace(), System.Xml.Xsl.Xslt.XsltInput.LocalName, System.Xml.Xsl.Xslt.XsltInput.MoveToAttributeBase(), System.Xml.Xsl.Xslt.XsltInput.MoveToElement(), System.Xml.Xsl.Xslt.XsltInput.XsltAttribute.name, System.Xml.Xsl.Xslt.KeywordsTable.Output, System.Xml.Xsl.Xslt.XsltInput.Record.QualifiedName, System.Xml.Xsl.Xslt.XsltInput.QualifiedName, System.Xml.Xsl.Xslt.XsltInput.ReportError(), System.Xml.Xsl.Xslt.XsltInput.ReportNYI(), System.Xml.Xsl.Xslt.XsltInput.SetDefaultCollation(), System.Xml.Xsl.Xslt.XsltInput.SetVersion(), System.Xml.Xsl.Xslt.XsltInput.SetXPathDefaultNamespace(), System.Xml.Xsl.Xslt.KeywordsTable.Stylesheet, System.Xml.Xsl.Xslt.KeywordsTable.Transform, System.Xml.Xsl.Xslt.KeywordsTable.UseWhen, System.Xml.Xsl.Xslt.XsltLoader.V1Req, System.Xml.Xsl.Xslt.XsltLoader.V2Req, System.Xml.Xsl.Xslt.XsltInput.Record.value, System.Xml.Xsl.Xslt.Compiler.Version, System.Xml.Xsl.Xslt.KeywordsTable.Version, System.Xml.Xsl.Xslt.KeywordsTable.XPathDefaultNamespace, System.SR.Xslt_InvalidAttribute, and System.SR.Xslt_MissingAttribute.