Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / whidbey / netfxsp / 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. // //[....] //----------------------------------------------------------------------------- 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.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- HttpCacheVaryByContentEncodings.cs
- TextControlDesigner.cs
- SpecularMaterial.cs
- RelationshipFixer.cs
- MultiView.cs
- TraversalRequest.cs
- TextProperties.cs
- TypeLibConverter.cs
- ValidateNames.cs
- XmlSchemaSimpleTypeRestriction.cs
- StylusCollection.cs
- Int32CollectionConverter.cs
- FontStyles.cs
- BamlResourceDeserializer.cs
- EncoderNLS.cs
- ParameterElement.cs
- ReferencedType.cs
- ChtmlTextWriter.cs
- FigureHelper.cs
- StreamReader.cs
- CompilationUtil.cs
- CircleHotSpot.cs
- BaseProcessProtocolHandler.cs
- UnsafeNativeMethods.cs
- StatusCommandUI.cs
- PassportAuthenticationEventArgs.cs
- CharAnimationBase.cs
- ExceptionNotification.cs
- CompositeActivityValidator.cs
- Lease.cs
- SmiEventSink_DeferedProcessing.cs
- ConstrainedDataObject.cs
- _RequestCacheProtocol.cs
- DataColumnPropertyDescriptor.cs
- SqlRowUpdatingEvent.cs
- SqlWriter.cs
- SecurityKeyIdentifier.cs
- WorkflowServiceNamespace.cs
- TextSpan.cs
- Registry.cs
- NullableDoubleMinMaxAggregationOperator.cs
- ConstraintCollection.cs
- AspNetSynchronizationContext.cs
- GeneralTransform3DTo2DTo3D.cs
- WindowsTreeView.cs
- SqlUserDefinedTypeAttribute.cs
- DataGridItemCollection.cs
- ActivityWithResultConverter.cs
- WebDescriptionAttribute.cs
- Transform.cs
- ToolStripDropDown.cs
- BrowserDefinitionCollection.cs
- SqlBuilder.cs
- XsltOutput.cs
- Configuration.cs
- TextEditorThreadLocalStore.cs
- securitycriticaldataClass.cs
- SelectionChangedEventArgs.cs
- FindCriteriaCD1.cs
- AmbientValueAttribute.cs
- DataGridSortCommandEventArgs.cs
- PointF.cs
- Types.cs
- XamlValidatingReader.cs
- PreservationFileReader.cs
- DataGridViewColumnStateChangedEventArgs.cs
- CodeDelegateInvokeExpression.cs
- CodeNamespaceImport.cs
- AssemblyResourceLoader.cs
- TypeForwardedToAttribute.cs
- UriTemplateEquivalenceComparer.cs
- FlowDocumentPage.cs
- MatrixTransform3D.cs
- PartManifestEntry.cs
- VisualStyleTypesAndProperties.cs
- QilStrConcat.cs
- ManipulationPivot.cs
- TypeLibConverter.cs
- EngineSiteSapi.cs
- DataControlFieldHeaderCell.cs
- BypassElementCollection.cs
- base64Transforms.cs
- InputBindingCollection.cs
- HtmlShimManager.cs
- ClientBuildManagerTypeDescriptionProviderBridge.cs
- ModuleElement.cs
- MetadataAssemblyHelper.cs
- SchemaCollectionCompiler.cs
- PointConverter.cs
- MediaPlayer.cs
- IntMinMaxAggregationOperator.cs
- Logging.cs
- InfoCardMasterKey.cs
- MetadataSerializer.cs
- CompiledXpathExpr.cs
- XsltException.cs
- FixedSOMFixedBlock.cs
- AutoResetEvent.cs
- SvcMapFileLoader.cs
- ISSmlParser.cs