Ejemplo n.º 1
0
        /// <summary>
        /// Creates a new XmlReader instance with the specified stream and
        /// XmlReaderSettings object.
        /// </summary>
        /// <param name="input">The stream containing the XML data.</param>
        /// <param name="settings">The XmlReaderSettings object used to configure the new
        /// XmlReader instance. This value can be null.</param>
        /// <returns>An XmlReader object to read the XML data.</returns>
        public static XmlReader Create(Stream input, XmlReaderSettings settings)
        {
            if (input == null)
            {
                throw new ArgumentNullException();
            }
            if (settings == null)
            {
                settings = new XmlReaderSettings();
            }

            XmlReader reader = new XmlReader();

            reader._xmlSpaces      = new Stack();
            reader._xmlLangs       = new Stack();
            reader._xmlNodes       = new Stack();
            reader._attributes     = new ArrayList();
            reader._namespaces     = new Stack();
            reader._value          = String.Empty;
            reader._nodeType       = XmlNodeType.None;
            reader._isEmptyElement = false;
            reader._isDone         = false;

            reader._buffer = new byte[BufferSize];
            reader._offset = 0;
            reader._length = 0;

            reader._stream    = input;
            reader._readState = ReadState.Initial;

            reader._nameTable = (settings.NameTable == null) ? new XmlNameTable() : settings.NameTable;

            reader._xmlNodes.Push(new XmlReader_XmlNode());
            reader._xmlSpaces.Push((int)XmlSpace.None);
            reader._xmlLangs.Push(String.Empty);

            XmlReader_NamespaceEntry nsEntry;

            nsEntry              = new XmlReader_NamespaceEntry();
            nsEntry.Prefix       = String.Empty;
            nsEntry.NamespaceURI = String.Empty;
            reader._namespaces.Push(nsEntry);

            nsEntry              = new XmlReader_NamespaceEntry();
            nsEntry.Prefix       = reader._nameTable.Add(Xml);
            nsEntry.NamespaceURI = reader._nameTable.Add(XmlNamespace);
            reader._namespaces.Push(nsEntry);

            nsEntry              = new XmlReader_NamespaceEntry();
            nsEntry.Prefix       = reader._nameTable.Add(Xmlns);
            nsEntry.NamespaceURI = reader._nameTable.Add(XmlnsNamespace);
            reader._namespaces.Push(nsEntry);

            reader._currentAttribute = -1;

            reader.Initialize(settings.GetSettings());

            return(reader);
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Creates a new XmlReader instance with the specified stream and
        /// XmlReaderSettings object.
        /// </summary>
        /// <param name="input">The stream containing the XML data.</param>
        /// <param name="settings">The XmlReaderSettings object used to configure the new
        /// XmlReader instance. This value can be null.</param>
        /// <returns>An XmlReader object to read the XML data.</returns>
        public static XmlReader Create(Stream input, XmlReaderSettings settings)
        {
            if (input == null) throw new ArgumentNullException();
            if (settings == null) settings = new XmlReaderSettings();

            XmlReader reader = new XmlReader();

            reader._xmlSpaces = new Stack();
            reader._xmlLangs = new Stack();
            reader._xmlNodes = new Stack();
            reader._attributes = new ArrayList();
            reader._namespaces = new Stack();
            reader._value = String.Empty;
            reader._nodeType = XmlNodeType.None;
            reader._isEmptyElement = false;
            reader._isDone = false;

            reader._buffer = new byte[BufferSize];
            reader._offset = 0;
            reader._length = 0;

            reader._stream = input;
            reader._readState = ReadState.Initial;

            reader._nameTable = (settings.NameTable == null) ? new XmlNameTable() : settings.NameTable;

            reader._xmlNodes.Push(new XmlReader_XmlNode());
            reader._xmlSpaces.Push((int)XmlSpace.None);
            reader._xmlLangs.Push(String.Empty);

            XmlReader_NamespaceEntry nsEntry;

            nsEntry = new XmlReader_NamespaceEntry();
            nsEntry.Prefix = String.Empty;
            nsEntry.NamespaceURI = String.Empty;
            reader._namespaces.Push(nsEntry);

            nsEntry = new XmlReader_NamespaceEntry();
            nsEntry.Prefix = reader._nameTable.Add(Xml);
            nsEntry.NamespaceURI = reader._nameTable.Add(XmlNamespace);
            reader._namespaces.Push(nsEntry);

            nsEntry = new XmlReader_NamespaceEntry();
            nsEntry.Prefix = reader._nameTable.Add(Xmlns);
            nsEntry.NamespaceURI = reader._nameTable.Add(XmlnsNamespace);
            reader._namespaces.Push(nsEntry);

            reader._currentAttribute = -1;

            reader.Initialize(settings.GetSettings());

            return reader;
        }