Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / whidbey / NetFXspW7 / ndp / fx / src / Xml / System / Xml / Dom / XmlElement.cs / 1 / XmlElement.cs
//------------------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// [....]
//-----------------------------------------------------------------------------
using System;
using System.Xml.Schema;
using System.Xml.XPath;
using System.Collections;
using System.Diagnostics;
using System.Globalization;
namespace System.Xml {
// Represents an element.
public class XmlElement : XmlLinkedNode {
XmlName name;
XmlAttributeCollection attributes;
XmlLinkedNode lastChild; // == this for empty elements otherwise it is the last child
internal XmlElement( XmlName name, bool empty, XmlDocument doc ): base( doc ) {
Debug.Assert(name!=null);
this.parentNode = null;
if ( !doc.IsLoading ) {
XmlDocument.CheckName( name.Prefix );
XmlDocument.CheckName( name.LocalName );
}
if (name.LocalName.Length == 0)
throw new ArgumentException(Res.GetString(Res.Xdom_Empty_LocalName));
if ( name.Prefix.Length >= 3 && (! doc.IsLoading) && String.Compare( name.Prefix, 0, "xml", 0, 3, StringComparison.OrdinalIgnoreCase ) == 0 )
throw new ArgumentException(Res.GetString(Res.Xdom_Ele_Prefix));
this.name = name;
if (empty) {
this.lastChild = this;
}
}
protected internal XmlElement( string prefix, string localName, string namespaceURI, XmlDocument doc )
: this( doc.AddXmlName( prefix, localName, namespaceURI, null ), true, doc ) {
}
internal XmlName XmlName {
get { return name; }
set { name = value; }
}
// Creates a duplicate of this node.
public override XmlNode CloneNode(bool deep) {
Debug.Assert( OwnerDocument != null );
XmlDocument doc = OwnerDocument;
bool OrigLoadingStatus = doc.IsLoading;
doc.IsLoading = true;
XmlElement element = doc.CreateElement( Prefix, LocalName, NamespaceURI );
doc.IsLoading = OrigLoadingStatus;
if ( element.IsEmpty != this.IsEmpty )
element.IsEmpty = this.IsEmpty;
if (HasAttributes) {
foreach( XmlAttribute attr in Attributes ) {
XmlAttribute newAttr = (XmlAttribute)(attr.CloneNode(true));
if (attr is XmlUnspecifiedAttribute && attr.Specified == false)
( ( XmlUnspecifiedAttribute )newAttr).SetSpecified(false);
element.Attributes.InternalAppendAttribute( newAttr );
}
}
if (deep)
element.CopyChildren( doc, this, deep );
return element;
}
// Gets the name of the node.
public override string Name {
get { return name.Name;}
}
// Gets the name of the current node without the namespace prefix.
public override string LocalName {
get { return name.LocalName;}
}
// Gets the namespace URI of this node.
public override string NamespaceURI {
get { return name.NamespaceURI;}
}
// Gets or sets the namespace prefix of this node.
public override string Prefix {
get { return name.Prefix;}
set { name = name.OwnerDocument.AddXmlName( value, LocalName, NamespaceURI, SchemaInfo ); }
}
// Gets the type of the current node.
public override XmlNodeType NodeType {
get { return XmlNodeType.Element;}
}
public override XmlNode ParentNode {
get {
return this.parentNode;
}
}
// Gets the XmlDocument that contains this node.
public override XmlDocument OwnerDocument {
get {
return name.OwnerDocument;
}
}
internal override bool IsContainer {
get { return true;}
}
//the function is provided only at Load time to speed up Load process
internal override XmlNode AppendChildForLoad(XmlNode newChild, XmlDocument doc) {
XmlNodeChangedEventArgs args = doc.GetInsertEventArgsForLoad( newChild, this );
if (args != null)
doc.BeforeEvent( args );
XmlLinkedNode newNode = (XmlLinkedNode)newChild;
if (lastChild == null
|| lastChild == this) { // if LastNode == null
newNode.next = newNode;
lastChild = newNode; // LastNode = newNode;
newNode.SetParentForLoad(this);
}
else {
XmlLinkedNode refNode = lastChild; // refNode = LastNode;
newNode.next = refNode.next;
refNode.next = newNode;
lastChild = newNode; // LastNode = newNode;
if (refNode.IsText
&& newNode.IsText) {
NestTextNodes(refNode, newNode);
}
else {
newNode.SetParentForLoad(this);
}
}
if (args != null)
doc.AfterEvent( args );
return newNode;
}
// Gets or sets whether the element does not have any children.
public bool IsEmpty {
get {
return lastChild == this;
}
set {
if (value) {
if (lastChild != this) {
RemoveAllChildren();
lastChild = this;
}
}
else {
if (lastChild == this) {
lastChild = null;
}
}
}
}
internal override XmlLinkedNode LastNode {
get {
return lastChild == this ? null : lastChild;
}
set {
lastChild = value;
}
}
internal override bool IsValidChildType( XmlNodeType type ) {
switch (type) {
case XmlNodeType.Element:
case XmlNodeType.Text:
case XmlNodeType.EntityReference:
case XmlNodeType.Comment:
case XmlNodeType.Whitespace:
case XmlNodeType.SignificantWhitespace:
case XmlNodeType.ProcessingInstruction:
case XmlNodeType.CDATA:
return true;
default:
return false;
}
}
// Gets a XmlAttributeCollection containing the list of attributes for this node.
public override XmlAttributeCollection Attributes {
get {
if (attributes == null) {
lock ( OwnerDocument.objLock ) {
if ( attributes == null ) {
attributes = new XmlAttributeCollection(this);
}
}
}
return attributes;
}
}
// Gets a value indicating whether the current node
// has any attributes.
public virtual bool HasAttributes {
get {
if ( this.attributes == null )
return false;
else
return this.attributes.Count > 0;
}
}
// Returns the value for the attribute with the specified name.
public virtual string GetAttribute(string name) {
XmlAttribute attr = GetAttributeNode(name);
if (attr != null)
return attr.Value;
return String.Empty;
}
// Sets the value of the attribute
// with the specified name.
public virtual void SetAttribute(string name, string value) {
XmlAttribute attr = GetAttributeNode(name);
if (attr == null) {
attr = OwnerDocument.CreateAttribute(name);
attr.Value = value;
Attributes.InternalAppendAttribute( attr );
}
else {
attr.Value = value;
}
}
// Removes an attribute by name.
public virtual void RemoveAttribute(string name) {
if (HasAttributes)
Attributes.RemoveNamedItem(name);
}
// Returns the XmlAttribute with the specified name.
public virtual XmlAttribute GetAttributeNode(string name) {
if (HasAttributes)
return Attributes[name];
return null;
}
// Adds the specified XmlAttribute.
public virtual XmlAttribute SetAttributeNode(XmlAttribute newAttr) {
if ( newAttr.OwnerElement != null )
throw new InvalidOperationException( Res.GetString(Res.Xdom_Attr_InUse) );
return(XmlAttribute) Attributes.SetNamedItem(newAttr);
}
// Removes the specified XmlAttribute.
public virtual XmlAttribute RemoveAttributeNode(XmlAttribute oldAttr) {
if (HasAttributes)
return(XmlAttribute) Attributes.Remove(oldAttr);
return null;
}
// Returns a XmlNodeList containing
// a list of all descendant elements that match the specified name.
public virtual XmlNodeList GetElementsByTagName(string name) {
return new XmlElementList( this, name );
}
//
// DOM Level 2
//
// Returns the value for the attribute with the specified LocalName and NamespaceURI.
public virtual string GetAttribute(string localName, string namespaceURI) {
XmlAttribute attr = GetAttributeNode( localName, namespaceURI );
if (attr != null)
return attr.Value;
return String.Empty;
}
// Sets the value of the attribute with the specified name
// and namespace.
public virtual string SetAttribute(string localName, string namespaceURI, string value) {
XmlAttribute attr = GetAttributeNode( localName, namespaceURI );
if (attr == null) {
attr = OwnerDocument.CreateAttribute( string.Empty, localName, namespaceURI );
attr.Value = value;
Attributes.InternalAppendAttribute( attr );
}
else {
attr.Value = value;
}
return value;
}
// Removes an attribute specified by LocalName and NamespaceURI.
public virtual void RemoveAttribute(string localName, string namespaceURI) {
//Debug.Assert(namespaceURI != null);
RemoveAttributeNode( localName, namespaceURI );
}
// Returns the XmlAttribute with the specified LocalName and NamespaceURI.
public virtual XmlAttribute GetAttributeNode(string localName, string namespaceURI) {
//Debug.Assert(namespaceURI != null);
if (HasAttributes)
return Attributes[ localName, namespaceURI ];
return null;
}
// Adds the specified XmlAttribute.
public virtual XmlAttribute SetAttributeNode(string localName, string namespaceURI) {
XmlAttribute attr = GetAttributeNode( localName, namespaceURI );
if (attr == null) {
attr = OwnerDocument.CreateAttribute( string.Empty, localName, namespaceURI );
Attributes.InternalAppendAttribute( attr );
}
return attr;
}
// Removes the XmlAttribute specified by LocalName and NamespaceURI.
public virtual XmlAttribute RemoveAttributeNode(string localName, string namespaceURI) {
//Debug.Assert(namespaceURI != null);
if (HasAttributes) {
XmlAttribute attr = GetAttributeNode( localName, namespaceURI );
Attributes.Remove( attr );
return attr;
}
return null;
}
// Returns a XmlNodeList containing
// a list of all descendant elements that match the specified name.
public virtual XmlNodeList GetElementsByTagName(string localName, string namespaceURI) {
//Debug.Assert(namespaceURI != null);
return new XmlElementList( this, localName, namespaceURI );
}
// Determines whether the current node has the specified attribute.
public virtual bool HasAttribute(string name) {
return GetAttributeNode(name) != null;
}
// Determines whether the current node has the specified
// attribute from the specified namespace.
public virtual bool HasAttribute(string localName, string namespaceURI) {
return GetAttributeNode(localName, namespaceURI) != null;
}
// Saves the current node to the specified XmlWriter.
public override void WriteTo(XmlWriter w) {
w.WriteStartElement( Prefix, LocalName, NamespaceURI );
if ( HasAttributes ) {
XmlAttributeCollection attrs = Attributes;
for (int i = 0; i < attrs.Count; i += 1) {
XmlAttribute attr = attrs[i];
attr.WriteTo(w);
}
}
if (IsEmpty) {
w.WriteEndElement();
}
else {
WriteContentTo( w );
w.WriteFullEndElement();
}
}
// Saves all the children of the node to the specified XmlWriter.
public override void WriteContentTo(XmlWriter w) {
for (XmlNode node = FirstChild; node != null; node = node.NextSibling) {
node.WriteTo(w);
}
}
// Removes the attribute node with the specified index from the attribute collection.
public virtual XmlNode RemoveAttributeAt(int i) {
if (HasAttributes)
return attributes.RemoveAt( i );
return null;
}
// Removes all attributes from the element.
public virtual void RemoveAllAttributes() {
if (HasAttributes) {
attributes.RemoveAll();
}
}
// Removes all the children and/or attributes
// of the current node.
public override void RemoveAll() {
//remove all the children
base.RemoveAll();
//remove all the attributes
RemoveAllAttributes();
}
internal void RemoveAllChildren() {
base.RemoveAll();
}
public override IXmlSchemaInfo SchemaInfo {
get {
return name;
}
}
// Gets or sets the markup representing just
// the children of this node.
public override string InnerXml {
get {
return base.InnerXml;
}
set {
RemoveAllChildren();
XmlLoader loader = new XmlLoader();
loader.LoadInnerXmlElement( this, value );
}
}
// Gets or sets the concatenated values of the
// node and all its children.
public override string InnerText {
get {
return base.InnerText;
}
set {
XmlLinkedNode linkedNode = LastNode;
if (linkedNode != null && //there is one child
linkedNode.NodeType == XmlNodeType.Text && //which is text node
linkedNode.next == linkedNode ) // and it is the only child
{
//this branch is for perf reason, event fired when TextNode.Value is changed.
linkedNode.Value = value;
}
else {
RemoveAllChildren();
AppendChild( OwnerDocument.CreateTextNode( value ) );
}
}
}
public override XmlNode NextSibling {
get {
if (this.parentNode != null
&& this.parentNode.LastNode != this)
return next;
return null;
}
}
internal override void SetParent(XmlNode node) {
this.parentNode = node;
}
internal override XPathNodeType XPNodeType { get { return XPathNodeType.Element; } }
internal override string XPLocalName { get { return LocalName; } }
internal override string GetXPAttribute( string localName, string ns ) {
if ( ns == OwnerDocument.strReservedXmlns )
return null;
XmlAttribute attr = GetAttributeNode( localName, ns );
if ( attr != null )
return attr.Value;
return string.Empty;
}
}
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
//------------------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// [....]
//-----------------------------------------------------------------------------
using System;
using System.Xml.Schema;
using System.Xml.XPath;
using System.Collections;
using System.Diagnostics;
using System.Globalization;
namespace System.Xml {
// Represents an element.
public class XmlElement : XmlLinkedNode {
XmlName name;
XmlAttributeCollection attributes;
XmlLinkedNode lastChild; // == this for empty elements otherwise it is the last child
internal XmlElement( XmlName name, bool empty, XmlDocument doc ): base( doc ) {
Debug.Assert(name!=null);
this.parentNode = null;
if ( !doc.IsLoading ) {
XmlDocument.CheckName( name.Prefix );
XmlDocument.CheckName( name.LocalName );
}
if (name.LocalName.Length == 0)
throw new ArgumentException(Res.GetString(Res.Xdom_Empty_LocalName));
if ( name.Prefix.Length >= 3 && (! doc.IsLoading) && String.Compare( name.Prefix, 0, "xml", 0, 3, StringComparison.OrdinalIgnoreCase ) == 0 )
throw new ArgumentException(Res.GetString(Res.Xdom_Ele_Prefix));
this.name = name;
if (empty) {
this.lastChild = this;
}
}
protected internal XmlElement( string prefix, string localName, string namespaceURI, XmlDocument doc )
: this( doc.AddXmlName( prefix, localName, namespaceURI, null ), true, doc ) {
}
internal XmlName XmlName {
get { return name; }
set { name = value; }
}
// Creates a duplicate of this node.
public override XmlNode CloneNode(bool deep) {
Debug.Assert( OwnerDocument != null );
XmlDocument doc = OwnerDocument;
bool OrigLoadingStatus = doc.IsLoading;
doc.IsLoading = true;
XmlElement element = doc.CreateElement( Prefix, LocalName, NamespaceURI );
doc.IsLoading = OrigLoadingStatus;
if ( element.IsEmpty != this.IsEmpty )
element.IsEmpty = this.IsEmpty;
if (HasAttributes) {
foreach( XmlAttribute attr in Attributes ) {
XmlAttribute newAttr = (XmlAttribute)(attr.CloneNode(true));
if (attr is XmlUnspecifiedAttribute && attr.Specified == false)
( ( XmlUnspecifiedAttribute )newAttr).SetSpecified(false);
element.Attributes.InternalAppendAttribute( newAttr );
}
}
if (deep)
element.CopyChildren( doc, this, deep );
return element;
}
// Gets the name of the node.
public override string Name {
get { return name.Name;}
}
// Gets the name of the current node without the namespace prefix.
public override string LocalName {
get { return name.LocalName;}
}
// Gets the namespace URI of this node.
public override string NamespaceURI {
get { return name.NamespaceURI;}
}
// Gets or sets the namespace prefix of this node.
public override string Prefix {
get { return name.Prefix;}
set { name = name.OwnerDocument.AddXmlName( value, LocalName, NamespaceURI, SchemaInfo ); }
}
// Gets the type of the current node.
public override XmlNodeType NodeType {
get { return XmlNodeType.Element;}
}
public override XmlNode ParentNode {
get {
return this.parentNode;
}
}
// Gets the XmlDocument that contains this node.
public override XmlDocument OwnerDocument {
get {
return name.OwnerDocument;
}
}
internal override bool IsContainer {
get { return true;}
}
//the function is provided only at Load time to speed up Load process
internal override XmlNode AppendChildForLoad(XmlNode newChild, XmlDocument doc) {
XmlNodeChangedEventArgs args = doc.GetInsertEventArgsForLoad( newChild, this );
if (args != null)
doc.BeforeEvent( args );
XmlLinkedNode newNode = (XmlLinkedNode)newChild;
if (lastChild == null
|| lastChild == this) { // if LastNode == null
newNode.next = newNode;
lastChild = newNode; // LastNode = newNode;
newNode.SetParentForLoad(this);
}
else {
XmlLinkedNode refNode = lastChild; // refNode = LastNode;
newNode.next = refNode.next;
refNode.next = newNode;
lastChild = newNode; // LastNode = newNode;
if (refNode.IsText
&& newNode.IsText) {
NestTextNodes(refNode, newNode);
}
else {
newNode.SetParentForLoad(this);
}
}
if (args != null)
doc.AfterEvent( args );
return newNode;
}
// Gets or sets whether the element does not have any children.
public bool IsEmpty {
get {
return lastChild == this;
}
set {
if (value) {
if (lastChild != this) {
RemoveAllChildren();
lastChild = this;
}
}
else {
if (lastChild == this) {
lastChild = null;
}
}
}
}
internal override XmlLinkedNode LastNode {
get {
return lastChild == this ? null : lastChild;
}
set {
lastChild = value;
}
}
internal override bool IsValidChildType( XmlNodeType type ) {
switch (type) {
case XmlNodeType.Element:
case XmlNodeType.Text:
case XmlNodeType.EntityReference:
case XmlNodeType.Comment:
case XmlNodeType.Whitespace:
case XmlNodeType.SignificantWhitespace:
case XmlNodeType.ProcessingInstruction:
case XmlNodeType.CDATA:
return true;
default:
return false;
}
}
// Gets a XmlAttributeCollection containing the list of attributes for this node.
public override XmlAttributeCollection Attributes {
get {
if (attributes == null) {
lock ( OwnerDocument.objLock ) {
if ( attributes == null ) {
attributes = new XmlAttributeCollection(this);
}
}
}
return attributes;
}
}
// Gets a value indicating whether the current node
// has any attributes.
public virtual bool HasAttributes {
get {
if ( this.attributes == null )
return false;
else
return this.attributes.Count > 0;
}
}
// Returns the value for the attribute with the specified name.
public virtual string GetAttribute(string name) {
XmlAttribute attr = GetAttributeNode(name);
if (attr != null)
return attr.Value;
return String.Empty;
}
// Sets the value of the attribute
// with the specified name.
public virtual void SetAttribute(string name, string value) {
XmlAttribute attr = GetAttributeNode(name);
if (attr == null) {
attr = OwnerDocument.CreateAttribute(name);
attr.Value = value;
Attributes.InternalAppendAttribute( attr );
}
else {
attr.Value = value;
}
}
// Removes an attribute by name.
public virtual void RemoveAttribute(string name) {
if (HasAttributes)
Attributes.RemoveNamedItem(name);
}
// Returns the XmlAttribute with the specified name.
public virtual XmlAttribute GetAttributeNode(string name) {
if (HasAttributes)
return Attributes[name];
return null;
}
// Adds the specified XmlAttribute.
public virtual XmlAttribute SetAttributeNode(XmlAttribute newAttr) {
if ( newAttr.OwnerElement != null )
throw new InvalidOperationException( Res.GetString(Res.Xdom_Attr_InUse) );
return(XmlAttribute) Attributes.SetNamedItem(newAttr);
}
// Removes the specified XmlAttribute.
public virtual XmlAttribute RemoveAttributeNode(XmlAttribute oldAttr) {
if (HasAttributes)
return(XmlAttribute) Attributes.Remove(oldAttr);
return null;
}
// Returns a XmlNodeList containing
// a list of all descendant elements that match the specified name.
public virtual XmlNodeList GetElementsByTagName(string name) {
return new XmlElementList( this, name );
}
//
// DOM Level 2
//
// Returns the value for the attribute with the specified LocalName and NamespaceURI.
public virtual string GetAttribute(string localName, string namespaceURI) {
XmlAttribute attr = GetAttributeNode( localName, namespaceURI );
if (attr != null)
return attr.Value;
return String.Empty;
}
// Sets the value of the attribute with the specified name
// and namespace.
public virtual string SetAttribute(string localName, string namespaceURI, string value) {
XmlAttribute attr = GetAttributeNode( localName, namespaceURI );
if (attr == null) {
attr = OwnerDocument.CreateAttribute( string.Empty, localName, namespaceURI );
attr.Value = value;
Attributes.InternalAppendAttribute( attr );
}
else {
attr.Value = value;
}
return value;
}
// Removes an attribute specified by LocalName and NamespaceURI.
public virtual void RemoveAttribute(string localName, string namespaceURI) {
//Debug.Assert(namespaceURI != null);
RemoveAttributeNode( localName, namespaceURI );
}
// Returns the XmlAttribute with the specified LocalName and NamespaceURI.
public virtual XmlAttribute GetAttributeNode(string localName, string namespaceURI) {
//Debug.Assert(namespaceURI != null);
if (HasAttributes)
return Attributes[ localName, namespaceURI ];
return null;
}
// Adds the specified XmlAttribute.
public virtual XmlAttribute SetAttributeNode(string localName, string namespaceURI) {
XmlAttribute attr = GetAttributeNode( localName, namespaceURI );
if (attr == null) {
attr = OwnerDocument.CreateAttribute( string.Empty, localName, namespaceURI );
Attributes.InternalAppendAttribute( attr );
}
return attr;
}
// Removes the XmlAttribute specified by LocalName and NamespaceURI.
public virtual XmlAttribute RemoveAttributeNode(string localName, string namespaceURI) {
//Debug.Assert(namespaceURI != null);
if (HasAttributes) {
XmlAttribute attr = GetAttributeNode( localName, namespaceURI );
Attributes.Remove( attr );
return attr;
}
return null;
}
// Returns a XmlNodeList containing
// a list of all descendant elements that match the specified name.
public virtual XmlNodeList GetElementsByTagName(string localName, string namespaceURI) {
//Debug.Assert(namespaceURI != null);
return new XmlElementList( this, localName, namespaceURI );
}
// Determines whether the current node has the specified attribute.
public virtual bool HasAttribute(string name) {
return GetAttributeNode(name) != null;
}
// Determines whether the current node has the specified
// attribute from the specified namespace.
public virtual bool HasAttribute(string localName, string namespaceURI) {
return GetAttributeNode(localName, namespaceURI) != null;
}
// Saves the current node to the specified XmlWriter.
public override void WriteTo(XmlWriter w) {
w.WriteStartElement( Prefix, LocalName, NamespaceURI );
if ( HasAttributes ) {
XmlAttributeCollection attrs = Attributes;
for (int i = 0; i < attrs.Count; i += 1) {
XmlAttribute attr = attrs[i];
attr.WriteTo(w);
}
}
if (IsEmpty) {
w.WriteEndElement();
}
else {
WriteContentTo( w );
w.WriteFullEndElement();
}
}
// Saves all the children of the node to the specified XmlWriter.
public override void WriteContentTo(XmlWriter w) {
for (XmlNode node = FirstChild; node != null; node = node.NextSibling) {
node.WriteTo(w);
}
}
// Removes the attribute node with the specified index from the attribute collection.
public virtual XmlNode RemoveAttributeAt(int i) {
if (HasAttributes)
return attributes.RemoveAt( i );
return null;
}
// Removes all attributes from the element.
public virtual void RemoveAllAttributes() {
if (HasAttributes) {
attributes.RemoveAll();
}
}
// Removes all the children and/or attributes
// of the current node.
public override void RemoveAll() {
//remove all the children
base.RemoveAll();
//remove all the attributes
RemoveAllAttributes();
}
internal void RemoveAllChildren() {
base.RemoveAll();
}
public override IXmlSchemaInfo SchemaInfo {
get {
return name;
}
}
// Gets or sets the markup representing just
// the children of this node.
public override string InnerXml {
get {
return base.InnerXml;
}
set {
RemoveAllChildren();
XmlLoader loader = new XmlLoader();
loader.LoadInnerXmlElement( this, value );
}
}
// Gets or sets the concatenated values of the
// node and all its children.
public override string InnerText {
get {
return base.InnerText;
}
set {
XmlLinkedNode linkedNode = LastNode;
if (linkedNode != null && //there is one child
linkedNode.NodeType == XmlNodeType.Text && //which is text node
linkedNode.next == linkedNode ) // and it is the only child
{
//this branch is for perf reason, event fired when TextNode.Value is changed.
linkedNode.Value = value;
}
else {
RemoveAllChildren();
AppendChild( OwnerDocument.CreateTextNode( value ) );
}
}
}
public override XmlNode NextSibling {
get {
if (this.parentNode != null
&& this.parentNode.LastNode != this)
return next;
return null;
}
}
internal override void SetParent(XmlNode node) {
this.parentNode = node;
}
internal override XPathNodeType XPNodeType { get { return XPathNodeType.Element; } }
internal override string XPLocalName { get { return LocalName; } }
internal override string GetXPAttribute( string localName, string ns ) {
if ( ns == OwnerDocument.strReservedXmlns )
return null;
XmlAttribute attr = GetAttributeNode( localName, ns );
if ( attr != null )
return attr.Value;
return string.Empty;
}
}
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- ReferenceSchema.cs
- RegexCompiler.cs
- FontStretches.cs
- EncodingTable.cs
- InputBuffer.cs
- RemoteWebConfigurationHostStream.cs
- DockAndAnchorLayout.cs
- HttpRawResponse.cs
- Signature.cs
- IndexOutOfRangeException.cs
- WebPartAuthorizationEventArgs.cs
- LinkTarget.cs
- ResourcePool.cs
- DateTime.cs
- PriorityBinding.cs
- AssemblyNameProxy.cs
- OracleBoolean.cs
- HttpCapabilitiesSectionHandler.cs
- TimeManager.cs
- EventSetterHandlerConverter.cs
- ExpressionNormalizer.cs
- HwndSourceKeyboardInputSite.cs
- TagPrefixInfo.cs
- JournalNavigationScope.cs
- WindowsListViewItemCheckBox.cs
- TraceListener.cs
- invalidudtexception.cs
- ManifestSignatureInformation.cs
- CriticalFinalizerObject.cs
- KnownAssembliesSet.cs
- DataGridParentRows.cs
- StickyNoteAnnotations.cs
- FixedSOMPage.cs
- KeyTimeConverter.cs
- SystemIPAddressInformation.cs
- ReferenceSchema.cs
- LayoutTableCell.cs
- KeyTimeConverter.cs
- DataGridDetailsPresenterAutomationPeer.cs
- FixedNode.cs
- FileRegion.cs
- AddInProcess.cs
- InternalConfigSettingsFactory.cs
- TextEditorContextMenu.cs
- FrameworkElement.cs
- DoubleAnimationBase.cs
- TableItemPattern.cs
- SecurityKeyType.cs
- OdbcStatementHandle.cs
- WebPartConnection.cs
- LocalizationComments.cs
- WsatTransactionFormatter.cs
- ProfessionalColorTable.cs
- DbReferenceCollection.cs
- DataSourceControl.cs
- ProvidersHelper.cs
- DocumentPage.cs
- NegotiateStream.cs
- FloatUtil.cs
- InternalTypeHelper.cs
- StringStorage.cs
- SQLDateTimeStorage.cs
- CorrelationTokenInvalidatedHandler.cs
- MonthCalendarDesigner.cs
- PerformanceCounterManager.cs
- SqlClientPermission.cs
- BamlStream.cs
- FormViewDeletedEventArgs.cs
- TerminatorSinks.cs
- ColumnWidthChangedEvent.cs
- OdbcError.cs
- ClassicBorderDecorator.cs
- OracleConnectionString.cs
- XPathDocument.cs
- SqlDataSourceCache.cs
- Int64.cs
- ToolboxItemFilterAttribute.cs
- SmiEventSink_Default.cs
- HttpException.cs
- SerializationInfoEnumerator.cs
- ObjectFactoryCodeDomTreeGenerator.cs
- AspNetSynchronizationContext.cs
- ListView.cs
- PlatformNotSupportedException.cs
- RayMeshGeometry3DHitTestResult.cs
- Soap.cs
- VarInfo.cs
- AddDataControlFieldDialog.cs
- OuterGlowBitmapEffect.cs
- RequestNavigateEventArgs.cs
- StrokeCollection2.cs
- ByteArrayHelperWithString.cs
- FontWeightConverter.cs
- PointAnimationBase.cs
- StyleConverter.cs
- PageTheme.cs
- X509CertificateTrustedIssuerElement.cs
- WebZone.cs
- Script.cs
- Int32EqualityComparer.cs