void MoveNextInXml(XmlDataNode dataNode) { if (IsXmlDataNode) { xmlNodeReader.Read(); if (xmlNodeReader.Depth == 0) { this.internalNodeType = ExtensionDataNodeType.EndElement; xmlNodeReader = null; } } else { internalNodeType = ExtensionDataNodeType.Xml; if (element == null) element = nextElement; else PushElement(); XmlNode wrapperElement = XmlObjectSerializerReadContext.CreateWrapperXmlElement(dataNode.OwnerDocument, dataNode.XmlAttributes, dataNode.XmlChildNodes, element.prefix, element.localName, element.ns); for (int i = 0; i < element.attributeCount; i++) { AttributeData a = element.attributes[i]; XmlAttribute xmlAttr = dataNode.OwnerDocument.CreateAttribute(a.prefix, a.localName, a.ns); xmlAttr.Value = a.value; wrapperElement.Attributes.Append(xmlAttr); } xmlNodeReader = new XmlNodeReader(wrapperElement); xmlNodeReader.Read(); } }
private void MoveNextInXml(XmlDataNode dataNode) { if (this.IsXmlDataNode) { this.xmlNodeReader.Read(); if (this.xmlNodeReader.Depth == 0) { this.internalNodeType = ExtensionDataNodeType.EndElement; this.xmlNodeReader = null; } } else { this.internalNodeType = ExtensionDataNodeType.Xml; if (this.element == null) { this.element = this.nextElement; } else { this.PushElement(); } System.Xml.XmlNode node = XmlObjectSerializerReadContext.CreateWrapperXmlElement(dataNode.OwnerDocument, dataNode.XmlAttributes, dataNode.XmlChildNodes, this.element.prefix, this.element.localName, this.element.ns); for (int i = 0; i < this.element.attributeCount; i++) { AttributeData data = this.element.attributes[i]; System.Xml.XmlAttribute attribute = dataNode.OwnerDocument.CreateAttribute(data.prefix, data.localName, data.ns); attribute.Value = data.value; node.Attributes.Append(attribute); } this.xmlNodeReader = new XmlNodeReader(node); this.xmlNodeReader.Read(); } }