From 5dc65e2184b2bd1429fcf986d03ec5dc16d09c4b Mon Sep 17 00:00:00 2001 From: Max Date: Sat, 5 Jun 2021 17:21:12 -0500 Subject: [PATCH] Attribute -> RbxAttribute --- DataTypes/NumberSequenceKeypoint.cs | 7 ---- DataTypes/PhysicalProperties.cs | 10 ----- DataTypes/Region3int16.cs | 6 --- DataTypes/Vector2int16.cs | 6 --- DataTypes/Vector3int16.cs | 7 ---- Interfaces/IAttributeToken.cs | 4 +- RobloxFileFormat.dll | Bin 376320 -> 375808 bytes Tokens/Boolean.cs | 4 +- Tokens/BrickColor.cs | 4 +- Tokens/Color3.cs | 8 ++-- Tokens/ColorSequence.cs | 4 +- Tokens/Double.cs | 4 +- Tokens/Float.cs | 4 +- Tokens/NumberRange.cs | 4 +- Tokens/NumberSequence.cs | 4 +- Tokens/Rect.cs | 4 +- Tokens/String.cs | 4 +- Tokens/UDim.cs | 8 ++-- Tokens/UDim2.cs | 4 +- Tokens/Vector2.cs | 8 ++-- Tokens/Vector3.cs | 8 ++-- Tree/Attributes.cs | 58 +++++++++++----------------- Tree/Instance.cs | 39 +++++++------------ 23 files changed, 76 insertions(+), 133 deletions(-) diff --git a/DataTypes/NumberSequenceKeypoint.cs b/DataTypes/NumberSequenceKeypoint.cs index acc5b57..04f0620 100644 --- a/DataTypes/NumberSequenceKeypoint.cs +++ b/DataTypes/NumberSequenceKeypoint.cs @@ -18,13 +18,6 @@ Envelope = envelope; } - internal NumberSequenceKeypoint(Attribute attr) - { - Envelope = attr.ReadFloat(); - Time = attr.ReadFloat(); - Value = attr.ReadFloat(); - } - public override int GetHashCode() { int hash = Time.GetHashCode() diff --git a/DataTypes/PhysicalProperties.cs b/DataTypes/PhysicalProperties.cs index 1225ae1..ecf5889 100644 --- a/DataTypes/PhysicalProperties.cs +++ b/DataTypes/PhysicalProperties.cs @@ -37,16 +37,6 @@ namespace RobloxFiles.DataTypes ElasticityWeight = elasticityWeight; } - internal PhysicalProperties(Attribute attr) - { - Density = attr.ReadFloat(); - Friction = attr.ReadFloat(); - Elasticity = attr.ReadFloat(); - - FrictionWeight = attr.ReadFloat(); - ElasticityWeight = attr.ReadFloat(); - } - public override int GetHashCode() { int hash = Density.GetHashCode() diff --git a/DataTypes/Region3int16.cs b/DataTypes/Region3int16.cs index 198ca75..d2d1964 100644 --- a/DataTypes/Region3int16.cs +++ b/DataTypes/Region3int16.cs @@ -11,12 +11,6 @@ Max = max ?? new Vector3int16(); } - internal Region3int16(Attribute attr) - { - Min = new Vector3int16(attr); - Max = new Vector3int16(attr); - } - public override int GetHashCode() { int hash = Min.GetHashCode() diff --git a/DataTypes/Vector2int16.cs b/DataTypes/Vector2int16.cs index 23eb9a4..f24134f 100644 --- a/DataTypes/Vector2int16.cs +++ b/DataTypes/Vector2int16.cs @@ -19,12 +19,6 @@ namespace RobloxFiles.DataTypes Y = (short)y; } - internal Vector2int16(Attribute attr) - { - X = attr.ReadShort(); - Y = attr.ReadShort(); - } - private delegate Vector2int16 Operator(Vector2int16 a, Vector2int16 b); private static Vector2int16 upcastShortOp(Vector2int16 vec, short num, Operator upcast) diff --git a/DataTypes/Vector3int16.cs b/DataTypes/Vector3int16.cs index 1851956..9bb978f 100644 --- a/DataTypes/Vector3int16.cs +++ b/DataTypes/Vector3int16.cs @@ -25,13 +25,6 @@ namespace RobloxFiles.DataTypes Z = (short)z; } - internal Vector3int16(Attribute attr) - { - X = attr.ReadShort(); - Y = attr.ReadShort(); - Z = attr.ReadShort(); - } - private delegate Vector3int16 Operator(Vector3int16 a, Vector3int16 b); private static Vector3int16 upcastShortOp(Vector3int16 vec, short num, Operator upcast) diff --git a/Interfaces/IAttributeToken.cs b/Interfaces/IAttributeToken.cs index 3956ac5..00e7999 100644 --- a/Interfaces/IAttributeToken.cs +++ b/Interfaces/IAttributeToken.cs @@ -4,7 +4,7 @@ { AttributeType AttributeType { get; } - T ReadAttribute(Attribute attribute); - void WriteAttribute(Attribute attribute, T value); + T ReadAttribute(RbxAttribute attribute); + void WriteAttribute(RbxAttribute attribute, T value); } } diff --git a/RobloxFileFormat.dll b/RobloxFileFormat.dll index d2a868021849a5d33e7a1c01552e61f8f1afff43..bf7ab8dfb04bfb6a5e0dbb1cc774d45048b6619a 100644 GIT binary patch delta 108849 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 delta 109618 zcma%k2bdH^)Bl9M*}dJpY z7oFX@^3#>`CHwC~Non!P110IM5=rt1;03Q;eB+Gr5wDd<`w`&75@}c0#Vyr7P4Xjp z`>Q2VW9ElDOXAjSxu18{CM1jiewTHw9FsR&o8^A;gVuJrwck>3pugSmuSg}*wU4Wk zzmFox43(rkr^(W+V-@1nU#-_WHtnY@E@^&Uku=48UXqrk&TvUC#e5w>{bGWKbjy0j z-6+quesP}{Jh(*Cs$A7oB>`9RK#%0A(gK>^Xsz+Q({&}GN@DvbHjBX2#C0MtF|l3* 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

l-b&39n?i&n{f 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 NJ*fLZS{v)~e*h2F+)@Al diff --git a/Tokens/Boolean.cs b/Tokens/Boolean.cs index 36b5456..5fe8b4a 100644 --- a/Tokens/Boolean.cs +++ b/Tokens/Boolean.cs @@ -8,8 +8,8 @@ namespace RobloxFiles.Tokens public string XmlPropertyToken => "bool"; public AttributeType AttributeType => AttributeType.Bool; - public bool ReadAttribute(Attribute attr) => attr.ReadBool(); - public void WriteAttribute(Attribute attr, bool value) => attr.WriteBool(value); + public bool ReadAttribute(RbxAttribute attr) => attr.ReadBool(); + public void WriteAttribute(RbxAttribute attr, bool value) => attr.WriteBool(value); public bool ReadProperty(Property prop, XmlNode token) { diff --git a/Tokens/BrickColor.cs b/Tokens/BrickColor.cs index 1c91428..6099d9b 100644 --- a/Tokens/BrickColor.cs +++ b/Tokens/BrickColor.cs @@ -12,8 +12,8 @@ namespace RobloxFiles.Tokens public string XmlPropertyToken => "BrickColor"; public AttributeType AttributeType => AttributeType.BrickColor; - public BrickColor ReadAttribute(Attribute attr) => attr.ReadInt(); - public void WriteAttribute(Attribute attr, BrickColor value) => attr.WriteInt(value.Number); + public BrickColor ReadAttribute(RbxAttribute attr) => attr.ReadInt(); + public void WriteAttribute(RbxAttribute attr, BrickColor value) => attr.WriteInt(value.Number); public bool ReadProperty(Property prop, XmlNode token) { diff --git a/Tokens/Color3.cs b/Tokens/Color3.cs index 6a18b9a..ecba62e 100644 --- a/Tokens/Color3.cs +++ b/Tokens/Color3.cs @@ -10,10 +10,10 @@ namespace RobloxFiles.Tokens private readonly string[] XmlFields = new string[3] { "R", "G", "B" }; public AttributeType AttributeType => AttributeType.Color3; - public Color3 ReadAttribute(Attribute attr) => ReadColor3(attr); - public void WriteAttribute(Attribute attr, Color3 value) => WriteColor3(attr, value); + public Color3 ReadAttribute(RbxAttribute attr) => ReadColor3(attr); + public void WriteAttribute(RbxAttribute attr, Color3 value) => WriteColor3(attr, value); - public static Color3 ReadColor3(Attribute attr) + public static Color3 ReadColor3(RbxAttribute attr) { float r = attr.ReadFloat(), g = attr.ReadFloat(), @@ -22,7 +22,7 @@ namespace RobloxFiles.Tokens return new Color3(r, g, b); } - public static void WriteColor3(Attribute attr, Color3 value) + public static void WriteColor3(RbxAttribute attr, Color3 value) { attr.WriteFloat(value.R); attr.WriteFloat(value.G); diff --git a/Tokens/ColorSequence.cs b/Tokens/ColorSequence.cs index 3c0475c..a96a6e6 100644 --- a/Tokens/ColorSequence.cs +++ b/Tokens/ColorSequence.cs @@ -52,7 +52,7 @@ namespace RobloxFiles.Tokens node.InnerText = value.ToString() + ' '; } - public ColorSequence ReadAttribute(Attribute attr) + public ColorSequence ReadAttribute(RbxAttribute attr) { int numKeys = attr.ReadInt(); var keypoints = new ColorSequenceKeypoint[numKeys]; @@ -69,7 +69,7 @@ namespace RobloxFiles.Tokens return new ColorSequence(keypoints); } - public void WriteAttribute(Attribute attr, ColorSequence value) + public void WriteAttribute(RbxAttribute attr, ColorSequence value) { attr.WriteInt(value.Keypoints.Length); diff --git a/Tokens/Double.cs b/Tokens/Double.cs index c4c88e3..73ea91f 100644 --- a/Tokens/Double.cs +++ b/Tokens/Double.cs @@ -8,8 +8,8 @@ namespace RobloxFiles.Tokens public string XmlPropertyToken => "double"; public AttributeType AttributeType => AttributeType.Double; - public double ReadAttribute(Attribute attr) => attr.ReadDouble(); - public void WriteAttribute(Attribute attr, double value) => attr.WriteDouble(value); + public double ReadAttribute(RbxAttribute attr) => attr.ReadDouble(); + public void WriteAttribute(RbxAttribute attr, double value) => attr.WriteDouble(value); public bool ReadProperty(Property prop, XmlNode token) { diff --git a/Tokens/Float.cs b/Tokens/Float.cs index b41994c..2821f47 100644 --- a/Tokens/Float.cs +++ b/Tokens/Float.cs @@ -8,8 +8,8 @@ namespace RobloxFiles.Tokens public string XmlPropertyToken => "float"; public AttributeType AttributeType => AttributeType.Float; - public float ReadAttribute(Attribute attr) => attr.ReadFloat(); - public void WriteAttribute(Attribute attr, float value) => attr.WriteFloat(value); + public float ReadAttribute(RbxAttribute attr) => attr.ReadFloat(); + public void WriteAttribute(RbxAttribute attr, float value) => attr.WriteFloat(value); public bool ReadProperty(Property prop, XmlNode token) { diff --git a/Tokens/NumberRange.cs b/Tokens/NumberRange.cs index a7951e1..cd1d780 100644 --- a/Tokens/NumberRange.cs +++ b/Tokens/NumberRange.cs @@ -40,7 +40,7 @@ namespace RobloxFiles.Tokens node.InnerText = value.ToString() + ' '; } - public NumberRange ReadAttribute(Attribute attr) + public NumberRange ReadAttribute(RbxAttribute attr) { float min = attr.ReadFloat(); float max = attr.ReadFloat(); @@ -48,7 +48,7 @@ namespace RobloxFiles.Tokens return new NumberRange(min, max); } - public void WriteAttribute(Attribute attr, NumberRange value) + public void WriteAttribute(RbxAttribute attr, NumberRange value) { attr.WriteFloat(value.Min); attr.WriteFloat(value.Max); diff --git a/Tokens/NumberSequence.cs b/Tokens/NumberSequence.cs index 3fd3eba..01c5ff9 100644 --- a/Tokens/NumberSequence.cs +++ b/Tokens/NumberSequence.cs @@ -49,7 +49,7 @@ namespace RobloxFiles.Tokens node.InnerText = value.ToString() + ' '; } - public NumberSequence ReadAttribute(Attribute attr) + public NumberSequence ReadAttribute(RbxAttribute attr) { int numKeys = attr.ReadInt(); var keypoints = new NumberSequenceKeypoint[numKeys]; @@ -66,7 +66,7 @@ namespace RobloxFiles.Tokens return new NumberSequence(keypoints); } - public void WriteAttribute(Attribute attr, NumberSequence value) + public void WriteAttribute(RbxAttribute attr, NumberSequence value) { attr.WriteInt(value.Keypoints.Length); diff --git a/Tokens/Rect.cs b/Tokens/Rect.cs index 2af4868..635cd3b 100644 --- a/Tokens/Rect.cs +++ b/Tokens/Rect.cs @@ -51,7 +51,7 @@ namespace RobloxFiles.Tokens node.AppendChild(max); } - public Rect ReadAttribute(Attribute attr) + public Rect ReadAttribute(RbxAttribute attr) { Vector2 min = Vector2Token.ReadVector2(attr); Vector2 max = Vector2Token.ReadVector2(attr); @@ -59,7 +59,7 @@ namespace RobloxFiles.Tokens return new Rect(min, max); } - public void WriteAttribute(Attribute attr, Rect value) + public void WriteAttribute(RbxAttribute attr, Rect value) { Vector2Token.WriteVector2(attr, value.Min); Vector2Token.WriteVector2(attr, value.Max); diff --git a/Tokens/String.cs b/Tokens/String.cs index 82a8c3d..50a510f 100644 --- a/Tokens/String.cs +++ b/Tokens/String.cs @@ -7,8 +7,8 @@ namespace RobloxFiles.Tokens public string XmlPropertyToken => "string"; public AttributeType AttributeType => AttributeType.String; - public string ReadAttribute(Attribute attr) => attr.ReadString(); - public void WriteAttribute(Attribute attr, string value) => attr.WriteString(value); + public string ReadAttribute(RbxAttribute attr) => attr.ReadString(); + public void WriteAttribute(RbxAttribute attr, string value) => attr.WriteString(value); public bool ReadProperty(Property prop, XmlNode token) { diff --git a/Tokens/UDim.cs b/Tokens/UDim.cs index e56f35f..9b80c1c 100644 --- a/Tokens/UDim.cs +++ b/Tokens/UDim.cs @@ -9,8 +9,8 @@ namespace RobloxFiles.Tokens public string XmlPropertyToken => "UDim"; public AttributeType AttributeType => AttributeType.UDim; - public UDim ReadAttribute(Attribute attr) => ReadUDim(attr); - public void WriteAttribute(Attribute attr, UDim value) => WriteUDim(attr, value); + public UDim ReadAttribute(RbxAttribute attr) => ReadUDim(attr); + public void WriteAttribute(RbxAttribute attr, UDim value) => WriteUDim(attr, value); public static UDim ReadUDim(XmlNode token, string prefix = "") { @@ -41,7 +41,7 @@ namespace RobloxFiles.Tokens node.AppendChild(offset); } - public static UDim ReadUDim(Attribute attr) + public static UDim ReadUDim(RbxAttribute attr) { float scale = attr.ReadFloat(); int offset = attr.ReadInt(); @@ -49,7 +49,7 @@ namespace RobloxFiles.Tokens return new UDim(scale, offset); } - public static void WriteUDim(Attribute attr, UDim value) + public static void WriteUDim(RbxAttribute attr, UDim value) { float scale = value.Scale; attr.WriteFloat(scale); diff --git a/Tokens/UDim2.cs b/Tokens/UDim2.cs index 7f350fc..27fe6a8 100644 --- a/Tokens/UDim2.cs +++ b/Tokens/UDim2.cs @@ -8,7 +8,7 @@ namespace RobloxFiles.Tokens public string XmlPropertyToken => "UDim2"; public AttributeType AttributeType => AttributeType.UDim2; - public UDim2 ReadAttribute(Attribute attr) + public UDim2 ReadAttribute(RbxAttribute attr) { UDim x = UDimToken.ReadUDim(attr); UDim y = UDimToken.ReadUDim(attr); @@ -16,7 +16,7 @@ namespace RobloxFiles.Tokens return new UDim2(x, y); } - public void WriteAttribute(Attribute attr, UDim2 value) + public void WriteAttribute(RbxAttribute attr, UDim2 value) { UDimToken.WriteUDim(attr, value.X); UDimToken.WriteUDim(attr, value.Y); diff --git a/Tokens/Vector2.cs b/Tokens/Vector2.cs index 572a679..ffd389b 100644 --- a/Tokens/Vector2.cs +++ b/Tokens/Vector2.cs @@ -9,8 +9,8 @@ namespace RobloxFiles.Tokens private static readonly string[] XmlCoords = new string[2] { "X", "Y" }; public AttributeType AttributeType => AttributeType.Vector2; - public Vector2 ReadAttribute(Attribute attr) => ReadVector2(attr); - public void WriteAttribute(Attribute attr, Vector2 value) => WriteVector2(attr, value); + public Vector2 ReadAttribute(RbxAttribute attr) => ReadVector2(attr); + public void WriteAttribute(RbxAttribute attr, Vector2 value) => WriteVector2(attr, value); public static Vector2 ReadVector2(XmlNode token) { @@ -46,7 +46,7 @@ namespace RobloxFiles.Tokens node.AppendChild(y); } - public static Vector2 ReadVector2(Attribute attr) + public static Vector2 ReadVector2(RbxAttribute attr) { float x = attr.ReadFloat(), y = attr.ReadFloat(); @@ -54,7 +54,7 @@ namespace RobloxFiles.Tokens return new Vector2(x, y); } - public static void WriteVector2(Attribute attr, Vector2 value) + public static void WriteVector2(RbxAttribute attr, Vector2 value) { attr.WriteFloat(value.X); attr.WriteFloat(value.Y); diff --git a/Tokens/Vector3.cs b/Tokens/Vector3.cs index c3f179a..591b5e4 100644 --- a/Tokens/Vector3.cs +++ b/Tokens/Vector3.cs @@ -9,8 +9,8 @@ namespace RobloxFiles.Tokens private static readonly string[] XmlCoords = new string[3] { "X", "Y", "Z" }; public AttributeType AttributeType => AttributeType.Vector3; - public Vector3 ReadAttribute(Attribute attr) => ReadVector3(attr); - public void WriteAttribute(Attribute attr, Vector3 value) => WriteVector3(attr, value); + public Vector3 ReadAttribute(RbxAttribute attr) => ReadVector3(attr); + public void WriteAttribute(RbxAttribute attr, Vector3 value) => WriteVector3(attr, value); public static Vector3 ReadVector3(XmlNode token) { @@ -49,7 +49,7 @@ namespace RobloxFiles.Tokens node.AppendChild(z); } - public static Vector3 ReadVector3(Attribute attr) + public static Vector3 ReadVector3(RbxAttribute attr) { float x = attr.ReadFloat(), y = attr.ReadFloat(), @@ -58,7 +58,7 @@ namespace RobloxFiles.Tokens return new Vector3(x, y, z); } - public static void WriteVector3(Attribute attr, Vector3 value) + public static void WriteVector3(RbxAttribute attr, Vector3 value) { attr.WriteFloat(value.X); attr.WriteFloat(value.Y); diff --git a/Tree/Attributes.cs b/Tree/Attributes.cs index 380c065..2da020d 100644 --- a/Tree/Attributes.cs +++ b/Tree/Attributes.cs @@ -3,6 +3,7 @@ using System.Collections.Generic; using System.IO; using System.Linq; using System.Reflection; +using System.Runtime.Serialization; using System.Text; namespace RobloxFiles @@ -45,7 +46,7 @@ namespace RobloxFiles // Region3int16 = 32 } - public class Attribute : IDisposable + public class RbxAttribute : IDisposable { private static readonly IReadOnlyDictionary AttributeSupport; private static readonly IReadOnlyDictionary SupportedTypes; @@ -70,20 +71,20 @@ namespace RobloxFiles Writer = support.GetMethod("WriteAttribute"); } - public object ReadAttribute(Attribute attr) + public object ReadAttribute(RbxAttribute attr) { var args = new object[1] { attr }; return Reader.Invoke(Token, args); } - public void WriteAttribute(Attribute attr, object value) + public void WriteAttribute(RbxAttribute attr, object value) { var args = new object[2] { attr, value }; Writer.Invoke(Token, args); } } - static Attribute() + static RbxAttribute() { var attributeSupport = new Dictionary(); var supportedTypes = new Dictionary(); @@ -193,19 +194,19 @@ namespace RobloxFiles Writer = null; } - internal Attribute(BinaryReader reader) + internal RbxAttribute(BinaryReader reader) { Reader = reader; Read(); } - internal Attribute(MemoryStream stream) + internal RbxAttribute(MemoryStream stream) { Reader = new BinaryReader(stream); Read(); } - internal Attribute(object value) + internal RbxAttribute(object value) { Type type = value.GetType(); @@ -217,44 +218,31 @@ namespace RobloxFiles } } - public class Attributes : SortedDictionary + public class RbxAttributes : SortedDictionary { - private void Initialize(BinaryReader reader) + internal void Load(byte[] buffer) { - Stream stream = reader.BaseStream; + Clear(); - if (stream.Length - stream.Position < 4) + if (buffer == null || buffer.Length < 4) // Not enough room to read the entry count, possibly empty? return; - int numEntries = reader.ReadInt32(); - - for (int i = 0; i < numEntries; i++) + using (var input = new MemoryStream(buffer)) + using (var reader = new BinaryReader(input)) { - string key = reader.ReadString(true); - var attribute = new Attribute(reader); - Add(key, attribute); + int numEntries = reader.ReadInt32(); + + for (int i = 0; i < numEntries; i++) + { + string key = reader.ReadString(true); + var attribute = new RbxAttribute(reader); + Add(key, attribute); + } } } - public Attributes() : base() - { - } - - internal Attributes(BinaryReader reader) - { - Initialize(reader); - } - - internal Attributes(MemoryStream stream) - { - using (var reader = new BinaryReader(stream)) - Initialize(reader); - - stream.Dispose(); - } - - internal byte[] Serialize() + internal byte[] Save() { if (Count == 0) return Array.Empty(); diff --git a/Tree/Instance.cs b/Tree/Instance.cs index 401289b..cd3ed77 100644 --- a/Tree/Instance.cs +++ b/Tree/Instance.cs @@ -1,7 +1,5 @@ using System; using System.Collections.Generic; -using System.Diagnostics.Contracts; -using System.IO; using System.Linq; using System.Reflection; using System.Text; @@ -61,26 +59,16 @@ namespace RobloxFiles public bool Destroyed { get; internal set; } ///

A hashset of CollectionService tags assigned to this Instance. - public HashSet Tags { get; } = new HashSet(); + public readonly HashSet Tags = new HashSet(); - /// The attributes defined for this Instance. - private Attributes AttributesImpl = new Attributes(); - /// The public readonly access point of the attributes on this Instance. - public IReadOnlyDictionary Attributes => AttributesImpl; + public readonly RbxAttributes Attributes = new RbxAttributes(); /// The internal serialized data of this Instance's attributes internal byte[] AttributesSerialize { - get - { - return AttributesImpl?.Serialize() ?? Array.Empty(); - } - set - { - var data = new MemoryStream(value); - AttributesImpl = new Attributes(data); - } + get => Attributes.Save(); + set => Attributes.Load(value); } /// @@ -134,7 +122,7 @@ namespace RobloxFiles /// True if the attribute could be read and the out value was set, false otherwise. public bool GetAttribute(string key, out T value) { - if (AttributesImpl.TryGetValue(key, out Attribute attr)) + if (Attributes.TryGetValue(key, out RbxAttribute attr)) { if (attr.Value is T result) { @@ -161,13 +149,16 @@ namespace RobloxFiles if (key.Length > 100) return false; - Type type = value.GetType(); - - if (!Attribute.SupportsType(type)) + if (key.StartsWith("RBX", StringComparison.InvariantCulture)) return false; - var attr = new Attribute(value); - AttributesImpl[key] = attr; + Type type = value.GetType(); + + if (!RbxAttribute.SupportsType(type)) + return false; + + var attr = new RbxAttribute(value); + Attributes[key] = attr; return true; } @@ -474,8 +465,8 @@ namespace RobloxFiles Parent = null; ParentLocked = true; - Tags?.Clear(); - AttributesImpl?.Clear(); + Tags.Clear(); + Attributes.Clear(); while (Children.Any()) {