2 // System.Data.SqlTypes.SqlXml
5 // Umadevi S (sumadevi@novell.com)
7 // Copyright (C) 2004 Novell, Inc (http://www.novell.com)
9 // Permission is hereby granted, free of charge, to any person obtaining
10 // a copy of this software and associated documentation files (the
11 // "Software"), to deal in the Software without restriction, including
12 // without limitation the rights to use, copy, modify, merge, publish,
13 // distribute, sublicense, and/or sell copies of the Software, and to
14 // permit persons to whom the Software is furnished to do so, subject to
15 // the following conditions:
17 // The above copyright notice and this permission notice shall be
18 // included in all copies or substantial portions of the Software.
20 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
21 // EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
22 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
23 // NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
24 // LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
25 // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
26 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
32 using System.Xml.Schema;
33 using System.Globalization;
34 using System.Threading;
35 using System.Xml.Serialization;
40 namespace System.Data.SqlTypes
42 [SerializableAttribute]
43 [XmlSchemaProvider ("GetXsdType")]
44 public sealed class SqlXml : INullable, IXmlSerializable
55 public SqlXml (Stream value)
61 int len = (int) value.Length;
63 StringBuilder sb = new StringBuilder (len);
66 // Now read value into a byte buffer.
71 bytes = new byte [bufSize];
74 // Read may return anything from 0 to numBytesToRead.
75 int n = value.Read(bytes, 0, bufSize);
76 sb.Append (Encoding.Unicode.GetString (bytes, 0, n));
78 // The end of the file is reached.
83 xmlValue = sb.ToString ();
88 public SqlXml (XmlReader value)
94 value.MoveToContent ();
95 xmlValue = value.ReadOuterXml();
101 get { return !notNull; }
104 public static SqlXml Null {
106 return new SqlXml ();
110 public string Value {
116 public static XmlQualifiedName GetXsdType (XmlSchemaSet schemaSet)
118 XmlQualifiedName qualifiedName = new XmlQualifiedName ("anyType", "http://www.w3.org/2001/XMLSchema");
119 return qualifiedName;
122 public XmlReader CreateReader ()
125 return XmlTextReader.Create (new StringReader (xmlValue));
131 XmlSchema IXmlSerializable.GetSchema ()
133 throw new NotImplementedException ();
137 void IXmlSerializable.ReadXml (XmlReader r)
139 throw new NotImplementedException ();
143 void IXmlSerializable.WriteXml (XmlWriter writer)
145 throw new NotImplementedException ();