Code:
/ DotNET / DotNET / 8.0 / untmp / whidbey / REDBITS / ndp / fx / src / Xml / System / Xml / schema / autovalidator.cs / 1 / 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
- ResourceCategoryAttribute.cs
- FormView.cs
- SoapIgnoreAttribute.cs
- designeractionbehavior.cs
- CroppedBitmap.cs
- SqlWriter.cs
- ExpressionBindings.cs
- PropertyInformation.cs
- ContentValidator.cs
- FrameworkElementFactoryMarkupObject.cs
- GridViewRow.cs
- WindowVisualStateTracker.cs
- TriggerAction.cs
- ArgumentValidation.cs
- BitmapEffectGroup.cs
- QilStrConcat.cs
- AsymmetricSecurityProtocol.cs
- XmlUrlResolver.cs
- NestedContainer.cs
- HyperLinkDataBindingHandler.cs
- ValueHandle.cs
- RequestTimeoutManager.cs
- CollectionContainer.cs
- WebPartDescriptionCollection.cs
- NamespaceMapping.cs
- MonitorWrapper.cs
- DbParameterCollectionHelper.cs
- XmlSchemaInclude.cs
- EdmTypeAttribute.cs
- XPathEmptyIterator.cs
- CalendarButtonAutomationPeer.cs
- ScriptControl.cs
- ProgressiveCrcCalculatingStream.cs
- ADConnectionHelper.cs
- Invariant.cs
- TerminateDesigner.cs
- SafeLibraryHandle.cs
- DataTableReader.cs
- TextElementEditingBehaviorAttribute.cs
- ApplicationServiceManager.cs
- DiscoveryRequestHandler.cs
- SecurityValidationBehavior.cs
- VisualStyleRenderer.cs
- DataExpression.cs
- DataObjectCopyingEventArgs.cs
- RequestCachePolicyConverter.cs
- WindowsIdentity.cs
- CodeAttributeDeclarationCollection.cs
- Command.cs
- ScriptBehaviorDescriptor.cs
- RefreshPropertiesAttribute.cs
- exports.cs
- ToolStripPanel.cs
- ControlIdConverter.cs
- TypeConverterAttribute.cs
- CodePrimitiveExpression.cs
- AvTrace.cs
- SelectionEditingBehavior.cs
- HttpSessionStateWrapper.cs
- SizeAnimation.cs
- DBNull.cs
- TreeNodeSelectionProcessor.cs
- Rijndael.cs
- GlyphCache.cs
- ProvidersHelper.cs
- JoinSymbol.cs
- UnsafeNativeMethods.cs
- RangeBaseAutomationPeer.cs
- ListChangedEventArgs.cs
- XmlAttributeCollection.cs
- Object.cs
- SystemIcons.cs
- EmissiveMaterial.cs
- WebPartVerbCollection.cs
- SponsorHelper.cs
- TransportElement.cs
- Point3DAnimationUsingKeyFrames.cs
- DataBoundControlDesigner.cs
- ObjectViewEntityCollectionData.cs
- XPathAxisIterator.cs
- ColumnWidthChangingEvent.cs
- ApplicationSecurityManager.cs
- FastEncoderWindow.cs
- DataGridCellItemAutomationPeer.cs
- PermissionListSet.cs
- TextElement.cs
- NonSerializedAttribute.cs
- SecurityTokenSpecification.cs
- DictionaryEntry.cs
- ConfigXmlComment.cs
- HandlerBase.cs
- UnmanagedMemoryStreamWrapper.cs
- CellPartitioner.cs
- MetadataImporter.cs
- TaiwanCalendar.cs
- ObjectPropertyMapping.cs
- WebPartEventArgs.cs
- SoapCodeExporter.cs
- NamespaceListProperty.cs
- PageRequestManager.cs