Code:
/ FXUpdate3074 / FXUpdate3074 / 1.1 / untmp / whidbey / QFE / ndp / fx / src / Xml / System / Xml / schema / autovalidator.cs / 2 / autovalidator.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //[....] //----------------------------------------------------------------------------- namespace System.Xml.Schema { using System.Diagnostics; using System.Globalization; #pragma warning disable 618 internal class AutoValidator : BaseValidator { const string x_schema = "x-schema"; public AutoValidator(XmlValidatingReaderImpl reader, XmlSchemaCollection schemaCollection, ValidationEventHandler eventHandler) : base(reader, schemaCollection, eventHandler) { schemaInfo = new SchemaInfo(); } public override bool PreserveWhitespace { get { return false; } } public override void Validate() { ValidationType valType = DetectValidationType(); switch(valType) { case ValidationType.XDR: reader.Validator = new XdrValidator(this); reader.Validator.Validate(); break; case ValidationType.Schema: reader.Validator = new XsdValidator(this); reader.Validator.Validate(); break; case ValidationType.Auto: break; } } public override void CompleteValidation() {} public override object FindId(string name) { return null; } private ValidationType DetectValidationType() { //Type not yet detected : Check in Schema Collection if (reader.Schemas != null && reader.Schemas.Count > 0) { XmlSchemaCollectionEnumerator enumerator = reader.Schemas.GetEnumerator(); while (enumerator.MoveNext()) { XmlSchemaCollectionNode node = enumerator.CurrentNode; SchemaInfo schemaInfo = node.SchemaInfo; if(schemaInfo.SchemaType == SchemaType.XSD) return ValidationType.Schema; else if(schemaInfo.SchemaType == SchemaType.XDR) return ValidationType.XDR; } } if (reader.NodeType == XmlNodeType.Element) { SchemaType schemaType = SchemaNames.SchemaTypeFromRoot(reader.LocalName, reader.NamespaceURI); if (schemaType == SchemaType.XSD) { return ValidationType.Schema; } else if (schemaType == SchemaType.XDR) { return ValidationType.XDR; } else { int count = reader.AttributeCount; for (int i = 0; i < count ; i++) { reader.MoveToAttribute(i); string objectNs = reader.NamespaceURI; string objectName = reader.LocalName; if (Ref.Equal(objectNs, SchemaNames.NsXmlNs)) { if(XdrBuilder.IsXdrSchema(reader.Value)) { reader.MoveToElement(); return ValidationType.XDR; } } else if (Ref.Equal(objectNs, SchemaNames.NsXsi)) { reader.MoveToElement(); return ValidationType.Schema; } else if (Ref.Equal(objectNs, SchemaNames.QnDtDt.Namespace) && Ref.Equal(objectName, SchemaNames.QnDtDt.Name)) { reader.SchemaTypeObject = XmlSchemaDatatype.FromXdrName(reader.Value); reader.MoveToElement(); return ValidationType.XDR; } } //end of for if(count > 0) { reader.MoveToElement(); } } } return ValidationType.Auto; } } #pragma warning restore 618 } // 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
- DataSourceHelper.cs
- IncomingWebRequestContext.cs
- HtmlLink.cs
- PartManifestEntry.cs
- BinHexDecoder.cs
- unsafenativemethodsother.cs
- StructuredTypeInfo.cs
- LicFileLicenseProvider.cs
- WarningException.cs
- SqlConnectionFactory.cs
- StringDictionaryEditor.cs
- SchemaTableColumn.cs
- XsltArgumentList.cs
- IOThreadScheduler.cs
- DrawingImage.cs
- DefaultBinder.cs
- EmbossBitmapEffect.cs
- RepeaterDesigner.cs
- relpropertyhelper.cs
- DataChangedEventManager.cs
- Evaluator.cs
- CompiledELinqQueryState.cs
- DataGridViewCheckBoxColumn.cs
- WindowsTokenRoleProvider.cs
- AttachmentCollection.cs
- Control.cs
- SqlConnectionFactory.cs
- SHA1Managed.cs
- ZipIOExtraField.cs
- WebHttpSecurityModeHelper.cs
- SqlTransaction.cs
- FlowDocumentPageViewerAutomationPeer.cs
- LogEntry.cs
- SecureStringHasher.cs
- BitVec.cs
- DesigntimeLicenseContext.cs
- PrintDialog.cs
- storepermissionattribute.cs
- ParameterCollection.cs
- FileChangesMonitor.cs
- SqlStream.cs
- DbExpressionBuilder.cs
- StatusBarItem.cs
- ExplicitDiscriminatorMap.cs
- ImageDrawing.cs
- CheckBoxList.cs
- ObjectStorage.cs
- RoleService.cs
- PagesChangedEventArgs.cs
- EvidenceBase.cs
- KnownBoxes.cs
- EntityContainerEmitter.cs
- KnownBoxes.cs
- SourceLineInfo.cs
- ResolveNameEventArgs.cs
- TypeSystemHelpers.cs
- EventRecordWrittenEventArgs.cs
- Debugger.cs
- SizeF.cs
- HttpApplicationStateWrapper.cs
- ExtensionSurface.cs
- SizeF.cs
- DirectoryNotFoundException.cs
- RuleRef.cs
- UrlMappingsModule.cs
- PropagatorResult.cs
- TraceHandler.cs
- CreateCardRequest.cs
- FontWeights.cs
- SqlProviderManifest.cs
- EventTask.cs
- RSAOAEPKeyExchangeDeformatter.cs
- ToolStripContainerDesigner.cs
- CommonDialog.cs
- iisPickupDirectory.cs
- AsyncStreamReader.cs
- MouseEvent.cs
- Pool.cs
- DataConnectionHelper.cs
- ApplyImportsAction.cs
- RepeaterItemEventArgs.cs
- QualificationDataItem.cs
- SamlAttributeStatement.cs
- EdmError.cs
- ScrollChrome.cs
- RenderingBiasValidation.cs
- PowerStatus.cs
- _HTTPDateParse.cs
- TransactionContext.cs
- ExpandedProjectionNode.cs
- OuterGlowBitmapEffect.cs
- IncrementalCompileAnalyzer.cs
- SerializationFieldInfo.cs
- DigestTraceRecordHelper.cs
- EncodedStreamFactory.cs
- RestHandler.cs
- Exceptions.cs
- SqlDataSourceSelectingEventArgs.cs
- TypeElementCollection.cs
- AccessDataSourceDesigner.cs