Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / XmlUtils / System / Xml / Xsl / QueryReaderSettings.cs / 1305376 / QueryReaderSettings.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //[....] //----------------------------------------------------------------------------- using System.Collections; using System.Collections.Generic; using System.Diagnostics; using System.IO; using System.Xml; namespace System.Xml.Xsl { internal class QueryReaderSettings { private bool validatingReader; private XmlReaderSettings xmlReaderSettings; private XmlNameTable xmlNameTable; private EntityHandling entityHandling; private bool namespaces; private bool normalization; private bool prohibitDtd; private WhitespaceHandling whitespaceHandling; private XmlResolver xmlResolver; public QueryReaderSettings(XmlNameTable xmlNameTable) { Debug.Assert(xmlNameTable != null); xmlReaderSettings = new XmlReaderSettings(); xmlReaderSettings.NameTable = xmlNameTable; xmlReaderSettings.ConformanceLevel = ConformanceLevel.Document; xmlReaderSettings.XmlResolver = null; xmlReaderSettings.DtdProcessing = DtdProcessing.Prohibit; xmlReaderSettings.CloseInput = true; } public QueryReaderSettings(XmlReader reader) { #pragma warning disable 618 XmlValidatingReader valReader = reader as XmlValidatingReader; #pragma warning restore 618 if (valReader != null) { // Unwrap validation reader validatingReader = true; reader = valReader.Impl.Reader; } xmlReaderSettings = reader.Settings; if (xmlReaderSettings != null) { xmlReaderSettings = xmlReaderSettings.Clone(); xmlReaderSettings.NameTable = reader.NameTable; xmlReaderSettings.CloseInput = true; xmlReaderSettings.LineNumberOffset = 0; xmlReaderSettings.LinePositionOffset = 0; XmlTextReaderImpl impl = reader as XmlTextReaderImpl; if (impl != null) { xmlReaderSettings.XmlResolver = impl.GetResolver(); } } else { xmlNameTable = reader.NameTable; XmlTextReader xmlTextReader = reader as XmlTextReader; if (xmlTextReader != null) { XmlTextReaderImpl impl = xmlTextReader.Impl; entityHandling = impl.EntityHandling; namespaces = impl.Namespaces; normalization = impl.Normalization; prohibitDtd = ( impl.DtdProcessing == DtdProcessing.Prohibit ); whitespaceHandling = impl.WhitespaceHandling; xmlResolver = impl.GetResolver(); } else { entityHandling = EntityHandling.ExpandEntities; namespaces = true; normalization = true; prohibitDtd = true; whitespaceHandling = WhitespaceHandling.All; xmlResolver = null; } } } public XmlReader CreateReader(Stream stream, string baseUri) { XmlReader reader; if (xmlReaderSettings != null) { reader = XmlTextReader.Create(stream, xmlReaderSettings, baseUri); } else { XmlTextReaderImpl readerImpl = new XmlTextReaderImpl(baseUri, stream, xmlNameTable); readerImpl.EntityHandling = entityHandling; readerImpl.Namespaces = namespaces; readerImpl.Normalization = normalization; readerImpl.DtdProcessing = prohibitDtd ? DtdProcessing.Prohibit : DtdProcessing.Parse; readerImpl.WhitespaceHandling = whitespaceHandling; readerImpl.XmlResolver = xmlResolver; reader = readerImpl; } if (validatingReader) { #pragma warning disable 618 reader = new XmlValidatingReader(reader); #pragma warning restore 618 } return reader; } public XmlNameTable NameTable { get { return xmlReaderSettings != null ? xmlReaderSettings.NameTable : xmlNameTable; } } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. //------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //[....] //----------------------------------------------------------------------------- using System.Collections; using System.Collections.Generic; using System.Diagnostics; using System.IO; using System.Xml; namespace System.Xml.Xsl { internal class QueryReaderSettings { private bool validatingReader; private XmlReaderSettings xmlReaderSettings; private XmlNameTable xmlNameTable; private EntityHandling entityHandling; private bool namespaces; private bool normalization; private bool prohibitDtd; private WhitespaceHandling whitespaceHandling; private XmlResolver xmlResolver; public QueryReaderSettings(XmlNameTable xmlNameTable) { Debug.Assert(xmlNameTable != null); xmlReaderSettings = new XmlReaderSettings(); xmlReaderSettings.NameTable = xmlNameTable; xmlReaderSettings.ConformanceLevel = ConformanceLevel.Document; xmlReaderSettings.XmlResolver = null; xmlReaderSettings.DtdProcessing = DtdProcessing.Prohibit; xmlReaderSettings.CloseInput = true; } public QueryReaderSettings(XmlReader reader) { #pragma warning disable 618 XmlValidatingReader valReader = reader as XmlValidatingReader; #pragma warning restore 618 if (valReader != null) { // Unwrap validation reader validatingReader = true; reader = valReader.Impl.Reader; } xmlReaderSettings = reader.Settings; if (xmlReaderSettings != null) { xmlReaderSettings = xmlReaderSettings.Clone(); xmlReaderSettings.NameTable = reader.NameTable; xmlReaderSettings.CloseInput = true; xmlReaderSettings.LineNumberOffset = 0; xmlReaderSettings.LinePositionOffset = 0; XmlTextReaderImpl impl = reader as XmlTextReaderImpl; if (impl != null) { xmlReaderSettings.XmlResolver = impl.GetResolver(); } } else { xmlNameTable = reader.NameTable; XmlTextReader xmlTextReader = reader as XmlTextReader; if (xmlTextReader != null) { XmlTextReaderImpl impl = xmlTextReader.Impl; entityHandling = impl.EntityHandling; namespaces = impl.Namespaces; normalization = impl.Normalization; prohibitDtd = ( impl.DtdProcessing == DtdProcessing.Prohibit ); whitespaceHandling = impl.WhitespaceHandling; xmlResolver = impl.GetResolver(); } else { entityHandling = EntityHandling.ExpandEntities; namespaces = true; normalization = true; prohibitDtd = true; whitespaceHandling = WhitespaceHandling.All; xmlResolver = null; } } } public XmlReader CreateReader(Stream stream, string baseUri) { XmlReader reader; if (xmlReaderSettings != null) { reader = XmlTextReader.Create(stream, xmlReaderSettings, baseUri); } else { XmlTextReaderImpl readerImpl = new XmlTextReaderImpl(baseUri, stream, xmlNameTable); readerImpl.EntityHandling = entityHandling; readerImpl.Namespaces = namespaces; readerImpl.Normalization = normalization; readerImpl.DtdProcessing = prohibitDtd ? DtdProcessing.Prohibit : DtdProcessing.Parse; readerImpl.WhitespaceHandling = whitespaceHandling; readerImpl.XmlResolver = xmlResolver; reader = readerImpl; } if (validatingReader) { #pragma warning disable 618 reader = new XmlValidatingReader(reader); #pragma warning restore 618 } return reader; } public XmlNameTable NameTable { get { return xmlReaderSettings != null ? xmlReaderSettings.NameTable : xmlNameTable; } } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- PrintingPermissionAttribute.cs
- ObjectCloneHelper.cs
- QueryCacheKey.cs
- CookieProtection.cs
- GPStream.cs
- AccessedThroughPropertyAttribute.cs
- SQLRoleProvider.cs
- IPEndPoint.cs
- EntityCodeGenerator.cs
- FontConverter.cs
- LinearQuaternionKeyFrame.cs
- PropertyChange.cs
- RouteParametersHelper.cs
- TextCharacters.cs
- SetStoryboardSpeedRatio.cs
- TextSpanModifier.cs
- TemplatedWizardStep.cs
- SemanticAnalyzer.cs
- ReadOnlyHierarchicalDataSourceView.cs
- ImageAutomationPeer.cs
- CodeTypeOfExpression.cs
- HttpConfigurationContext.cs
- Style.cs
- Symbol.cs
- ResourceSet.cs
- LayoutEditorPart.cs
- InfoCardMetadataExchangeClient.cs
- Label.cs
- UniqueID.cs
- Pen.cs
- CalendarButton.cs
- InteropAutomationProvider.cs
- KeyboardDevice.cs
- FixedTextContainer.cs
- ActivityTypeDesigner.xaml.cs
- StorageInfo.cs
- InternalConfigSettingsFactory.cs
- UpdateCompiler.cs
- XmlQueryTypeFactory.cs
- ADRoleFactory.cs
- HttpsHostedTransportConfiguration.cs
- SessionStateModule.cs
- IISMapPath.cs
- DeploymentSectionCache.cs
- X509AudioLogo.cs
- SqlGatherProducedAliases.cs
- MimeParameterWriter.cs
- StyleHelper.cs
- ScrollBar.cs
- CodeDOMProvider.cs
- PolyQuadraticBezierSegment.cs
- SpeechAudioFormatInfo.cs
- PersistNameAttribute.cs
- XmlSortKey.cs
- SymDocumentType.cs
- RepeaterItem.cs
- EDesignUtil.cs
- RoutedCommand.cs
- DirectoryInfo.cs
- VisualTarget.cs
- WebPartMenu.cs
- PriorityItem.cs
- ImageAutomationPeer.cs
- DataGridRowHeader.cs
- WindowsScrollBarBits.cs
- TokenDescriptor.cs
- PathTooLongException.cs
- PropertyMetadata.cs
- ConfigPathUtility.cs
- XmlLangPropertyAttribute.cs
- DurableInstancingOptions.cs
- XDRSchema.cs
- ClientSideQueueItem.cs
- NameObjectCollectionBase.cs
- DebugInfoGenerator.cs
- NoneExcludedImageIndexConverter.cs
- WebCategoryAttribute.cs
- CodeTypeParameter.cs
- BoolExpr.cs
- CultureSpecificStringDictionary.cs
- SecurityTokenRequirement.cs
- LambdaCompiler.Lambda.cs
- HttpPostedFileBase.cs
- HttpListenerException.cs
- AddIn.cs
- ReadContentAsBinaryHelper.cs
- DesignerForm.cs
- ExceptionRoutedEventArgs.cs
- GridViewColumnCollection.cs
- HuffCodec.cs
- Point4D.cs
- ImplicitInputBrush.cs
- CorrelationManager.cs
- OleDbInfoMessageEvent.cs
- Divide.cs
- IdentityNotMappedException.cs
- DoubleIndependentAnimationStorage.cs
- PassportAuthenticationEventArgs.cs
- StorageAssociationTypeMapping.cs
- XmlJsonReader.cs