Esempio n. 1
0
        internal BinXmlElementNoAttribute(byte[] bytes, int chunkOffset, ref int offset)
        {
            Token             = (BinaryXml.TOKEN_TYPE)bytes[offset];
            DependencyId      = BitConverter.ToInt16(bytes, offset + 0x01);
            DataSize          = BitConverter.ToInt32(bytes, offset + 0x03);
            ElementNameOffset = BitConverter.ToInt32(bytes, offset + 0x07);
            ElementName       = new BinXmlName(bytes, chunkOffset + ElementNameOffset);
            CloseStartTag     = (BinaryXml.TOKEN_TYPE)bytes[offset + HeaderSize + BinXmlName.HeaderSize + (ElementName.NameSize * 0x02)];

            int valueOffset = offset + HeaderSize + BinXmlName.HeaderSize + (ElementName.NameSize * 0x02) + 0x01;

            ValueTag = (BinaryXml.TOKEN_TYPE)bytes[valueOffset];

            if (ValueTag == BinaryXml.TOKEN_TYPE.BinXmlTokenValue)
            {
                ValueText = new BinXmlValueText(bytes, offset);
            }
            else
            {
                Substitution = new BinXmlSubstitution(bytes, valueOffset);
            }

            ElementEndToken = (BinaryXml.TOKEN_TYPE)bytes[offset + this.DataSize + 0x07 - 0x01];

            offset += this.DataSize + 0x07;
        }
Esempio n. 2
0
        internal BinXmlTemplateDefinition(byte[] bytes, int chunkOffset, int offset)
        {
            DataOffset = BitConverter.ToInt32(bytes, offset + 0x05);

            int dataoffset = DataOffset + chunkOffset;

            TemplateId = new Guid(Util.GetSubArray(bytes, (uint)dataoffset + 0x04, 0x10));
            DataSize   = BitConverter.ToInt32(bytes, dataoffset + 0x14);

            /*List<BinXmlElement> elementList = new List<BinXmlElement>();
             *
             * while (elementoffset < endoffset)
             * {
             *  Console.WriteLine(elementoffset);
             *  if ((BinaryXml.TOKEN_TYPE)bytes[offset + 0x01] == BinaryXml.TOKEN_TYPE.BinXmlTokenOpenStartElementTag)
             *  {
             *      BinXmlElementNoAttribute element = new BinXmlElementNoAttribute(bytes, chunkOffset, ref elementoffset);
             *      elementList.Add(element);
             *  }
             *  else
             *  {
             *      BinXmlElementAttribute elementattr = new BinXmlElementAttribute(bytes, chunkOffset, ref elementoffset);
             *      elementList.Add(elementattr);
             *  }
             * }
             *
             * Elements = elementList.ToArray();*/


            EOFToken = (BinaryXml.TOKEN_TYPE)bytes[dataoffset + DataSize + 0x18 - 0x01];
        }
Esempio n. 3
0
        internal BinXmlElementAttribute(byte[] bytes, int chunkOffset, ref int offset)
        {
            Token             = (BinaryXml.TOKEN_TYPE)bytes[offset];
            DependencyId      = BitConverter.ToInt16(bytes, offset + 0x01);
            DataSize          = BitConverter.ToInt32(bytes, offset + 0x03);
            ElementNameOffset = BitConverter.ToInt32(bytes, offset + 0x07);
            ElementName       = new BinXmlName(bytes, chunkOffset + ElementNameOffset);

            int attributeListOffset = offset + HeaderSize + BinXmlName.HeaderSize + (ElementName.NameSize * 0x02);

            //AttributeList = new BinXmlAttributeList(bytes, chunkOffset, attributeListOffset);

            ElementEndToken = (BinaryXml.TOKEN_TYPE)bytes[offset + this.DataSize + 0x07 - 0x01];

            offset += this.DataSize + 0x07;
        }
Esempio n. 4
0
        internal BinXmlTemplateInstance(byte[] bytes, int chunkOffset, int offset)
        {
            Token = (BinaryXml.TOKEN_TYPE)bytes[offset];
            TemplateDefinition = new BinXmlTemplateDefinition(bytes, chunkOffset, offset + 0x01);

            if (TemplateDefinition.DataOffset + chunkOffset > offset)
            {
                TemplateInstanceData = new BinXmlTemplateInstanceData(bytes, chunkOffset, offset + 0x01 + TemplateDefinition.DataSize + 0x21);
            }
            else
            {
                TemplateInstanceData = new BinXmlTemplateInstanceData(bytes, chunkOffset, offset + 0x0A);
            }
            //TemplateInstanceData = new BinXmlTemplateInstanceData(bytes, chunkOffset, offset + 0x01 + TemplateDefinition.DataSize + 0x21);

            // Figure out what to do here...
            //TemplateInstanceData = new BinXmlTemplateInstanceData(bytes, chunkOffset, offset + 0x0A);
        }
Esempio n. 5
0
 internal BinXmlValueText(byte[] bytes, int offset)
 {
     ValueToken = (BinaryXml.TOKEN_TYPE)bytes[offset];
     ValueType = (BinaryXml.VALUE_TYPE)bytes[offset + 0x01];
     ValueData = Encoding.Unicode.GetString(bytes, offset + 0x04, BitConverter.ToInt16(bytes, offset + 0x02));
 }
Esempio n. 6
0
 internal BinXmlSubstitution(byte[] bytes, int offset)
 {
     Token = (BinaryXml.TOKEN_TYPE)bytes[offset];
     SubstitutionId = BitConverter.ToUInt16(bytes, 0x01);
     ValueType = (BinaryXml.VALUE_TYPE)bytes[0x03];
 }
Esempio n. 7
0
        internal BinXmlElementNoAttribute(byte[] bytes, int chunkOffset, ref int offset)
        {
            Token = (BinaryXml.TOKEN_TYPE)bytes[offset];
            DependencyId = BitConverter.ToInt16(bytes, offset + 0x01);
            DataSize = BitConverter.ToInt32(bytes, offset + 0x03);
            ElementNameOffset = BitConverter.ToInt32(bytes, offset + 0x07);
            ElementName = new BinXmlName(bytes, chunkOffset + ElementNameOffset);
            CloseStartTag = (BinaryXml.TOKEN_TYPE)bytes[offset + HeaderSize + BinXmlName.HeaderSize + (ElementName.NameSize * 0x02)];

            int valueOffset = offset + HeaderSize + BinXmlName.HeaderSize + (ElementName.NameSize * 0x02) + 0x01;
            ValueTag = (BinaryXml.TOKEN_TYPE)bytes[valueOffset];

            if (ValueTag == BinaryXml.TOKEN_TYPE.BinXmlTokenValue)
            {
                ValueText = new BinXmlValueText(bytes, offset);
            }
            else
            {
                Substitution = new BinXmlSubstitution(bytes, valueOffset);
            }

            ElementEndToken = (BinaryXml.TOKEN_TYPE)bytes[offset + this.DataSize + 0x07 - 0x01];

            offset += this.DataSize + 0x07;
        }
Esempio n. 8
0
        internal BinXmlElementAttribute(byte[] bytes, int chunkOffset, ref int offset)
        {
            Token = (BinaryXml.TOKEN_TYPE)bytes[offset];
            DependencyId = BitConverter.ToInt16(bytes, offset + 0x01);
            DataSize = BitConverter.ToInt32(bytes, offset + 0x03);
            ElementNameOffset = BitConverter.ToInt32(bytes, offset + 0x07);
            ElementName = new BinXmlName(bytes, chunkOffset + ElementNameOffset);

            int attributeListOffset = offset + HeaderSize + BinXmlName.HeaderSize + (ElementName.NameSize * 0x02);
            //AttributeList = new BinXmlAttributeList(bytes, chunkOffset, attributeListOffset);

            ElementEndToken = (BinaryXml.TOKEN_TYPE)bytes[offset + this.DataSize + 0x07 - 0x01];

            offset += this.DataSize + 0x07;
        }
Esempio n. 9
0
 internal BinXmlAttribute(byte[] bytes, int chunkOffset, int offset)
 {
     Token = (BinaryXml.TOKEN_TYPE)bytes[offset];
     AttributeNameOffset = BitConverter.ToInt32(bytes, offset + 0x01);
     Name = new BinXmlName(bytes, chunkOffset + AttributeNameOffset);
 }
Esempio n. 10
0
        internal BinXmlTemplateDefinition(byte[] bytes, int chunkOffset, int offset)
        {
            DataOffset = BitConverter.ToInt32(bytes, offset + 0x05);

            int dataoffset = DataOffset + chunkOffset;

            TemplateId = new Guid(Util.GetSubArray(bytes, (uint)dataoffset + 0x04, 0x10));
            DataSize = BitConverter.ToInt32(bytes, dataoffset + 0x14);

            /*List<BinXmlElement> elementList = new List<BinXmlElement>();

            while (elementoffset < endoffset)
            {
                Console.WriteLine(elementoffset);
                if ((BinaryXml.TOKEN_TYPE)bytes[offset + 0x01] == BinaryXml.TOKEN_TYPE.BinXmlTokenOpenStartElementTag)
                {
                    BinXmlElementNoAttribute element = new BinXmlElementNoAttribute(bytes, chunkOffset, ref elementoffset);
                    elementList.Add(element);
                }
                else
                {
                    BinXmlElementAttribute elementattr = new BinXmlElementAttribute(bytes, chunkOffset, ref elementoffset);
                    elementList.Add(elementattr);
                }
            }

            Elements = elementList.ToArray();*/

            EOFToken = (BinaryXml.TOKEN_TYPE)bytes[dataoffset + DataSize + 0x18 - 0x01];
        }
Esempio n. 11
0
 internal BinXmlSubstitution(byte[] bytes, int offset)
 {
     Token          = (BinaryXml.TOKEN_TYPE)bytes[offset];
     SubstitutionId = BitConverter.ToUInt16(bytes, 0x01);
     ValueType      = (BinaryXml.VALUE_TYPE)bytes[0x03];
 }
Esempio n. 12
0
 internal BinXmlValueText(byte[] bytes, int offset)
 {
     ValueToken = (BinaryXml.TOKEN_TYPE)bytes[offset];
     ValueType  = (BinaryXml.VALUE_TYPE)bytes[offset + 0x01];
     ValueData  = Encoding.Unicode.GetString(bytes, offset + 0x04, BitConverter.ToInt16(bytes, offset + 0x02));
 }
Esempio n. 13
0
 internal BinXmlAttribute(byte[] bytes, int chunkOffset, int offset)
 {
     Token = (BinaryXml.TOKEN_TYPE)bytes[offset];
     AttributeNameOffset = BitConverter.ToInt32(bytes, offset + 0x01);
     Name = new BinXmlName(bytes, chunkOffset + AttributeNameOffset);
 }
Esempio n. 14
0
 internal BinXmlCharacterEntityReference(byte[] bytes, int offset)
 {
     Token = (BinaryXml.TOKEN_TYPE)bytes[offset];
     Value = Util.GetSubArray(bytes, (uint)offset + 0x01, 0x02);
 }
Esempio n. 15
0
 internal BinXmlCharacterEntityReference(byte[] bytes, int offset)
 {
     Token = (BinaryXml.TOKEN_TYPE)bytes[offset];
     Value = Util.GetSubArray(bytes, (uint)offset + 0x01, 0x02);
 }
Esempio n. 16
0
 internal BinXmlEntityReference(byte[] bytes, int offset)
 {
     Token = (BinaryXml.TOKEN_TYPE)bytes[offset];
     NameOffset = BitConverter.ToUInt32(bytes, offset + 0x01);
 }
Esempio n. 17
0
 internal BinXmlEntityReference(byte[] bytes, int offset)
 {
     Token      = (BinaryXml.TOKEN_TYPE)bytes[offset];
     NameOffset = BitConverter.ToUInt32(bytes, offset + 0x01);
 }
Esempio n. 18
0
        internal BinXmlTemplateInstance(byte[] bytes, int chunkOffset, int offset)
        {
            Token = (BinaryXml.TOKEN_TYPE)bytes[offset];
            TemplateDefinition = new BinXmlTemplateDefinition(bytes, chunkOffset, offset + 0x01);

            if (TemplateDefinition.DataOffset + chunkOffset > offset)
            {
                TemplateInstanceData = new BinXmlTemplateInstanceData(bytes, chunkOffset, offset + 0x01 + TemplateDefinition.DataSize + 0x21);
            }
            else
            {
                TemplateInstanceData = new BinXmlTemplateInstanceData(bytes, chunkOffset, offset + 0x0A);
            }
                //TemplateInstanceData = new BinXmlTemplateInstanceData(bytes, chunkOffset, offset + 0x01 + TemplateDefinition.DataSize + 0x21);

                // Figure out what to do here...
                //TemplateInstanceData = new BinXmlTemplateInstanceData(bytes, chunkOffset, offset + 0x0A);
        }
Esempio n. 19
0
 internal BinXmlCDATA(byte[] bytes, int offset)
 {
     Token = (BinaryXml.TOKEN_TYPE)bytes[offset];
 }