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
- WindowsUpDown.cs
- KeySplineConverter.cs
- ElementHost.cs
- _LocalDataStoreMgr.cs
- DataGridViewComponentPropertyGridSite.cs
- ManagementBaseObject.cs
- PopOutPanel.cs
- TextServicesContext.cs
- SqlClientMetaDataCollectionNames.cs
- LocalizabilityAttribute.cs
- ObjectPersistData.cs
- MultipartIdentifier.cs
- NullableIntAverageAggregationOperator.cs
- LogPolicy.cs
- Trace.cs
- XamlHostingSection.cs
- PropertyMappingExceptionEventArgs.cs
- AutomationPatternInfo.cs
- TextEditorTyping.cs
- Function.cs
- Random.cs
- IdentitySection.cs
- RSAOAEPKeyExchangeFormatter.cs
- TextDocumentView.cs
- Utils.cs
- StatementContext.cs
- CodeAccessPermission.cs
- SmiGettersStream.cs
- Condition.cs
- TextTreeUndo.cs
- Link.cs
- Model3DCollection.cs
- TagPrefixAttribute.cs
- ReadWriteControlDesigner.cs
- OneToOneMappingSerializer.cs
- InkPresenter.cs
- LinkedResourceCollection.cs
- Win32MouseDevice.cs
- TextSelection.cs
- CodeArrayCreateExpression.cs
- namescope.cs
- FilteredDataSetHelper.cs
- OracleParameter.cs
- FeatureSupport.cs
- ListControlConvertEventArgs.cs
- AsymmetricSignatureDeformatter.cs
- EntityParameter.cs
- DataServiceException.cs
- LinkArea.cs
- MailDefinition.cs
- BitStack.cs
- ClientFormsAuthenticationCredentials.cs
- MarshalByRefObject.cs
- TraceInternal.cs
- DataGridViewCellCancelEventArgs.cs
- VersionPair.cs
- _AuthenticationState.cs
- ChainOfResponsibility.cs
- AssemblyHash.cs
- EventSetter.cs
- StateBag.cs
- InfoCardAsymmetricCrypto.cs
- DataGridViewColumnEventArgs.cs
- _NativeSSPI.cs
- BaseParagraph.cs
- Brush.cs
- OracleTimeSpan.cs
- MimeImporter.cs
- DrawListViewItemEventArgs.cs
- ImageMapEventArgs.cs
- EntityDataSourceConfigureObjectContext.cs
- ModelPerspective.cs
- ContextBase.cs
- _ListenerRequestStream.cs
- CurrencyManager.cs
- DropSource.cs
- EventLogger.cs
- ObjectQueryProvider.cs
- TextPattern.cs
- Property.cs
- QueryGenerator.cs
- Geometry3D.cs
- ObjectSelectorEditor.cs
- ActiveXContainer.cs
- PageRanges.cs
- Drawing.cs
- RowType.cs
- DataBoundControlAdapter.cs
- RichTextBoxAutomationPeer.cs
- BoundField.cs
- SQLMoneyStorage.cs
- HtmlProps.cs
- GetPageNumberCompletedEventArgs.cs
- LineSegment.cs
- UrlAuthFailureHandler.cs
- ReadingWritingEntityEventArgs.cs
- ContentHostHelper.cs
- ParameterCollection.cs
- ReadonlyMessageFilter.cs
- Expander.cs