Code:
/ DotNET / DotNET / 8.0 / untmp / whidbey / REDBITS / ndp / fx / src / Xml / System / Xml / Core / XmlReaderSettings.cs / 2 / XmlReaderSettings.cs
//------------------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// [....]
//-----------------------------------------------------------------------------
using System.Xml;
using System.Xml.Schema;
namespace System.Xml {
// XmlReaderSettings class specifies features of an XmlReader.
public sealed class XmlReaderSettings {
//
// Fields
//
// Nametable
XmlNameTable nameTable;
// XmlResolver
XmlResolver xmlResolver;
// Text settings
int lineNumberOffset;
int linePositionOffset;
// Conformance settings
ConformanceLevel conformanceLevel;
bool checkCharacters;
long maxCharactersInDocument;
long maxCharactersFromEntities;
//Validation settings
ValidationType validationType;
XmlSchemaValidationFlags validationFlags;
XmlSchemaSet schemas;
ValidationEventHandler valEventHandler;
// Filtering settings
bool ignoreWhitespace;
bool ignorePIs;
bool ignoreComments;
// security settings
bool prohibitDtd;
// other settings
bool closeInput;
// read-only flag
bool isReadOnly;
//
// Constructor
//
public XmlReaderSettings() {
Reset();
}
//
// Properties
//
// Nametable
public XmlNameTable NameTable {
get {
return nameTable;
}
set {
CheckReadOnly( "NameTable" );
nameTable = value;
}
}
// XmlResolver
public XmlResolver XmlResolver {
set {
CheckReadOnly( "XmlResolver" );
xmlResolver = value;
}
}
internal XmlResolver GetXmlResolver() {
return xmlResolver;
}
// Text settings
public int LineNumberOffset {
get {
return lineNumberOffset;
}
set {
CheckReadOnly( "LineNumberOffset" );
if ( lineNumberOffset < 0 ) {
throw new ArgumentOutOfRangeException( "value" );
}
lineNumberOffset = value;
}
}
public int LinePositionOffset {
get {
return linePositionOffset;
}
set {
CheckReadOnly( "LinePositionOffset" );
if ( linePositionOffset < 0 ) {
throw new ArgumentOutOfRangeException( "value" );
}
linePositionOffset = value;
}
}
// Conformance settings
public ConformanceLevel ConformanceLevel {
get {
return conformanceLevel;
}
set {
CheckReadOnly( "ConformanceLevel" );
if ( (uint)value > (uint)ConformanceLevel.Document ) {
throw new ArgumentOutOfRangeException( "value" );
}
conformanceLevel = value;
}
}
public bool CheckCharacters {
get {
return checkCharacters;
}
set {
CheckReadOnly( "CheckCharacters" );
checkCharacters = value;
}
}
public long MaxCharactersInDocument {
get {
return maxCharactersInDocument;
}
set {
CheckReadOnly("MaxCharactersInDocument");
if (value < 0) {
throw new ArgumentOutOfRangeException("value");
}
maxCharactersInDocument = value;
}
}
public long MaxCharactersFromEntities {
get {
return maxCharactersFromEntities;
}
set {
CheckReadOnly("MaxCharactersFromEntities");
if (value < 0) {
throw new ArgumentOutOfRangeException("value");
}
maxCharactersFromEntities = value;
}
}
public ValidationType ValidationType {
get {
return validationType;
}
set {
CheckReadOnly("ValidationType");
if ( (uint)value > (uint)ValidationType.Schema ) {
throw new ArgumentOutOfRangeException( "value" );
}
validationType = value;
}
}
public XmlSchemaValidationFlags ValidationFlags {
get {
return validationFlags;
}
set {
CheckReadOnly("ValidationFlags");
if ( (uint)value > (uint)( XmlSchemaValidationFlags.ProcessInlineSchema | XmlSchemaValidationFlags.ProcessSchemaLocation |
XmlSchemaValidationFlags.ReportValidationWarnings | XmlSchemaValidationFlags.ProcessIdentityConstraints |
XmlSchemaValidationFlags.AllowXmlAttributes ) ) {
throw new ArgumentOutOfRangeException( "value" );
}
validationFlags = value;
}
}
public XmlSchemaSet Schemas {
get {
if ( schemas == null ) {
schemas = new XmlSchemaSet();
}
return schemas;
}
set {
CheckReadOnly( "Schemas" );
schemas = value;
}
}
public event ValidationEventHandler ValidationEventHandler {
add {
CheckReadOnly( "ValidationEventHandler" );
valEventHandler += value;
}
remove {
CheckReadOnly( "ValidationEventHandler" );
valEventHandler -= value;
}
}
// Filtering settings
public bool IgnoreWhitespace {
get {
return ignoreWhitespace;
}
set {
CheckReadOnly( "IgnoreWhitespace" );
ignoreWhitespace = value;
}
}
public bool IgnoreProcessingInstructions {
get {
return ignorePIs;
}
set {
CheckReadOnly( "IgnoreProcessingInstructions" );
ignorePIs = value;
}
}
public bool IgnoreComments {
get {
return ignoreComments;
}
set {
CheckReadOnly( "IgnoreComments" );
ignoreComments = value;
}
}
public bool ProhibitDtd {
get {
return prohibitDtd;
}
set {
CheckReadOnly( "ProhibitDtd" );
prohibitDtd = value;
}
}
public bool CloseInput {
get {
return closeInput;
}
set {
CheckReadOnly( "CloseInput" );
closeInput = value;
}
}
//
// Public methods
//
public void Reset() {
CheckReadOnly( "Reset" );
nameTable = null;
xmlResolver = new XmlUrlResolver();
lineNumberOffset = 0;
linePositionOffset = 0;
checkCharacters = true;
conformanceLevel = ConformanceLevel.Document;
schemas = null;
validationType = ValidationType.None;
validationFlags = XmlSchemaValidationFlags.ProcessIdentityConstraints;
validationFlags |= XmlSchemaValidationFlags.AllowXmlAttributes;
ignoreWhitespace = false;
ignorePIs = false;
ignoreComments = false;
prohibitDtd = true;
closeInput = false;
maxCharactersFromEntities = 0;
maxCharactersInDocument = 0;
isReadOnly = false;
}
public XmlReaderSettings Clone() {
XmlReaderSettings clonedSettings = MemberwiseClone() as XmlReaderSettings;
clonedSettings.isReadOnly = false;
return clonedSettings;
}
//
// Internal and private methods
//
internal bool ReadOnly {
get {
return isReadOnly;
}
set {
isReadOnly = value;
}
}
internal ValidationEventHandler GetEventHandler() {
return valEventHandler;
}
private void CheckReadOnly( string propertyName ) {
if ( isReadOnly ) {
throw new XmlException( Res.Xml_ReadOnlyProperty, "XmlReaderSettings." + propertyName );
}
}
internal bool CanResolveExternals {
get {
return prohibitDtd == false && xmlResolver != null;
}
}
}
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
// Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- MsmqAppDomainProtocolHandler.cs
- CompleteWizardStep.cs
- ReachIDocumentPaginatorSerializerAsync.cs
- GridViewColumn.cs
- PrintingPermissionAttribute.cs
- Zone.cs
- FormsAuthenticationUser.cs
- LayoutEditorPart.cs
- StrokeCollection.cs
- nulltextnavigator.cs
- XmlSerializerFactory.cs
- ListBoxDesigner.cs
- SoapTypeAttribute.cs
- ZoneButton.cs
- DocumentCollection.cs
- Blend.cs
- LinearKeyFrames.cs
- PostBackOptions.cs
- Timeline.cs
- SystemWebCachingSectionGroup.cs
- XmlUnspecifiedAttribute.cs
- GridViewSelectEventArgs.cs
- DrawingContextWalker.cs
- RowToParametersTransformer.cs
- TextEndOfSegment.cs
- ResourcesGenerator.cs
- IndexedEnumerable.cs
- SafeMemoryMappedFileHandle.cs
- SHA256Managed.cs
- Bits.cs
- StatusBarPanel.cs
- LeaseManager.cs
- KeyToListMap.cs
- Wizard.cs
- ButtonBase.cs
- _UncName.cs
- DependencyProperty.cs
- InheritanceContextHelper.cs
- Sequence.cs
- SchemaCollectionPreprocessor.cs
- SubMenuStyleCollection.cs
- DiscreteKeyFrames.cs
- GraphicsState.cs
- ClockController.cs
- UpDownBaseDesigner.cs
- DataGridViewCellCollection.cs
- SiteMapNodeItemEventArgs.cs
- ParenthesizePropertyNameAttribute.cs
- PropertyValueChangedEvent.cs
- PopupControlService.cs
- ControlValuePropertyAttribute.cs
- streamingZipPartStream.cs
- LinkedResource.cs
- ValidatedControlConverter.cs
- TextTrailingCharacterEllipsis.cs
- TypedDataSetSchemaImporterExtension.cs
- CroppedBitmap.cs
- GridViewRowCollection.cs
- ParserStreamGeometryContext.cs
- CheckBoxFlatAdapter.cs
- DataServiceStreamResponse.cs
- PkcsMisc.cs
- ProxyHwnd.cs
- TextTreeUndo.cs
- SerializationAttributes.cs
- KnownTypes.cs
- Transform3D.cs
- ValidationSummaryDesigner.cs
- TypeLoadException.cs
- XsdValidatingReader.cs
- WorkflowStateRollbackService.cs
- BuilderInfo.cs
- SqlDuplicator.cs
- XmlILStorageConverter.cs
- BasicViewGenerator.cs
- Graphics.cs
- RtfControls.cs
- ScriptHandlerFactory.cs
- VirtualDirectoryMappingCollection.cs
- TerminateDesigner.cs
- NumericUpDown.cs
- EventMetadata.cs
- LinqToSqlWrapper.cs
- WebPartZone.cs
- WebPartEditorCancelVerb.cs
- MonthCalendarDesigner.cs
- AnonymousIdentificationSection.cs
- ToolStripMenuItemCodeDomSerializer.cs
- OracleCommandBuilder.cs
- ProxyGenerationError.cs
- SecurityRuntime.cs
- ping.cs
- InvalidProgramException.cs
- TemplateBuilder.cs
- ToolboxBitmapAttribute.cs
- CodeTryCatchFinallyStatement.cs
- DebugHandleTracker.cs
- SqlRecordBuffer.cs
- _OverlappedAsyncResult.cs
- MachineSettingsSection.cs