public AtomExtensionEventArgs(AtomBaseElement readingElement, XmlReader reader)
        {
            if (reader.NodeType != XmlNodeType.Attribute && reader.NodeType != XmlNodeType.Element) {
            throw new InvalidOperationException("The reader must be positioned on start element node or attribute node when initializing AtomExtensionEventArgs.");
              }

              _readingElement = readingElement;

              if (_doc == null) {
            _doc = new XmlDocument();
              }
              _extensionNode = _doc.ReadNode(reader);
        }
Example #2
0
        protected virtual Uri ReadID(XmlReader reader, AtomBaseElement readingElement)
        {
            if (reader.NodeType != XmlNodeType.Element) {
            throw new InvalidOperationException();
              }

              Uri id;

              using (XmlReader idReader = reader.ReadSubtree()) {
            idReader.MoveToContent();

            while (idReader.MoveToNextAttribute()) {
              if ((object)idReader.NamespaceURI != _nameTable.NamespaceUriXmlns) {
            RaiseExtensionEvent(readingElement, idReader);
              }
            }

            idReader.MoveToContent();
            string iriString = idReader.ReadString();
            id = new Uri(iriString, UriKind.Absolute);

            while (idReader.Read()) { }
              }

              return id;
        }
Example #3
0
 protected void RaiseExtensionEvent(AtomBaseElement readingElement, XmlReader reader)
 {
     AtomExtensionEventHandler temp = _readExtensionDelegate;
       if (temp != null) {
     AtomExtensionEventArgs e = new AtomExtensionEventArgs(readingElement, reader);
     temp(this, e);
       }
       else {
     if (reader.NodeType == XmlNodeType.Element) {
       using (XmlReader subReader = reader.ReadSubtree()) {
     while (subReader.Read());
       }
     }
       }
 }
 public AtomExtensionEventArgs(AtomBaseElement readingElement, XmlNode extensionNode)
     : base()
 {
     _readingElement = readingElement;
       _extensionNode = extensionNode;
 }