2010-04-07 Jb Evain <jbevain@novell.com>
[mcs.git] / class / System.XML / System.Xml / XmlProcessingInstruction.cs
blob149f3e091df835a695f2b078112592d6a3951bf0
1 //
2 // System.Xml.XmlProcessingInstruction
3 //
4 // Author:
5 // Kral Ferch <kral_ferch@hotmail.com>
6 //
7 // (C) 2002 Kral Ferch
8 //
11 // Permission is hereby granted, free of charge, to any person obtaining
12 // a copy of this software and associated documentation files (the
13 // "Software"), to deal in the Software without restriction, including
14 // without limitation the rights to use, copy, modify, merge, publish,
15 // distribute, sublicense, and/or sell copies of the Software, and to
16 // permit persons to whom the Software is furnished to do so, subject to
17 // the following conditions:
18 //
19 // The above copyright notice and this permission notice shall be
20 // included in all copies or substantial portions of the Software.
21 //
22 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
23 // EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
24 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
25 // NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
26 // LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
27 // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
28 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
31 using System;
32 using System.Xml.XPath;
34 namespace System.Xml
36 public class XmlProcessingInstruction : XmlLinkedNode
38 string target;
39 string data;
41 #region Constructors
43 protected internal XmlProcessingInstruction (string target, string data, XmlDocument doc) : base(doc)
45 XmlConvert.VerifyName (target);
46 if (data == null)
47 data = String.Empty;
49 this.target = target;
50 this.data = data;
53 #endregion
55 #region Properties
57 public string Data
59 get { return data; }
61 set { data = value; }
64 public override string InnerText
66 get { return Data; }
67 set { data = value; }
70 public override string LocalName
72 get { return target; }
75 public override string Name
77 get { return target; }
80 public override XmlNodeType NodeType
82 get { return XmlNodeType.ProcessingInstruction; }
85 internal override XPathNodeType XPathNodeType {
86 get {
87 return XPathNodeType.ProcessingInstruction;
91 public string Target
93 get { return target; }
96 public override string Value
98 get { return data; }
99 set {
100 if (this.IsReadOnly)
101 throw new ArgumentException ("This node is read-only.");
102 else
103 data = value;
107 #endregion
109 #region Methods
111 public override XmlNode CloneNode (bool deep)
113 XmlNode n = new XmlProcessingInstruction (target, data, OwnerDocument);
114 return n;
117 public override void WriteContentTo (XmlWriter w) { }
119 public override void WriteTo (XmlWriter w)
121 w.WriteProcessingInstruction (target, data);
124 #endregion