public void Parse() { XmlReaderSettings settings = new XmlReaderSettings(); settings.IgnoreWhitespace = true; settings.IgnoreComments = true; XmlReader reader = XmlReader.Create(stream, settings); try { while (true) { if (reader.IsStartElement()) { if (AtomPubConstants.NamespaceAtom == reader.NamespaceURI) { if (AtomPubConstants.TagFeed == reader.LocalName) { parseResult = ParseFeed(reader); break; } else if (AtomPubConstants.TagEntry == reader.LocalName) { parseResult = ParseEntry(reader); break; } } else if (AtomPubConstants.NamespaceCMIS == reader.NamespaceURI) { if (AtomPubConstants.TagAllowableActions == reader.LocalName) { parseResult = ParseAllowableActions(reader); break; } else if (AtomPubConstants.TagACL == reader.LocalName) { parseResult = ParseACL(reader); break; } } else if (AtomPubConstants.NamespaceAPP == reader.NamespaceURI) { if (AtomPubConstants.TagService == reader.LocalName) { parseResult = ParseServiceDoc(reader); break; } } } if (!reader.Read()) { break; } } } finally { try { reader.Close(); } catch (Exception) { } try { stream.Close(); } catch (Exception) { } } }