Terraria
v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches
NamespaceResolver.cs
Go to the documentation of this file.
1
namespace
System.Xml.Linq
;
2
3
internal
struct
NamespaceResolver
4
{
5
private
sealed
class
NamespaceDeclaration
6
{
7
public
string
prefix
;
8
9
public
XNamespace
ns
;
10
11
public
int
scope
;
12
13
public
NamespaceDeclaration
prev
;
14
}
15
16
private
int
_scope
;
17
18
private
NamespaceDeclaration
_declaration
;
19
20
private
NamespaceDeclaration
_rover
;
21
22
public
void
PushScope
()
23
{
24
_scope
++;
25
}
26
27
public
void
PopScope
()
28
{
29
NamespaceDeclaration
namespaceDeclaration
=
_declaration
;
30
if
(
namespaceDeclaration
!=
null
)
31
{
32
do
33
{
34
namespaceDeclaration
=
namespaceDeclaration
.
prev
;
35
if
(
namespaceDeclaration
.scope !=
_scope
)
36
{
37
break
;
38
}
39
if
(
namespaceDeclaration
==
_declaration
)
40
{
41
_declaration
=
null
;
42
}
43
else
44
{
45
_declaration.prev
=
namespaceDeclaration
.
prev
;
46
}
47
_rover
=
null
;
48
}
49
while
(
namespaceDeclaration
!=
_declaration
&&
_declaration
!=
null
);
50
}
51
_scope
--;
52
}
53
54
public
void
Add
(
string
prefix
,
XNamespace
ns)
55
{
56
NamespaceDeclaration
namespaceDeclaration
=
new
NamespaceDeclaration
();
57
namespaceDeclaration.prefix
=
prefix
;
58
namespaceDeclaration.ns
= ns;
59
namespaceDeclaration.scope
=
_scope
;
60
if
(
_declaration
==
null
)
61
{
62
_declaration
=
namespaceDeclaration
;
63
}
64
else
65
{
66
namespaceDeclaration.prev
=
_declaration
.
prev
;
67
}
68
_declaration.prev
=
namespaceDeclaration
;
69
_rover
=
null
;
70
}
71
72
public
void
AddFirst
(
string
prefix
,
XNamespace
ns)
73
{
74
NamespaceDeclaration
namespaceDeclaration
=
new
NamespaceDeclaration
();
75
namespaceDeclaration.prefix
=
prefix
;
76
namespaceDeclaration.ns
= ns;
77
namespaceDeclaration.scope
=
_scope
;
78
if
(
_declaration
==
null
)
79
{
80
namespaceDeclaration.prev
=
namespaceDeclaration
;
81
}
82
else
83
{
84
namespaceDeclaration.prev
=
_declaration
.
prev
;
85
_declaration.prev
=
namespaceDeclaration
;
86
}
87
_declaration
=
namespaceDeclaration
;
88
_rover
=
null
;
89
}
90
91
public
string
GetPrefixOfNamespace
(
XNamespace
ns,
bool
allowDefaultNamespace
)
92
{
93
if
(
_rover
!=
null
&&
_rover
.
ns
== ns && (
allowDefaultNamespace
||
_rover
.
prefix
.Length > 0))
94
{
95
return
_rover
.
prefix
;
96
}
97
NamespaceDeclaration
namespaceDeclaration
=
_declaration
;
98
if
(
namespaceDeclaration
!=
null
)
99
{
100
do
101
{
102
namespaceDeclaration
=
namespaceDeclaration
.
prev
;
103
if
(!(
namespaceDeclaration
.ns == ns))
104
{
105
continue
;
106
}
107
NamespaceDeclaration
prev =
_declaration
.
prev
;
108
while
(prev !=
namespaceDeclaration
&& prev.
prefix
!=
namespaceDeclaration
.prefix)
109
{
110
prev = prev.
prev
;
111
}
112
if
(prev ==
namespaceDeclaration
)
113
{
114
if
(
allowDefaultNamespace
)
115
{
116
_rover
=
namespaceDeclaration
;
117
return
namespaceDeclaration
.
prefix
;
118
}
119
if
(
namespaceDeclaration
.prefix.Length > 0)
120
{
121
return
namespaceDeclaration
.prefix;
122
}
123
}
124
}
125
while
(
namespaceDeclaration
!=
_declaration
);
126
}
127
return
null
;
128
}
129
}
System.Xml.Linq.NamespaceResolver.NamespaceDeclaration.prev
NamespaceDeclaration prev
Definition
NamespaceResolver.cs:13
System.Xml.Linq.NamespaceResolver.NamespaceDeclaration.scope
int scope
Definition
NamespaceResolver.cs:11
System.Xml.Linq.NamespaceResolver.NamespaceDeclaration.ns
XNamespace ns
Definition
NamespaceResolver.cs:9
System.Xml.Linq.NamespaceResolver.NamespaceDeclaration.prefix
string prefix
Definition
NamespaceResolver.cs:7
System.Xml.Linq.NamespaceResolver.NamespaceDeclaration
Definition
NamespaceResolver.cs:6
System.Xml.Linq.XNamespace
Definition
XNamespace.cs:7
System.Xml.Linq
Definition
BaseUriAnnotation.cs:1
System.Xml.ValueHandleType.Dictionary
@ Dictionary
System.ExceptionArgument.prefix
@ prefix
System.Xml.Linq.NamespaceResolver.GetPrefixOfNamespace
string GetPrefixOfNamespace(XNamespace ns, bool allowDefaultNamespace)
Definition
NamespaceResolver.cs:91
System.Xml.Linq.NamespaceResolver._declaration
NamespaceDeclaration _declaration
Definition
NamespaceResolver.cs:18
System.Xml.Linq.NamespaceResolver.PushScope
void PushScope()
Definition
NamespaceResolver.cs:22
System.Xml.Linq.NamespaceResolver._rover
NamespaceDeclaration _rover
Definition
NamespaceResolver.cs:20
System.Xml.Linq.NamespaceResolver.PopScope
void PopScope()
Definition
NamespaceResolver.cs:27
System.Xml.Linq.NamespaceResolver._scope
int _scope
Definition
NamespaceResolver.cs:16
System.Xml.Linq.NamespaceResolver.AddFirst
void AddFirst(string prefix, XNamespace ns)
Definition
NamespaceResolver.cs:72
System.Xml.Linq.NamespaceResolver.Add
void Add(string prefix, XNamespace ns)
Definition
NamespaceResolver.cs:54
System.Xml.Linq.NamespaceResolver
Definition
NamespaceResolver.cs:4
source
System.Private.Xml.Linq
System.Xml.Linq
NamespaceResolver.cs
Generated by
1.10.0