// Methods internal override void WriteTo(XmlWriter xmlWriter, XmlDiff xmlDiff) { if (!_bSorted) { Sort(); } xmlWriter.WriteStartElement(XmlDiff.Prefix, "add", XmlDiff.NamespaceUri); if (_operationID != 0) { xmlWriter.WriteAttributeString("opid", _operationID.ToString()); } // namespaces if (_bNeedNamespaces) { Hashtable definedPrefixes = new Hashtable(); XmlDiffParentNode parent = _firstTargetNode._parent; while (parent != null) { if (parent._bDefinesNamespaces) { XmlDiffElement el = (XmlDiffElement)parent; XmlDiffAttributeOrNamespace curNs = el._attributes; while (curNs != null && curNs.NodeType == XmlDiffNodeType.Namespace) { if (definedPrefixes[curNs.Prefix] == null) { if (curNs.Prefix == string.Empty) { xmlWriter.WriteAttributeString("xmlns", XmlDiff.XmlnsNamespaceUri, curNs.NamespaceURI); } else { xmlWriter.WriteAttributeString("xmlns", curNs.Prefix, XmlDiff.XmlnsNamespaceUri, curNs.NamespaceURI); } definedPrefixes[curNs.Prefix] = curNs.Prefix; } curNs = (XmlDiffAttributeOrNamespace)curNs._nextSibling; } } parent = parent._parent; } } // output nodes XmlDiffNode node = _firstTargetNode; for (;;) { node.WriteTo(xmlWriter); if (node == _lastTargetNode) { break; } node = node._nextSibling; } xmlWriter.WriteEndElement(); }
internal override void WriteContentTo(XmlWriter w) { XmlDiffNode child = _firstChildNode; while (child != null) { child.WriteTo(w); child = child._nextSibling; } }
internal override void WriteContentTo(XmlWriter w) { XmlDiffNode curNode = _firstNode; for (;;) { curNode.WriteTo(w); if (curNode == _lastNode) { break; } curNode = curNode._nextSibling; } }