XPathDocument.cs 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. //
  2. // System.Xml.XPath.XPathDocument
  3. //
  4. // Authors:
  5. // Tim Coleman ([email protected])
  6. // Atsushi Enomoto ([email protected])
  7. //
  8. // (C) Copyright 2002 Tim Coleman
  9. // (C) 2003 Atsushi Enomoto
  10. //
  11. using System;
  12. using System.Collections;
  13. using System.IO;
  14. using System.Xml;
  15. using System.Xml.Schema;
  16. using Mono.Xml.XPath;
  17. namespace System.Xml.XPath
  18. {
  19. public class XPathDocument : IXPathNavigable
  20. {
  21. DTMXPathDocument document;
  22. #region Constructors
  23. public XPathDocument (Stream stream)
  24. {
  25. XmlValidatingReader vr = new XmlValidatingReader (new XmlTextReader (stream));
  26. vr.ValidationType = ValidationType.None;
  27. Initialize (vr, XmlSpace.None);
  28. }
  29. public XPathDocument (string uri)
  30. : this (uri, XmlSpace.None)
  31. {
  32. }
  33. public XPathDocument (TextReader reader)
  34. {
  35. XmlValidatingReader vr = new XmlValidatingReader (new XmlTextReader (reader));
  36. vr.ValidationType = ValidationType.None;
  37. Initialize (vr, XmlSpace.None);
  38. }
  39. public XPathDocument (XmlReader reader)
  40. : this (reader, XmlSpace.None)
  41. {
  42. }
  43. public XPathDocument (string uri, XmlSpace space)
  44. {
  45. XmlValidatingReader vr = new XmlValidatingReader (new XmlTextReader (uri));
  46. vr.ValidationType = ValidationType.None;
  47. Initialize (vr, space);
  48. }
  49. public XPathDocument (XmlReader reader, XmlSpace space)
  50. {
  51. Initialize (reader, space);
  52. }
  53. private void Initialize (XmlReader reader, XmlSpace space)
  54. {
  55. document = new DTMXPathDocumentBuilder (reader, space).CreateDocument ();
  56. }
  57. #endregion
  58. #region Methods
  59. public XPathNavigator CreateNavigator ()
  60. {
  61. return document.CreateNavigator ();
  62. }
  63. #endregion
  64. }
  65. }