8 public abstract class XmlDictionaryReader : XmlReader
10 protected XmlDictionaryReader ()
14 public virtual bool CanCanonicalize {
18 public virtual bool CanGetContext {
23 public virtual void EndCanonicalization ()
25 throw new NotSupportedException ();
28 public virtual string GetAttribute (
29 XmlDictionaryString localName,
30 XmlDictionaryString namespaceUri)
32 if (localName == null)
33 throw new ArgumentNullException ("localName");
34 if (namespaceUri == null)
35 throw new ArgumentNullException ("namespaceUri");
36 return GetAttribute (localName.Value, namespaceUri.Value);
40 public XmlParserContext GetContext ()
42 throw new NotSupportedException ();
45 public virtual int IndexOfLocalName (
46 string [] localNames, string namespaceUri)
48 if (localNames == null)
49 throw new ArgumentNullException ("localNames");
50 if (namespaceUri == null)
51 throw new ArgumentNullException ("namespaceUri");
52 if (NamespaceURI != namespaceUri)
54 for (int i = 0; i < localNames.Length; i++)
55 if (localNames [i] == LocalName)
60 public virtual int IndexOfLocalName (
61 XmlDictionaryString [] localNames,
62 XmlDictionaryString namespaceUri)
64 if (localNames == null)
65 throw new ArgumentNullException ("localNames");
66 if (namespaceUri == null)
67 throw new ArgumentNullException ("namespaceUri");
68 if (NamespaceURI != namespaceUri.Value)
70 XmlDictionaryString localName;
71 if (!TryGetLocalNameAsDictionaryString (out localName))
73 IXmlDictionary dict = localName.Dictionary;
74 XmlDictionaryString iter;
75 for (int i = 0; i < localNames.Length; i++)
76 if (dict.TryLookup (localNames [i], out iter) && object.ReferenceEquals (iter, localName))
81 public virtual bool IsLocalName (string localName)
83 return LocalName == localName;
86 public virtual bool IsLocalName (XmlDictionaryString localName)
88 if (localName == null)
89 throw new ArgumentNullException ("localName");
90 XmlDictionaryString name;
91 return TryGetLocalNameAsDictionaryString (out name) && object.ReferenceEquals (name, localName);
94 public virtual bool IsNamespaceUri (string namespaceUri)
96 return NamespaceURI == namespaceUri;
99 public virtual bool IsNamespaceUri (XmlDictionaryString namespaceUri)
101 if (namespaceUri == null)
102 throw new ArgumentNullException ("namespaceUri");
103 XmlDictionaryString name;
104 return TryGetNamespaceUriAsDictionaryString (out name) && object.ReferenceEquals (name, namespaceUri);
108 public bool IsStartArray (out Type type)
110 throw new NotImplementedException ();
113 public virtual bool IsStartElement (
114 XmlDictionaryString localName,
115 XmlDictionaryString namespaceUri)
117 if (localName == null)
118 throw new ArgumentNullException ("localName");
119 if (namespaceUri == null)
120 throw new ArgumentNullException ("namespaceUri");
121 return IsStartElement (localName.Value, namespaceUri.Value);
125 public virtual void MoveToStartElement ()
127 throw new NotImplementedException ();
131 public virtual void MoveToStartElement (string name)
133 throw new NotImplementedException ();
137 public virtual void MoveToStartElement (
138 string localName, string namespaceUri)
140 throw new NotImplementedException ();
144 public virtual void MoveToStartElement (
145 XmlDictionaryString localName,
146 XmlDictionaryString namespaceUri)
148 throw new NotImplementedException ();
152 public virtual void StartCanonicalization (
153 XmlCanonicalWriter writer)
155 throw new NotSupportedException ();
159 public virtual bool TryGetArrayLength (out int count)
161 throw new NotImplementedException ();
165 public virtual bool TryGetBase64ContentLength (out int count)
167 throw new NotImplementedException ();
171 public virtual bool TryGetLocalNameAsDictionaryString (
172 out XmlDictionaryString localName)
174 throw new NotImplementedException ();
178 public virtual bool TryGetNamespaceUriAsDictionaryString (
179 out XmlDictionaryString localName)
181 throw new NotImplementedException ();
184 // FIXME: add Read*Array() overloads
187 #region Factory Methods
189 public static XmlDictionaryReader CreateBinaryReader (
192 return CreateBinaryReader (buffer, 0, buffer.Length);
195 public static XmlDictionaryReader CreateBinaryReader (
196 byte [] buffer, int offset, int count)
198 return CreateBinaryReader (buffer, offset, count, new XmlDictionary ());
201 public static XmlDictionaryReader CreateBinaryReader (
202 byte [] buffer, int offset, int count,
203 IXmlDictionary dictionary)
205 return CreateBinaryReader (buffer, offset, count,
206 dictionary, XmlDictionaryReaderQuotas .Default,
207 new XmlBinaryReaderSession (), null, null);
210 public static XmlDictionaryReader CreateBinaryReader (
211 byte [] buffer, int offset, int count,
212 IXmlDictionary dictionary,
213 XmlDictionaryReaderQuotas quotas,
214 XmlBinaryReaderSession session,
215 OnXmlDictionaryReaderClose onClose,
216 XmlParserContext context)
218 return CreateBinaryReader (new MemoryStream (
219 buffer, offset, count), dictionary,
220 quotas, session, onClose, context);
223 public static XmlDictionaryReader CreateBinaryReader (
226 return CreateBinaryReader (stream, new XmlDictionary ());
229 public static XmlDictionaryReader CreateBinaryReader (
230 Stream stream, IXmlDictionary dictionary)
232 return CreateBinaryReader (stream, dictionary,
233 XmlDictionaryReaderQuotas .Default,
234 new XmlBinaryReaderSession (), null, null);
238 public static XmlDictionaryReader CreateBinaryReader (
239 Stream stream, IXmlDictionary dictionary,
240 XmlDictionaryReaderQuotas quotas,
241 XmlBinaryReaderSession session,
242 OnXmlDictionaryReaderClose onClose,
243 XmlParserContext context)
245 throw new NotImplementedException ();
249 public XmlDictionaryReader CreateDictionaryReader (
252 throw new NotImplementedException ();
256 public XmlDictionaryReader CreateDictionaryReader (
257 XmlReader reader, bool isSoapCompliant)
259 throw new NotImplementedException ();
262 public XmlDictionaryReader CreateUTF8Reader (byte [] buffer)
264 return CreateUTF8Reader (buffer, 0, buffer.Length);
267 public static XmlDictionaryReader CreateUTF8Reader (
268 byte [] buffer, int offset, int count)
270 return CreateUTF8Reader (buffer, offset, count,
271 XmlDictionaryReaderQuotas.Default,
276 public static XmlDictionaryReader CreateUTF8Reader (
277 byte [] buffer, int offset, int count,
278 XmlDictionaryReaderQuotas quotas,
279 OnXmlDictionaryReaderClose onClose,
280 XmlParserContext context)
282 throw new NotImplementedException ();
285 // FIXME: several factory methods here.