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();
     }
 }