File: XmlSerializableWriter.cs

package info (click to toggle)
mono 6.8.0.105%2Bdfsg-3.3
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 1,284,512 kB
  • sloc: cs: 11,172,132; xml: 2,850,069; ansic: 671,653; cpp: 122,091; perl: 59,366; javascript: 30,841; asm: 22,168; makefile: 20,093; sh: 15,020; python: 4,827; pascal: 925; sql: 859; sed: 16; php: 1
file content (100 lines) | stat: -rw-r--r-- 5,332 bytes parent folder | download | duplicates (7)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
//-----------------------------------------------------------------------------
// Copyright (c) Microsoft Corporation.  All rights reserved.
//-----------------------------------------------------------------------------
namespace System.Runtime.Serialization
{
    using System;
    using System.Xml;

    internal class XmlSerializableWriter : XmlWriter
    {
        XmlWriter xmlWriter;
        int depth = 0;
        object obj;

        internal void BeginWrite(XmlWriter xmlWriter, object obj)
        {
            depth = 0;
            this.xmlWriter = xmlWriter;
            this.obj = obj;
        }

        internal void EndWrite()
        {
            if (depth != 0)
                throw System.Runtime.Serialization.DiagnosticUtility.ExceptionUtility.ThrowHelperError(XmlObjectSerializer.CreateSerializationException(SR.GetString(SR.IXmlSerializableMissingEndElements, (obj == null ? string.Empty : DataContract.GetClrTypeFullName(obj.GetType())))));
            this.obj = null;
        }

        public override void WriteStartDocument()
        {
            if (WriteState == WriteState.Start)
                xmlWriter.WriteStartDocument();
        }
        public override void WriteEndDocument() { xmlWriter.WriteEndDocument(); }
        public override void WriteStartDocument(bool standalone)
        {
            if (WriteState == WriteState.Start)
                xmlWriter.WriteStartDocument(standalone);
        }
        public override void WriteDocType(string name, string pubid, string sysid, string subset)
        {
            // XmlSerializer does not write doc type
        }

        public override void WriteStartElement(string prefix, string localName, string ns)
        {
            xmlWriter.WriteStartElement(prefix, localName, ns);
            depth++;
        }

        public override void WriteEndElement()
        {
            if (depth == 0)
                throw System.Runtime.Serialization.DiagnosticUtility.ExceptionUtility.ThrowHelperError(XmlObjectSerializer.CreateSerializationException(SR.GetString(SR.IXmlSerializableWritePastSubTree, (obj == null ? string.Empty : DataContract.GetClrTypeFullName(obj.GetType())))));
            xmlWriter.WriteEndElement();
            depth--;
        }

        public override void WriteFullEndElement()
        {
            if (depth == 0)
                throw System.Runtime.Serialization.DiagnosticUtility.ExceptionUtility.ThrowHelperError(XmlObjectSerializer.CreateSerializationException(SR.GetString(SR.IXmlSerializableWritePastSubTree, (obj == null ? string.Empty : DataContract.GetClrTypeFullName(obj.GetType())))));
            xmlWriter.WriteFullEndElement();
            depth--;
        }

        public override void Close()
        {
            throw System.Runtime.Serialization.DiagnosticUtility.ExceptionUtility.ThrowHelperError(XmlObjectSerializer.CreateSerializationException(SR.GetString(SR.IXmlSerializableIllegalOperation)));
        }

        public override void WriteStartAttribute(string prefix, string localName, string ns)
        {
            xmlWriter.WriteStartAttribute(prefix, localName, ns);
        }

        public override void WriteEndAttribute() { xmlWriter.WriteEndAttribute(); }
        public override void WriteCData(string text) { xmlWriter.WriteCData(text); }
        public override void WriteComment(string text) { xmlWriter.WriteComment(text); }
        public override void WriteProcessingInstruction(string name, string text) { xmlWriter.WriteProcessingInstruction(name, text); }
        public override void WriteEntityRef(string name) { xmlWriter.WriteEntityRef(name); }
        public override void WriteCharEntity(char ch) { xmlWriter.WriteCharEntity(ch); }
        public override void WriteWhitespace(string ws) { xmlWriter.WriteWhitespace(ws); }
        public override void WriteString(string text) { xmlWriter.WriteString(text); }
        public override void WriteSurrogateCharEntity(char lowChar, char highChar) { xmlWriter.WriteSurrogateCharEntity(lowChar, highChar); }
        public override void WriteChars(Char[] buffer, int index, int count) { xmlWriter.WriteChars(buffer, index, count); }
        public override void WriteRaw(Char[] buffer, int index, int count) { xmlWriter.WriteRaw(buffer, index, count); }
        public override void WriteRaw(String data) { xmlWriter.WriteRaw(data); }
        public override void WriteBase64(byte[] buffer, int index, int count) { xmlWriter.WriteBase64(buffer, index, count); }
        public override void WriteBinHex(byte[] buffer, int index, int count) { xmlWriter.WriteBinHex(buffer, index, count); }
        public override WriteState WriteState { get { return xmlWriter.WriteState; } }
        public override void Flush() { xmlWriter.Flush(); }
        public override void WriteName(string name) { xmlWriter.WriteName(name); }
        public override void WriteQualifiedName(string localName, string ns) { xmlWriter.WriteQualifiedName(localName, ns); }
        public override string LookupPrefix(string ns) { return xmlWriter.LookupPrefix(ns); }
        public override XmlSpace XmlSpace { get { return xmlWriter.XmlSpace; } }
        public override string XmlLang { get { return xmlWriter.XmlLang; } }
        public override void WriteNmToken(string name) { xmlWriter.WriteNmToken(name); }
    }
}