private XmlReader CreateXmlReader(TextReader textReader, XamlXmlReaderSettings settings) { bool closeInput = (settings != null) && settings.CloseInput; return(XmlReader.Create(textReader, new XmlReaderSettings { CloseInput = closeInput, DtdProcessing = DtdProcessing.Prohibit })); }
public XamlXmlReader(TextReader textReader, XamlXmlReaderSettings settings) { if (textReader == null) { throw new ArgumentNullException(nameof(textReader)); } Initialize(CreateXmlReader(textReader, settings), null, settings); }
public XamlXmlReader(Stream stream, XamlXmlReaderSettings settings) { if (stream == null) { throw new ArgumentNullException(nameof(stream)); } Initialize(CreateXmlReader(stream, settings), null, settings); }
private XmlReader CreateXmlReader(string fileName, XamlXmlReaderSettings settings) { bool closeInput = (settings == null) ? true : settings.CloseInput; return(XmlReader.Create(fileName, new XmlReaderSettings { CloseInput = closeInput, DtdProcessing = DtdProcessing.Prohibit })); }
public XamlXmlReader(string fileName, XamlXmlReaderSettings settings) { if (fileName == null) { throw new ArgumentNullException(nameof(fileName)); } Initialize(CreateXmlReader(fileName, settings), null, settings); }
public XamlXmlReader(XmlReader xmlReader, XamlXmlReaderSettings settings) { if (xmlReader == null) { throw new ArgumentNullException(nameof(xmlReader)); } Initialize(xmlReader, null, settings); }
public XamlXmlReader(XmlReader xmlReader, XamlSchemaContext schemaContext, XamlXmlReaderSettings settings) { if (schemaContext == null) { throw new ArgumentNullException(nameof(schemaContext)); } if (xmlReader == null) { throw new ArgumentNullException(nameof(xmlReader)); } Initialize(xmlReader, schemaContext, settings); }
public XamlXmlReader(Stream stream, XamlSchemaContext schemaContext, XamlXmlReaderSettings settings) { if (stream == null) { throw new ArgumentNullException(nameof(stream)); } if (schemaContext == null) { throw new ArgumentNullException(nameof(schemaContext)); } Initialize(CreateXmlReader(stream, settings), schemaContext, settings); }
public XamlXmlReaderSettings(XamlXmlReaderSettings settings) : base(settings) { if (settings != null) { if (settings._xmlnsDictionary != null) { _xmlnsDictionary = new Dictionary <string, string>(settings._xmlnsDictionary); } XmlLang = settings.XmlLang; XmlSpacePreserve = settings.XmlSpacePreserve; SkipXmlCompatibilityProcessing = settings.SkipXmlCompatibilityProcessing; CloseInput = settings.CloseInput; } }
private void Initialize(XmlReader givenXmlReader, XamlSchemaContext schemaContext, XamlXmlReaderSettings settings) { XmlReader myXmlReader; _mergedSettings = (settings == null) ? new XamlXmlReaderSettings() : new XamlXmlReaderSettings(settings); //Wrap the xmlreader with a XmlCompatReader instance to apply MarkupCompat rules. if (!_mergedSettings.SkipXmlCompatibilityProcessing) { XmlCompatibilityReader mcReader = new XmlCompatibilityReader(givenXmlReader, new IsXmlNamespaceSupportedCallback(IsXmlNamespaceSupported) ); mcReader.Normalization = true; myXmlReader = mcReader; } else { //Don't wrap the xmlreader with XmlCompatReader. // Useful for uses where users want to keep mc: content in the XamlNode stream. // Or have already processed the markup compat and want that extra perf. myXmlReader = givenXmlReader; } // Pick up the XmlReader settings to override the "settings" defaults. if (!String.IsNullOrEmpty(myXmlReader.BaseURI)) { _mergedSettings.BaseUri = new Uri(myXmlReader.BaseURI); } if (myXmlReader.XmlSpace == XmlSpace.Preserve) { _mergedSettings.XmlSpacePreserve = true; } if (!String.IsNullOrEmpty(myXmlReader.XmlLang)) { _mergedSettings.XmlLang = myXmlReader.XmlLang; } IXmlNamespaceResolver myXmlReaderNS = myXmlReader as IXmlNamespaceResolver; Dictionary <string, string> xmlnsDictionary = null; if (myXmlReaderNS != null) { IDictionary <string, string> rootNamespaces = myXmlReaderNS.GetNamespacesInScope(XmlNamespaceScope.Local); if (rootNamespaces != null) { foreach (KeyValuePair <string, string> ns in rootNamespaces) { if (xmlnsDictionary == null) { xmlnsDictionary = new Dictionary <string, string>(); } xmlnsDictionary[ns.Key] = ns.Value; } } } if (schemaContext == null) { schemaContext = new XamlSchemaContext(); } _endOfStreamNode = new XamlNode(XamlNode.InternalNodeType.EndOfStream); _context = new XamlParserContext(schemaContext, _mergedSettings.LocalAssembly); _context.AllowProtectedMembersOnRoot = _mergedSettings.AllowProtectedMembersOnRoot; _context.AddNamespacePrefix(KnownStrings.XmlPrefix, XamlLanguage.Xml1998Namespace); Func <string, string> namespaceResolver = myXmlReader.LookupNamespace; _context.XmlNamespaceResolver = namespaceResolver; XamlScanner xamlScanner = new XamlScanner(_context, myXmlReader, _mergedSettings); XamlPullParser parser = new XamlPullParser(_context, xamlScanner, _mergedSettings); _nodeStream = new NodeStreamSorter(_context, parser, _mergedSettings, xmlnsDictionary); _current = new XamlNode(XamlNode.InternalNodeType.StartOfStream); // user must call Read() before using properties. _currentLineInfo = new LineInfo(0, 0); }