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
- ElementUtil.cs
- HtmlLink.cs
- Claim.cs
- DataRelationCollection.cs
- DrawingContextDrawingContextWalker.cs
- XmlSerializerAssemblyAttribute.cs
- Base64Decoder.cs
- SmtpFailedRecipientsException.cs
- MissingFieldException.cs
- ParameterElement.cs
- ListViewCommandEventArgs.cs
- DataRelationPropertyDescriptor.cs
- BlobPersonalizationState.cs
- PageEventArgs.cs
- ServiceElement.cs
- XmlSignificantWhitespace.cs
- UiaCoreApi.cs
- ListSourceHelper.cs
- SmtpCommands.cs
- SerializationInfo.cs
- TimerElapsedEvenArgs.cs
- FileDetails.cs
- IgnoreFlushAndCloseStream.cs
- ReflectionServiceProvider.cs
- CallSite.cs
- AccessDataSourceWizardForm.cs
- FormsAuthenticationEventArgs.cs
- XmlSchemaSimpleTypeList.cs
- CheckBox.cs
- TransactionFlowProperty.cs
- XmlQueryType.cs
- ClockGroup.cs
- AssertFilter.cs
- XmlBinaryReader.cs
- DictionaryChange.cs
- IntMinMaxAggregationOperator.cs
- NetworkCredential.cs
- BufferedStream2.cs
- Registry.cs
- SqlNodeTypeOperators.cs
- COMException.cs
- OutOfMemoryException.cs
- SiteMapHierarchicalDataSourceView.cs
- NavigationProperty.cs
- RelatedImageListAttribute.cs
- XhtmlBasicValidationSummaryAdapter.cs
- CommonXSendMessage.cs
- TempEnvironment.cs
- ToolStripCodeDomSerializer.cs
- MethodExpr.cs
- SafeNativeMethods.cs
- HttpGetServerProtocol.cs
- Substitution.cs
- XmlnsCache.cs
- MonthChangedEventArgs.cs
- ImageField.cs
- ZoneMembershipCondition.cs
- ProcessThread.cs
- VirtualPath.cs
- ReliabilityContractAttribute.cs
- bidPrivateBase.cs
- TextBlock.cs
- UnsafePeerToPeerMethods.cs
- PageRanges.cs
- AsyncResult.cs
- XmlSchemaGroup.cs
- SafeNativeMethodsCLR.cs
- TableLayoutColumnStyleCollection.cs
- DataMemberConverter.cs
- Header.cs
- ExecutionEngineException.cs
- PnrpPermission.cs
- HwndSourceKeyboardInputSite.cs
- DescriptionAttribute.cs
- ZoneButton.cs
- HorizontalAlignConverter.cs
- Highlights.cs
- InlinedAggregationOperatorEnumerator.cs
- LicFileLicenseProvider.cs
- DataStreamFromComStream.cs
- System.Data_BID.cs
- MissingMemberException.cs
- Activator.cs
- ResolveCriteria.cs
- ToolStripContainerDesigner.cs
- TextRange.cs
- AccessorTable.cs
- ProviderCollection.cs
- Action.cs
- PageSettings.cs
- WebServiceReceive.cs
- ColorConvertedBitmap.cs
- ToolBarButtonClickEvent.cs
- SessionStateItemCollection.cs
- Ray3DHitTestResult.cs
- CharAnimationBase.cs
- BuildProvider.cs
- TextEffectCollection.cs
- StringWriter.cs
- HyperLinkStyle.cs