Terraria v1.4.4.9
Terraria source code documentation
All Classes Namespaces Files Functions Variables Enumerations Enumerator Properties Events Macros
XmlAttribute.cs
Go to the documentation of this file.
4
5namespace System.Xml;
6
7public class XmlAttribute : XmlNode
8{
9 private XmlName _name;
10
12
13 internal int LocalNameHash => _name.HashCode;
14
16 {
17 get
18 {
19 return _name;
20 }
21 set
22 {
23 _name = value;
24 }
25 }
26
27 public override XmlNode? ParentNode => null;
28
29 public override string Name => _name.Name;
30
31 public override string LocalName => _name.LocalName;
32
33 public override string NamespaceURI => _name.NamespaceURI;
34
35 public override string Prefix
36 {
37 get
38 {
39 return _name.Prefix;
40 }
41 set
42 {
44 }
45 }
46
47 public override XmlNodeType NodeType => XmlNodeType.Attribute;
48
50
51 public override string Value
52 {
53 get
54 {
55 return InnerText;
56 }
58 set
59 {
61 }
62 }
63
64 public override IXmlSchemaInfo SchemaInfo => _name;
65
66 public override string InnerText
67 {
68 set
69 {
71 {
72 string innerText = base.InnerText;
75 }
76 else
77 {
79 }
80 }
81 }
82
83 internal override bool IsContainer => true;
84
85 internal override XmlLinkedNode? LastNode
86 {
87 get
88 {
89 return _lastChild;
90 }
91 set
92 {
94 }
95 }
96
97 public virtual bool Specified => true;
98
100
101 public override string InnerXml
102 {
103 set
104 {
105 RemoveAll();
107 xmlLoader.LoadInnerXmlAttribute(this, value);
108 }
109 }
110
111 public override string BaseURI
112 {
113 get
114 {
115 if (OwnerElement != null)
116 {
117 return OwnerElement.BaseURI;
118 }
119 return string.Empty;
120 }
121 }
122
123 internal override XmlSpace XmlSpace
124 {
125 get
126 {
127 if (OwnerElement != null)
128 {
129 return OwnerElement.XmlSpace;
130 }
131 return XmlSpace.None;
132 }
133 }
134
135 internal override string XmlLang
136 {
137 get
138 {
139 if (OwnerElement != null)
140 {
141 return OwnerElement.XmlLang;
142 }
143 return string.Empty;
144 }
145 }
146
147 internal override XPathNodeType XPNodeType
148 {
149 get
150 {
151 if (IsNamespace)
152 {
153 return XPathNodeType.Namespace;
154 }
155 return XPathNodeType.Attribute;
156 }
157 }
158
159 internal override string XPLocalName
160 {
161 get
162 {
163 if (_name.Prefix.Length == 0 && _name.LocalName == "xmlns")
164 {
165 return string.Empty;
166 }
167 return _name.LocalName;
168 }
169 }
170
172
174 : base(doc)
175 {
176 parentNode = null;
177 if (!doc.IsLoading)
178 {
179 XmlDocument.CheckName(name.Prefix);
180 XmlDocument.CheckName(name.LocalName);
181 }
182 if (name.LocalName.Length == 0)
183 {
185 }
186 _name = name;
187 }
188
189 protected internal XmlAttribute(string? prefix, string localName, string? namespaceURI, XmlDocument doc)
190 : this(doc.AddAttrXmlName(prefix, localName, namespaceURI, null), doc)
191 {
192 }
193
201
203 {
205 if (ownerDocument.DtdSchemaInfo != null)
206 {
208 if (ownerElement != null)
209 {
211 }
212 }
213 return false;
214 }
215
220
222 {
223 XmlNodeChangedEventArgs insertEventArgsForLoad = doc.GetInsertEventArgsForLoad(newChild, this);
224 if (insertEventArgsForLoad != null)
225 {
226 doc.BeforeEvent(insertEventArgsForLoad);
227 }
229 if (_lastChild == null)
230 {
234 }
235 else
236 {
241 if (lastChild.IsText && xmlLinkedNode.IsText)
242 {
244 }
245 else
246 {
247 xmlLinkedNode.SetParentForLoad(this);
248 }
249 }
250 if (insertEventArgsForLoad != null)
251 {
252 doc.AfterEvent(insertEventArgsForLoad);
253 }
254 return xmlLinkedNode;
255 }
256
257 internal override bool IsValidChildType(XmlNodeType type)
258 {
259 if (type != XmlNodeType.Text)
260 {
261 return type == XmlNodeType.EntityReference;
262 }
263 return true;
264 }
265
267 {
268 XmlNode result;
270 {
271 string innerText = InnerText;
274 }
275 else
276 {
278 }
279 return result;
280 }
281
283 {
284 XmlNode result;
286 {
287 string innerText = InnerText;
290 }
291 else
292 {
294 }
295 return result;
296 }
297
299 {
300 XmlNode result;
302 {
303 string innerText = InnerText;
306 }
307 else
308 {
310 }
311 return result;
312 }
313
315 {
316 XmlNode result;
318 {
319 string innerText = InnerText;
320 result = base.RemoveChild(oldChild);
322 }
323 else
324 {
325 result = base.RemoveChild(oldChild);
326 }
327 return result;
328 }
329
331 {
332 XmlNode result;
334 {
335 string innerText = InnerText;
336 result = base.PrependChild(newChild);
338 }
339 else
340 {
341 result = base.PrependChild(newChild);
342 }
343 return result;
344 }
345
347 {
348 XmlNode result;
350 {
351 string innerText = InnerText;
352 result = base.AppendChild(newChild);
354 }
355 else
356 {
357 result = base.AppendChild(newChild);
358 }
359 return result;
360 }
361
362 public override void WriteTo(XmlWriter w)
363 {
364 w.WriteStartAttribute(Prefix, LocalName, NamespaceURI);
366 w.WriteEndAttribute();
367 }
368
369 public override void WriteContentTo(XmlWriter w)
370 {
372 {
373 xmlNode.WriteTo(w);
374 }
375 }
376
377 internal override void SetParent(XmlNode node)
378 {
380 }
381}
static string Xdom_Attr_Name
Definition SR.cs:1280
Definition SR.cs:7
static bool Equal(string strA, string strB)
Definition Ref.cs:5
void ResetParentInElementIdAttrMap(string oldVal, string newVal)
bool PrepareParentInElementIdAttrMap(string attrPrefix, string attrLocalName)
override XmlNode AppendChildForLoad(XmlNode newChild, XmlDocument doc)
override XmlNode ReplaceChild(XmlNode newChild, XmlNode oldChild)
override bool IsContainer
XmlAttribute(XmlName name, XmlDocument doc)
virtual ? XmlElement OwnerElement
override string LocalName
override string BaseURI
void ResetOwnerElementInElementIdAttrMap(string oldInnerText)
override void WriteTo(XmlWriter w)
override? XmlNode ParentNode
override string Value
override XmlDocument OwnerDocument
override string NamespaceURI
override XmlNodeType NodeType
override string XPLocalName
override? XmlLinkedNode LastNode
override void WriteContentTo(XmlWriter w)
XmlLinkedNode _lastChild
bool PrepareOwnerElementInElementIdAttrMap()
override string XmlLang
override string InnerXml
override void SetParent(XmlNode node)
override? XmlNode AppendChild(XmlNode newChild)
override XPathNodeType XPNodeType
XmlAttribute(string? prefix, string localName, string? namespaceURI, XmlDocument doc)
override string Prefix
override? XmlNode InsertBefore(XmlNode newChild, XmlNode? refChild)
override? XmlNode InsertAfter(XmlNode newChild, XmlNode? refChild)
override XmlNode CloneNode(bool deep)
override string Name
override XmlNode RemoveChild(XmlNode oldChild)
override? XmlNode PrependChild(XmlNode newChild)
override bool IsValidChildType(XmlNodeType type)
override string InnerText
static void CheckName(string name)
XmlName AddAttrXmlName(string prefix, string localName, string namespaceURI, IXmlSchemaInfo schemaInfo)
override XmlAttributeCollection Attributes
Definition XmlElement.cs:93
string NamespaceURI
Definition XmlName.cs:23
XmlDocument OwnerDocument
Definition XmlName.cs:29
virtual XmlSpace XmlSpace
Definition XmlNode.cs:295
virtual string BaseURI
Definition XmlNode.cs:233
virtual ? XmlNode AppendChild(XmlNode newChild)
Definition XmlNode.cs:739
XmlNode parentNode
Definition XmlNode.cs:57
virtual ? XmlNode PrependChild(XmlNode newChild)
Definition XmlNode.cs:734
virtual void CopyChildren(XmlDocument doc, XmlNode container, bool deep)
Definition XmlNode.cs:869
static void NestTextNodes(XmlNode prevNode, XmlNode nextNode)
Definition XmlNode.cs:1274
virtual XmlNode ReplaceChild(XmlNode newChild, XmlNode oldChild)
Definition XmlNode.cs:654
virtual string XmlLang
Definition XmlNode.cs:322
virtual ? XmlNode NextSibling
Definition XmlNode.cs:104
virtual ? XmlNode InsertAfter(XmlNode newChild, XmlNode? refChild)
Definition XmlNode.cs:548
virtual ? XmlNode InsertBefore(XmlNode newChild, XmlNode? refChild)
Definition XmlNode.cs:445
virtual XmlNode RemoveChild(XmlNode oldChild)
Definition XmlNode.cs:662
virtual ? XmlNode FirstChild
Definition XmlNode.cs:120
virtual void RemoveAll()
Definition XmlNode.cs:1033
virtual void SetParentForLoad(XmlNode node)
Definition XmlNode.cs:1207