internal XmlElementItem(byte[] buffer, ref int offset, StringPool stringPool, bool startElement) : base(buffer, ref offset, stringPool) { int baseOffset = offset; Namespace = stringPool.GetReferencedString(buffer, ref offset, true); Name = stringPool.GetReferencedString(buffer, ref offset, true); if (startElement) { base.MarkAsStarter(); } if (!startElement) { return; } // End elements don't have these values. ushort attributeStart = Helpers.ReadUInt16(buffer, ref offset); ushort attributeSize = Helpers.ReadUInt16(buffer, ref offset); ushort attributeCount = Helpers.ReadUInt16(buffer, ref offset); // The three next values are 1 based indexes in the attribute array. Their // value is 0 if the attribute doesn't exist. ushort idAttributeIndex = Helpers.ReadUInt16(buffer, ref offset); if (0 != idAttributeIndex) { int i = 1; } ushort classAttributeIndex = Helpers.ReadUInt16(buffer, ref offset); ushort styleAttributeIndex = Helpers.ReadUInt16(buffer, ref offset); // This computaion should not usually modify the current offset value. offset = baseOffset + attributeStart; List<XmlElementAttributeItem> attributes = new List<XmlElementAttributeItem>(); for (int index = 0; index < attributeCount; index++) { attributes.Add(new XmlElementAttributeItem(buffer, ref offset, stringPool)); } Attributes = attributes.ToArray(); return; }
internal XmlNamespaceItem(byte[] buffer, ref int offset, StringPool stringPool, bool startElement) : base(buffer, ref offset, stringPool) { if (startElement) { base.MarkAsStarter(); } Prefix = stringPool.GetReferencedString(buffer, ref offset); Uri = stringPool.GetReferencedString(buffer, ref offset); return; }
protected XmlTreeItem(byte[] buffer, ref int offset, StringPool stringPool) : base(buffer, ref offset) { LineNumber = Helpers.ReadUInt32(buffer, ref offset); Comment = stringPool.GetReferencedString(buffer, ref offset, true); return; }
internal Resource(byte[] buffer, ref int offset, StringPool stringPool) { // Number of bytes in this structure. ushort size = Helpers.ReadUInt16(buffer, ref offset); ResourceFlags flags = (ResourceFlags)Helpers.ReadUInt16(buffer, ref offset); // Reference into ResTable_package::keyStrings identifying this entry. Name = stringPool.GetReferencedString(buffer, ref offset); Value = new ResourceValue(buffer, ref offset); return; }
internal XmlElementAttributeItem(byte[] buffer, ref int offset, StringPool stringPool) { Namespace = stringPool.GetReferencedString(buffer, ref offset, true); Name = stringPool.GetReferencedString(buffer, ref offset, true); RawValue = stringPool.GetReferencedString(buffer, ref offset, true); TypedValue = new ResourceValue(buffer, ref offset); return; }