XmlDictionaryReader.cs 7.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290
  1. #if NET_2_0
  2. using System;
  3. using System.IO;
  4. using System.Xml;
  5. namespace System.Xml
  6. {
  7. public abstract class XmlDictionaryReader : XmlReader
  8. {
  9. protected XmlDictionaryReader ()
  10. {
  11. }
  12. public virtual bool CanCanonicalize {
  13. get { return false; }
  14. }
  15. public virtual bool CanGetContext {
  16. get { return false; }
  17. }
  18. [MonoTODO]
  19. public virtual void EndCanonicalization ()
  20. {
  21. throw new NotSupportedException ();
  22. }
  23. public virtual string GetAttribute (
  24. XmlDictionaryString localName,
  25. XmlDictionaryString namespaceUri)
  26. {
  27. if (localName == null)
  28. throw new ArgumentNullException ("localName");
  29. if (namespaceUri == null)
  30. throw new ArgumentNullException ("namespaceUri");
  31. return GetAttribute (localName.Value, namespaceUri.Value);
  32. }
  33. [MonoTODO]
  34. public XmlParserContext GetContext ()
  35. {
  36. throw new NotSupportedException ();
  37. }
  38. public virtual int IndexOfLocalName (
  39. string [] localNames, string namespaceUri)
  40. {
  41. if (localNames == null)
  42. throw new ArgumentNullException ("localNames");
  43. if (namespaceUri == null)
  44. throw new ArgumentNullException ("namespaceUri");
  45. if (NamespaceURI != namespaceUri)
  46. return -1;
  47. for (int i = 0; i < localNames.Length; i++)
  48. if (localNames [i] == LocalName)
  49. return i;
  50. return -1;
  51. }
  52. public virtual int IndexOfLocalName (
  53. XmlDictionaryString [] localNames,
  54. XmlDictionaryString namespaceUri)
  55. {
  56. if (localNames == null)
  57. throw new ArgumentNullException ("localNames");
  58. if (namespaceUri == null)
  59. throw new ArgumentNullException ("namespaceUri");
  60. if (NamespaceURI != namespaceUri.Value)
  61. return -1;
  62. XmlDictionaryString localName;
  63. if (!TryGetLocalNameAsDictionaryString (out localName))
  64. return -1;
  65. IXmlDictionary dict = localName.Dictionary;
  66. XmlDictionaryString iter;
  67. for (int i = 0; i < localNames.Length; i++)
  68. if (dict.TryLookup (localNames [i], out iter) && object.ReferenceEquals (iter, localName))
  69. return i;
  70. return -1;
  71. }
  72. public virtual bool IsLocalName (string localName)
  73. {
  74. return LocalName == localName;
  75. }
  76. public virtual bool IsLocalName (XmlDictionaryString localName)
  77. {
  78. if (localName == null)
  79. throw new ArgumentNullException ("localName");
  80. XmlDictionaryString name;
  81. return TryGetLocalNameAsDictionaryString (out name) && object.ReferenceEquals (name, localName);
  82. }
  83. public virtual bool IsNamespaceUri (string namespaceUri)
  84. {
  85. return NamespaceURI == namespaceUri;
  86. }
  87. public virtual bool IsNamespaceUri (XmlDictionaryString namespaceUri)
  88. {
  89. if (namespaceUri == null)
  90. throw new ArgumentNullException ("namespaceUri");
  91. XmlDictionaryString name;
  92. return TryGetNamespaceUriAsDictionaryString (out name) && object.ReferenceEquals (name, namespaceUri);
  93. }
  94. [MonoTODO]
  95. public bool IsStartArray (out Type type)
  96. {
  97. throw new NotImplementedException ();
  98. }
  99. public virtual bool IsStartElement (
  100. XmlDictionaryString localName,
  101. XmlDictionaryString namespaceUri)
  102. {
  103. if (localName == null)
  104. throw new ArgumentNullException ("localName");
  105. if (namespaceUri == null)
  106. throw new ArgumentNullException ("namespaceUri");
  107. return IsStartElement (localName.Value, namespaceUri.Value);
  108. }
  109. [MonoTODO]
  110. public virtual void MoveToStartElement ()
  111. {
  112. throw new NotImplementedException ();
  113. }
  114. [MonoTODO]
  115. public virtual void MoveToStartElement (string name)
  116. {
  117. throw new NotImplementedException ();
  118. }
  119. [MonoTODO]
  120. public virtual void MoveToStartElement (
  121. string localName, string namespaceUri)
  122. {
  123. throw new NotImplementedException ();
  124. }
  125. [MonoTODO]
  126. public virtual void MoveToStartElement (
  127. XmlDictionaryString localName,
  128. XmlDictionaryString namespaceUri)
  129. {
  130. throw new NotImplementedException ();
  131. }
  132. [MonoTODO]
  133. public virtual void StartCanonicalization (
  134. XmlCanonicalWriter writer)
  135. {
  136. throw new NotSupportedException ();
  137. }
  138. [MonoTODO]
  139. public virtual bool TryGetArrayLength (out int count)
  140. {
  141. throw new NotImplementedException ();
  142. }
  143. [MonoTODO]
  144. public virtual bool TryGetBase64ContentLength (out int count)
  145. {
  146. throw new NotImplementedException ();
  147. }
  148. [MonoTODO]
  149. public virtual bool TryGetLocalNameAsDictionaryString (
  150. out XmlDictionaryString localName)
  151. {
  152. throw new NotImplementedException ();
  153. }
  154. [MonoTODO]
  155. public virtual bool TryGetNamespaceUriAsDictionaryString (
  156. out XmlDictionaryString localName)
  157. {
  158. throw new NotImplementedException ();
  159. }
  160. // FIXME: add Read*Array() overloads
  161. #region Factory Methods
  162. public static XmlDictionaryReader CreateBinaryReader (
  163. byte [] buffer)
  164. {
  165. return CreateBinaryReader (buffer, 0, buffer.Length);
  166. }
  167. public static XmlDictionaryReader CreateBinaryReader (
  168. byte [] buffer, int offset, int count)
  169. {
  170. return CreateBinaryReader (buffer, offset, count, new XmlDictionary ());
  171. }
  172. public static XmlDictionaryReader CreateBinaryReader (
  173. byte [] buffer, int offset, int count,
  174. IXmlDictionary dictionary)
  175. {
  176. return CreateBinaryReader (buffer, offset, count,
  177. dictionary, XmlDictionaryReaderQuotas .Default,
  178. new XmlBinaryReaderSession (), null, null);
  179. }
  180. public static XmlDictionaryReader CreateBinaryReader (
  181. byte [] buffer, int offset, int count,
  182. IXmlDictionary dictionary,
  183. XmlDictionaryReaderQuotas quotas,
  184. XmlBinaryReaderSession session,
  185. OnXmlDictionaryReaderClose onClose,
  186. XmlParserContext context)
  187. {
  188. return CreateBinaryReader (new MemoryStream (
  189. buffer, offset, count), dictionary,
  190. quotas, session, onClose, context);
  191. }
  192. public static XmlDictionaryReader CreateBinaryReader (
  193. Stream stream)
  194. {
  195. return CreateBinaryReader (stream, new XmlDictionary ());
  196. }
  197. public static XmlDictionaryReader CreateBinaryReader (
  198. Stream stream, IXmlDictionary dictionary)
  199. {
  200. return CreateBinaryReader (stream, dictionary,
  201. XmlDictionaryReaderQuotas .Default,
  202. new XmlBinaryReaderSession (), null, null);
  203. }
  204. [MonoTODO]
  205. public static XmlDictionaryReader CreateBinaryReader (
  206. Stream stream, IXmlDictionary dictionary,
  207. XmlDictionaryReaderQuotas quotas,
  208. XmlBinaryReaderSession session,
  209. OnXmlDictionaryReaderClose onClose,
  210. XmlParserContext context)
  211. {
  212. throw new NotImplementedException ();
  213. }
  214. [MonoTODO]
  215. public XmlDictionaryReader CreateDictionaryReader (
  216. XmlReader reader)
  217. {
  218. throw new NotImplementedException ();
  219. }
  220. [MonoTODO]
  221. public XmlDictionaryReader CreateDictionaryReader (
  222. XmlReader reader, bool isSoapCompliant)
  223. {
  224. throw new NotImplementedException ();
  225. }
  226. public XmlDictionaryReader CreateUTF8Reader (byte [] buffer)
  227. {
  228. return CreateUTF8Reader (buffer, 0, buffer.Length);
  229. }
  230. public static XmlDictionaryReader CreateUTF8Reader (
  231. byte [] buffer, int offset, int count)
  232. {
  233. return CreateUTF8Reader (buffer, offset, count,
  234. XmlDictionaryReaderQuotas.Default,
  235. null, null);
  236. }
  237. [MonoTODO]
  238. public static XmlDictionaryReader CreateUTF8Reader (
  239. byte [] buffer, int offset, int count,
  240. XmlDictionaryReaderQuotas quotas,
  241. OnXmlDictionaryReaderClose onClose,
  242. XmlParserContext context)
  243. {
  244. throw new NotImplementedException ();
  245. }
  246. // FIXME: several factory methods here.
  247. #endregion
  248. }
  249. }
  250. #endif