private static void WriteBoundElementTo(DataPointer dp, XmlWriter w) { Debug.Assert(dp.NodeType == XmlNodeType.Element); w.WriteStartElement(dp.Prefix, dp.LocalName, dp.NamespaceURI); int cAttr = dp.AttributeCount; if (cAttr > 0) { for (int iAttr = 0; iAttr < cAttr; iAttr++) { dp.MoveToAttribute(iAttr); WriteTo(dp, w); dp.MoveToOwnerElement(); } } WriteBoundElementContentTo(dp, w); // Force long end tag when the elem is not empty, even if there are no children. if (dp.IsEmptyElement) { w.WriteEndElement(); } else { w.WriteFullEndElement(); } }
private void WriteRootBoundElementTo(DataPointer dp, XmlWriter w) { XmlDataDocument ownerDocument = (XmlDataDocument)this.OwnerDocument; w.WriteStartElement(dp.Prefix, dp.LocalName, dp.NamespaceURI); int attributeCount = dp.AttributeCount; bool flag = false; if (attributeCount > 0) { for (int i = 0; i < attributeCount; i++) { dp.MoveToAttribute(i); if ((dp.Prefix == "xmlns") && (dp.LocalName == "xsi")) { flag = true; } WriteTo(dp, w); dp.MoveToOwnerElement(); } } if ((!flag && ownerDocument.bLoadFromDataSet) && ownerDocument.bHasXSINIL) { w.WriteAttributeString("xmlns", "xsi", "http://www.w3.org/2000/xmlns/", "http://www.w3.org/2001/XMLSchema-instance"); } WriteBoundElementContentTo(dp, w); if (dp.IsEmptyElement) { w.WriteEndElement(); } else { w.WriteFullEndElement(); } }
private void WriteRootBoundElementTo(DataPointer dp, XmlWriter w) { Debug.Assert(dp.NodeType == XmlNodeType.Element); XmlDataDocument doc = (XmlDataDocument)OwnerDocument; w.WriteStartElement(dp.Prefix, dp.LocalName, dp.NamespaceURI); int cAttr = dp.AttributeCount; bool bHasXSI = false; if (cAttr > 0) { for (int iAttr = 0; iAttr < cAttr; iAttr++) { dp.MoveToAttribute(iAttr); if (dp.Prefix == "xmlns" && dp.LocalName == XmlDataDocument.XSI) { bHasXSI = true; } WriteTo(dp, w); dp.MoveToOwnerElement(); } } if (!bHasXSI && doc._bLoadFromDataSet && doc._bHasXSINIL) { w.WriteAttributeString("xmlns", "xsi", "http://www.w3.org/2000/xmlns/", Keywords.XSINS); } WriteBoundElementContentTo(dp, w); // Force long end tag when the elem is not empty, even if there are no children. if (dp.IsEmptyElement) { w.WriteEndElement(); } else { w.WriteFullEndElement(); } }
private static void WriteBoundElementTo(DataPointer dp, XmlWriter w) { w.WriteStartElement(dp.Prefix, dp.LocalName, dp.NamespaceURI); int attributeCount = dp.AttributeCount; if (attributeCount > 0) { for (int i = 0; i < attributeCount; i++) { dp.MoveToAttribute(i); WriteTo(dp, w); dp.MoveToOwnerElement(); } } WriteBoundElementContentTo(dp, w); if (dp.IsEmptyElement) { w.WriteEndElement(); } else { w.WriteFullEndElement(); } }
private XmlNode CloneTreeInternal(DataPointer other) { Debug.Assert(_ignoreDataSetEvents == true); Debug.Assert(_ignoreXmlEvents == true); Debug.Assert(IsFoliationEnabled == false); // Create the diconnected tree based on the other navigator XmlNode newNode = CloneNode(other); DataPointer dp = new DataPointer(other); try { dp.AddPointer(); if (newNode.NodeType == XmlNodeType.Element) { int cAttributes = dp.AttributeCount; for (int i = 0; i < cAttributes; i++) { dp.MoveToOwnerElement(); if (dp.MoveToAttribute(i)) { newNode.Attributes.Append((XmlAttribute)CloneTreeInternal(dp)); } } dp.MoveTo(other); } for (bool fMore = dp.MoveToFirstChild(); fMore; fMore = dp.MoveToNextSibling()) newNode.AppendChild(CloneTreeInternal(dp)); } finally { dp.SetNoLongerUse(); } return newNode; }
private static void WriteBoundElementTo( DataPointer dp, XmlWriter w ) { Debug.Assert( dp.NodeType == XmlNodeType.Element ); w.WriteStartElement( dp.Prefix, dp.LocalName, dp.NamespaceURI ); int cAttr = dp.AttributeCount; if ( cAttr > 0 ) { for ( int iAttr = 0; iAttr < cAttr; iAttr++ ) { dp.MoveToAttribute( iAttr ); WriteTo( dp, w ); dp.MoveToOwnerElement(); } } WriteBoundElementContentTo( dp, w ); // Force long end tag when the elem is not empty, even if there are no children. if ( dp.IsEmptyElement ) w.WriteEndElement(); else w.WriteFullEndElement(); }
private void WriteRootBoundElementTo(DataPointer dp, XmlWriter w) { Debug.Assert( dp.NodeType == XmlNodeType.Element ); XmlDataDocument doc = (XmlDataDocument)OwnerDocument; w.WriteStartElement( dp.Prefix, dp.LocalName, dp.NamespaceURI ); int cAttr = dp.AttributeCount; bool bHasXSI = false; if ( cAttr > 0 ) { for ( int iAttr = 0; iAttr < cAttr; iAttr++ ) { dp.MoveToAttribute( iAttr ); if ( dp.Prefix == "xmlns" && dp.LocalName == XmlDataDocument.XSI ) bHasXSI = true; WriteTo( dp, w ); dp.MoveToOwnerElement(); } } if ( !bHasXSI && doc.bLoadFromDataSet && doc.bHasXSINIL ) w.WriteAttributeString( "xmlns", "xsi", "http://www.w3.org/2000/xmlns/", Keywords.XSINS ); WriteBoundElementContentTo( dp, w ); // Force long end tag when the elem is not empty, even if there are no children. if ( dp.IsEmptyElement ) w.WriteEndElement(); else w.WriteFullEndElement(); }
private void WriteRootBoundElementTo(DataPointer dp, XmlWriter w) { XmlDataDocument ownerDocument = (XmlDataDocument) this.OwnerDocument; w.WriteStartElement(dp.Prefix, dp.LocalName, dp.NamespaceURI); int attributeCount = dp.AttributeCount; bool flag = false; if (attributeCount > 0) { for (int i = 0; i < attributeCount; i++) { dp.MoveToAttribute(i); if ((dp.Prefix == "xmlns") && (dp.LocalName == "xsi")) { flag = true; } WriteTo(dp, w); dp.MoveToOwnerElement(); } } if ((!flag && ownerDocument.bLoadFromDataSet) && ownerDocument.bHasXSINIL) { w.WriteAttributeString("xmlns", "xsi", "http://www.w3.org/2000/xmlns/", "http://www.w3.org/2001/XMLSchema-instance"); } WriteBoundElementContentTo(dp, w); if (dp.IsEmptyElement) { w.WriteEndElement(); } else { w.WriteFullEndElement(); } }