e79aa3c0ed
Former-commit-id: a2155e9bd80020e49e72e86c44da02a8ac0e57a4
98 lines
3.4 KiB
C#
98 lines
3.4 KiB
C#
//------------------------------------------------------------------------------
|
|
// <copyright file="XmlProcessingInstruction.cs" company="Microsoft">
|
|
// Copyright (c) Microsoft Corporation. All rights reserved.
|
|
// </copyright>
|
|
// <owner current="true" primary="true">[....]</owner>
|
|
//------------------------------------------------------------------------------
|
|
|
|
namespace System.Xml {
|
|
using System;
|
|
using System.IO;
|
|
using System.Diagnostics;
|
|
using System.Text;
|
|
using System.Xml.XPath;
|
|
|
|
// Represents a processing instruction, which XML defines to keep
|
|
// processor-specific information in the text of the document.
|
|
public class XmlProcessingInstruction : XmlLinkedNode {
|
|
string target;
|
|
string data;
|
|
|
|
protected internal XmlProcessingInstruction( string target, string data, XmlDocument doc ) : base( doc ) {
|
|
this.target = target;
|
|
this.data = data;
|
|
}
|
|
|
|
// Gets the name of the node.
|
|
public override String Name {
|
|
get {
|
|
if (target != null)
|
|
return target;
|
|
return String.Empty;
|
|
}
|
|
}
|
|
|
|
// Gets the name of the current node without the namespace prefix.
|
|
public override string LocalName {
|
|
get { return Name;}
|
|
}
|
|
|
|
// Gets or sets the value of the node.
|
|
public override String Value {
|
|
get { return data;}
|
|
set { Data = value; } //use Data instead of data so that event will be fired
|
|
}
|
|
|
|
// Gets the target of the processing instruction.
|
|
public String Target {
|
|
get { return target;}
|
|
}
|
|
|
|
// Gets or sets the content of processing instruction,
|
|
// excluding the target.
|
|
public String Data {
|
|
get { return data;}
|
|
set {
|
|
XmlNode parent = ParentNode;
|
|
XmlNodeChangedEventArgs args = GetEventArgs( this, parent, parent, data, value, XmlNodeChangedAction.Change );
|
|
if (args != null)
|
|
BeforeEvent( args );
|
|
data = value;
|
|
if (args != null)
|
|
AfterEvent( args );
|
|
}
|
|
}
|
|
|
|
// Gets or sets the concatenated values of the node and
|
|
// all its children.
|
|
public override string InnerText {
|
|
get { return data;}
|
|
set { Data = value; } //use Data instead of data so that change event will be fired
|
|
}
|
|
|
|
// Gets the type of the current node.
|
|
public override XmlNodeType NodeType {
|
|
get { return XmlNodeType.ProcessingInstruction;}
|
|
}
|
|
|
|
// Creates a duplicate of this node.
|
|
public override XmlNode CloneNode(bool deep) {
|
|
Debug.Assert( OwnerDocument != null );
|
|
return OwnerDocument.CreateProcessingInstruction( target, data );
|
|
}
|
|
|
|
// Saves the node to the specified XmlWriter.
|
|
public override void WriteTo(XmlWriter w) {
|
|
w.WriteProcessingInstruction(target, data);
|
|
}
|
|
|
|
// Saves all the children of the node to the specified XmlWriter.
|
|
public override void WriteContentTo(XmlWriter w) {
|
|
// Intentionally do nothing
|
|
}
|
|
|
|
internal override string XPLocalName { get { return Name; } }
|
|
internal override XPathNodeType XPNodeType { get { return XPathNodeType.ProcessingInstruction; } }
|
|
}
|
|
}
|