Create() public method

Create a new XNodeInfoAtom and ensure it is atomized in the table.
public Create ( string localName, string namespaceUri, string prefix, string baseUri, XPathNode pageParent, XPathNode pageSibling, XPathNode pageSimilar, XPathDocument doc, int lineNumBase, int linePosBase ) : XPathNodeInfoAtom
localName string
namespaceUri string
prefix string
baseUri string
pageParent XPathNode
pageSibling XPathNode
pageSimilar XPathNode
doc System.Xml.XPath.XPathDocument
lineNumBase int
linePosBase int
return XPathNodeInfoAtom
Beispiel #1
0
 public void SetSimilarElement(XPathNodeInfoTable infoTable, XPathNode[] pageSimilar, int idxSimilar)
 {
     this.idxSimilar = (ushort)idxSimilar;
     if (pageSimilar != this.info.SimilarElementPage)
     {
         this.info = infoTable.Create(this.info.LocalName, this.info.NamespaceUri, this.info.Prefix, this.info.BaseUri, this.info.ParentPage, this.info.SiblingPage, pageSimilar, this.info.Document, this.info.LineNumberBase, this.info.LinePositionBase);
     }
 }
Beispiel #2
0
        /// <summary>
        /// Link this element to the next element in document order that shares a local name having the same hash code.
        /// If "pageSimilar" is different than the one stored in the InfoAtom, re-atomize.
        /// </summary>
        public void SetSimilarElement(XPathNodeInfoTable infoTable, XPathNode[] pageSimilar, int idxSimilar)
        {
            Debug.Assert(pageSimilar != null && idxSimilar != 0 && idxSimilar <= ushort.MaxValue, "Bad argument");
            Debug.Assert(_idxSimilar == 0, "SetSimilarElement should not be called more than once.");
            _idxSimilar = (ushort)idxSimilar;

            if (pageSimilar != _info.SimilarElementPage)
            {
                // Re-atomize the InfoAtom
                _info = infoTable.Create(_info.LocalName, _info.NamespaceUri, _info.Prefix, _info.BaseUri,
                                         _info.ParentPage, _info.SiblingPage, pageSimilar,
                                         _info.Document, _info.LineNumberBase, _info.LinePositionBase);
            }
        }
        /// <summary>
        /// Link this node to its next sibling.  If "pageSibling" is different than the one stored in the InfoAtom, re-atomize.
        /// </summary>
        public void SetSibling(XPathNodeInfoTable infoTable, XPathNode[] pageSibling, int idxSibling)
        {
            Debug.Assert(pageSibling != null && idxSibling != 0 && idxSibling <= UInt16.MaxValue, "Bad argument");
            Debug.Assert(this.idxSibling == 0, "SetSibling should not be called more than once.");
            this.idxSibling = (ushort)idxSibling;

            if (pageSibling != this.info.SiblingPage)
            {
                // Re-atomize the InfoAtom
                this.info = infoTable.Create(this.info.LocalName, this.info.NamespaceUri, this.info.Prefix, this.info.BaseUri,
                                             this.info.ParentPage, pageSibling, this.info.SimilarElementPage,
                                             this.info.Document, this.info.LineNumberBase, this.info.LinePositionBase);
            }
        }
Beispiel #4
0
        /// <summary>
        /// Link this element to the next element in document order that shares a local name having the same hash code.
        /// If "pageSimilar" is different than the one stored in the InfoAtom, re-atomize.
        /// </summary>
        public void SetSimilarElement(XPathNodeInfoTable infoTable, XPathNode[] pageSimilar, int idxSimilar)
        {
            Debug.Assert(pageSimilar != null && idxSimilar != 0 && idxSimilar <= UInt16.MaxValue, "Bad argument");
            Debug.Assert(this.idxSimilar == 0, "SetSimilarElement should not be called more than once.");
            this.idxSimilar = (ushort)idxSimilar;

            if (pageSimilar != this.info.SimilarElementPage)
            {
                // Re-atomize the InfoAtom
                this.info = infoTable.Create(this.info.LocalName, this.info.NamespaceUri, this.info.Prefix, this.info.BaseUri,
                                             this.info.ParentPage, this.info.SiblingPage, pageSimilar,
                                             this.info.Document, this.info.LineNumberBase, this.info.LinePositionBase);
            }
        }
Beispiel #5
0
        /// <summary>
        /// Link this node to its next sibling.  If "pageSibling" is different than the one stored in the InfoAtom, re-atomize.
        /// </summary>
        public void SetSibling(XPathNodeInfoTable infoTable, XPathNode[] pageSibling, int idxSibling)
        {
            Debug.Assert(pageSibling != null && idxSibling != 0 && idxSibling <= UInt16.MaxValue, "Bad argument");
            Debug.Assert(_idxSibling == 0, "SetSibling should not be called more than once.");
            _idxSibling = (ushort)idxSibling;

            if (pageSibling != _info.SiblingPage)
            {
                // Re-atomize the InfoAtom
                _info = infoTable.Create(_info.LocalName, _info.NamespaceUri, _info.Prefix, _info.BaseUri,
                                             _info.ParentPage, pageSibling, _info.SimilarElementPage,
                                             _info.Document, _info.LineNumberBase, _info.LinePositionBase);
            }
        }
 public void SetSimilarElement(XPathNodeInfoTable infoTable, XPathNode[] pageSimilar, int idxSimilar)
 {
     this.idxSimilar = (ushort) idxSimilar;
     if (pageSimilar != this.info.SimilarElementPage)
     {
         this.info = infoTable.Create(this.info.LocalName, this.info.NamespaceUri, this.info.Prefix, this.info.BaseUri, this.info.ParentPage, this.info.SiblingPage, pageSimilar, this.info.Document, this.info.LineNumberBase, this.info.LinePositionBase);
     }
 }