1 //------------------------------------------------------------------------------
2 // <copyright file="XmlRawWriterWrapper.cs" company="Microsoft">
3 // Copyright (c) Microsoft Corporation. All rights reserved.
5 // <owner current="true" primary="true">[....]</owner>
6 //------------------------------------------------------------------------------
10 using System.Xml.XPath;
11 using System.Xml.Schema;
13 namespace System.Xml.Xsl.Runtime {
16 /// This internal class implements the XmlRawWriter interface by passing all calls to a wrapped XmlWriter implementation.
18 sealed internal class XmlRawWriterWrapper : XmlRawWriter {
19 private XmlWriter wrapped;
21 public XmlRawWriterWrapper(XmlWriter writer) {
22 this.wrapped = writer;
26 //-----------------------------------------------
27 // XmlWriter interface
28 //-----------------------------------------------
30 public override XmlWriterSettings Settings {
31 get { return this.wrapped.Settings; }
34 public override void WriteDocType(string name, string pubid, string sysid, string subset) {
35 this.wrapped.WriteDocType(name, pubid, sysid, subset);
38 public override void WriteStartElement(string prefix, string localName, string ns) {
39 this.wrapped.WriteStartElement(prefix, localName, ns);
42 public override void WriteStartAttribute(string prefix, string localName, string ns) {
43 this.wrapped.WriteStartAttribute(prefix, localName, ns);
46 public override void WriteEndAttribute() {
47 this.wrapped.WriteEndAttribute();
50 public override void WriteCData(string text) {
51 this.wrapped.WriteCData(text);
54 public override void WriteComment(string text) {
55 this.wrapped.WriteComment(text);
58 public override void WriteProcessingInstruction(string name, string text) {
59 this.wrapped.WriteProcessingInstruction(name, text);
62 public override void WriteWhitespace(string ws) {
63 this.wrapped.WriteWhitespace(ws);
66 public override void WriteString(string text) {
67 this.wrapped.WriteString(text);
70 public override void WriteChars(char[] buffer, int index, int count) {
71 this.wrapped.WriteChars(buffer, index, count);
74 public override void WriteRaw(char[] buffer, int index, int count) {
75 this.wrapped.WriteRaw(buffer, index, count);
78 public override void WriteRaw(string data) {
79 this.wrapped.WriteRaw(data);
82 public override void WriteEntityRef(string name) {
83 this.wrapped.WriteEntityRef(name);
86 public override void WriteCharEntity(char ch) {
87 this.wrapped.WriteCharEntity(ch);
90 public override void WriteSurrogateCharEntity(char lowChar, char highChar) {
91 this.wrapped.WriteSurrogateCharEntity(lowChar, highChar);
94 public override void Close() {
98 public override void Flush() {
102 public override void WriteValue(object value) {
103 this.wrapped.WriteValue(value);
106 public override void WriteValue(string value) {
107 this.wrapped.WriteValue(value);
110 public override void WriteValue(bool value) {
111 this.wrapped.WriteValue(value);
114 public override void WriteValue(DateTime value) {
115 this.wrapped.WriteValue(value);
118 public override void WriteValue(float value) {
119 this.wrapped.WriteValue(value);
122 public override void WriteValue(decimal value) {
123 this.wrapped.WriteValue(value);
126 public override void WriteValue(double value) {
127 this.wrapped.WriteValue(value);
130 public override void WriteValue(int value) {
131 this.wrapped.WriteValue(value);
134 public override void WriteValue(long value) {
135 this.wrapped.WriteValue(value);
138 protected override void Dispose(bool disposing) {
141 ((IDisposable)this.wrapped).Dispose();
145 base.Dispose(disposing);
150 //-----------------------------------------------
151 // XmlRawWriter interface
152 //-----------------------------------------------
157 internal override void WriteXmlDeclaration(XmlStandalone standalone) {
163 internal override void WriteXmlDeclaration(string xmldecl) {
169 internal override void StartElementContent() {
173 /// Forward to WriteEndElement().
175 internal override void WriteEndElement(string prefix, string localName, string ns) {
176 this.wrapped.WriteEndElement();
180 /// Forward to WriteFullEndElement().
182 internal override void WriteFullEndElement(string prefix, string localName, string ns) {
183 this.wrapped.WriteFullEndElement();
187 /// Forward to WriteAttribute();
189 internal override void WriteNamespaceDeclaration(string prefix, string ns) {
190 if (prefix.Length == 0)
191 this.wrapped.WriteAttributeString(string.Empty, "xmlns", XmlReservedNs.NsXmlNs, ns);
193 this.wrapped.WriteAttributeString("xmlns", prefix, XmlReservedNs.NsXmlNs, ns);