internal void CachingCallBack(XsdCachingReader cachingReader) { this.coreReader = cachingReader.GetCoreReader(); //re-switch the core-reader after caching reader is done this.lineInfo = cachingReader.GetLineInfo(); replayCache = false; }
private XsdCachingReader GetCachingReader() { if (cachingReader == null) { cachingReader = new XsdCachingReader(coreReader, lineInfo, new CachingEventHandler(CachingCallBack)); } else { cachingReader.Reset(coreReader); } this.lineInfo = cachingReader as IXmlLineInfo; return cachingReader; }
private async Task <Tuple <string, object> > InternalReadContentAsObjectTupleAsync(bool unwrapTypedValue) { Tuple <string, object> tuple; string originalStringValue; XmlNodeType nodeType = this.NodeType; if (nodeType == XmlNodeType.Attribute) { originalStringValue = this.Value; if (_attributePSVI != null && _attributePSVI.typedAttributeValue != null) { if (_validationState == ValidatingReaderState.OnDefaultAttribute) { XmlSchemaAttribute schemaAttr = _attributePSVI.attributeSchemaInfo.SchemaAttribute; originalStringValue = (schemaAttr.DefaultValue != null) ? schemaAttr.DefaultValue : schemaAttr.FixedValue; } tuple = new Tuple <string, object>(originalStringValue, ReturnBoxedValue(_attributePSVI.typedAttributeValue, AttributeSchemaInfo.XmlType, unwrapTypedValue)); return(tuple); } else { //return string value tuple = new Tuple <string, object>(originalStringValue, this.Value); return(tuple); } } else if (nodeType == XmlNodeType.EndElement) { if (_atomicValue != null) { originalStringValue = _originalAtomicValueString; tuple = new Tuple <string, object>(originalStringValue, _atomicValue); return(tuple); } else { originalStringValue = string.Empty; tuple = new Tuple <string, object>(originalStringValue, string.Empty); return(tuple); } } else { //Positioned on text, CDATA, PI, Comment etc if (_validator.CurrentContentType == XmlSchemaContentType.TextOnly) { //if current element is of simple type object value = ReturnBoxedValue(await ReadTillEndElementAsync().ConfigureAwait(false), _xmlSchemaInfo.XmlType, unwrapTypedValue); originalStringValue = _originalAtomicValueString; tuple = new Tuple <string, object>(originalStringValue, value); return(tuple); } else { XsdCachingReader cachingReader = _coreReader as XsdCachingReader; if (cachingReader != null) { originalStringValue = cachingReader.ReadOriginalContentAsString(); } else { originalStringValue = await InternalReadContentAsStringAsync().ConfigureAwait(false); } tuple = new Tuple <string, object>(originalStringValue, originalStringValue); return(tuple); } } }
private XsdCachingReader GetCachingReader() { if (_cachingReader == null) { _cachingReader = new XsdCachingReader(_coreReader, _lineInfo, new CachingEventHandler(CachingCallBack)); } else { _cachingReader.Reset(_coreReader); } _lineInfo = _cachingReader as IXmlLineInfo; return _cachingReader; }
internal void CachingCallBack(XsdCachingReader cachingReader) { this.coreReader = cachingReader.GetCoreReader(); this.lineInfo = cachingReader.GetLineInfo(); this.replayCache = false; }
private XsdCachingReader GetCachingReader() { if (this.cachingReader == null) { this.cachingReader = new XsdCachingReader(this.coreReader, this.lineInfo, new CachingEventHandler(this.CachingCallBack)); } else { this.cachingReader.Reset(this.coreReader); } this.lineInfo = this.cachingReader; return this.cachingReader; }