public INXmlElementReader Create() { inputStream.Seek(1, SeekOrigin.Current); var nodeName = inputStream.ReadWord(); var line = inputStream.ReadRestOfLine().Trim(); if (!line.EndsWith(">")) { throw new NXmlReaderFormatException("Missing element closing brace on same line element is declared"); } var attributes = new NXmlNodeAttributes(line.Trim('>', '/')); INXmlElementReader reader; if (line.EndsWith("/>")) { reader = new NXmlCompactElementReader(attributes, nodeName); } else { reader = new NXmlElementReader(inputStream, attributes, nodeName); } return(reader); }
public INXmlElementReader GetNextChildNode() { INXmlElementReader reader = null; if (inputStream.Seek('<', '>')) { inputStream.Seek(1, SeekOrigin.Current); var closingElement = inputStream.Peek() == '/'; inputStream.Seek(-1, SeekOrigin.Current); if (!closingElement) { reader = new XmlElementReaderFactory(inputStream).Create(); } } return(reader); }
public Payload Read(XmlStreamReader inputStream) { Payload payload; inputStream.Seek(0, SeekOrigin.Begin); if (inputStream.Seek("<c type=\"!0\"")) { using (var nodeReader = new XmlElementReaderFactory(inputStream).Create()) { payload = (Payload)objectReader.Get(nodeReader); } } else { throw new UnableToReadXMLTextException("Missing payload."); } return(payload); }