예제 #1
0
 private void SetAttributeArrayLength(int size)
 {
     DTMXPathAttributeNode [] newArr =
         new DTMXPathAttributeNode [size];
     Array.Copy(attributes, newArr, System.Math.Min(size, attributes.Length));
     attributes = newArr;
 }
예제 #2
0
        public DTMXPathDocumentWriter(XmlNameTable nt, int defaultCapacity)
        {
            nameTable         = nt == null ? new NameTable() : nt;
            nodeCapacity      = defaultCapacity;
            attributeCapacity = nodeCapacity;
            idTable           = new Hashtable();

            nodes      = new DTMXPathLinkedNode [nodeCapacity];
            attributes = new DTMXPathAttributeNode [attributeCapacity];
            namespaces = new DTMXPathNamespaceNode [0];

            Init();
        }
예제 #3
0
        private void Init(XmlReader reader, XmlSpace space, int defaultCapacity)
        {
            this.xmlReader        = reader;
            this.validatingReader = reader as XmlValidatingReader;
            lineInfo          = reader as IXmlLineInfo;
            this.xmlSpace     = space;
            this.nameTable    = reader.NameTable;
            nodeCapacity      = defaultCapacity;
            attributeCapacity = nodeCapacity;
            idTable           = new Hashtable();

            nodes      = new DTMXPathLinkedNode [nodeCapacity];
            attributes = new DTMXPathAttributeNode [attributeCapacity];
            namespaces = new DTMXPathNamespaceNode [0];

            Compile();
        }
예제 #4
0
        // Followings are skipped: nextAttribute,
        public void AddAttribute(int ownerElement, string localName, string ns, string prefix, string value, int lineNumber, int linePosition)
        {
            if (attributes.Length < attributeIndex + 1)
            {
                attributeCapacity *= 4;
                SetAttributeArrayLength(attributeCapacity);
            }

#if DTM_CLASS
            attributes [attributeIndex] = new DTMXPathAttributeNode();
#endif
            attributes [attributeIndex].OwnerElement = ownerElement;
            attributes [attributeIndex].LocalName    = localName;
            attributes [attributeIndex].NamespaceURI = ns;
            attributes [attributeIndex].Prefix       = prefix;
            attributes [attributeIndex].Value        = value;
            attributes [attributeIndex].LineNumber   = lineNumber;
            attributes [attributeIndex].LinePosition = linePosition;
        }
 private void SetAttributeArrayLength(int size)
 {
     DTMXPathAttributeNode[] destinationArray = new DTMXPathAttributeNode[size];
     Array.Copy(this.attributes, destinationArray, Math.Min(size, this.attributes.Length));
     this.attributes = destinationArray;
 }