Code:
/ FX-1434 / FX-1434 / 1.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
- RadioButtonStandardAdapter.cs
- ScrollEvent.cs
- TableAutomationPeer.cs
- CompositeDuplexBindingElementImporter.cs
- CompressedStack.cs
- DataTableReader.cs
- GroupedContextMenuStrip.cs
- SmtpTransport.cs
- PublisherMembershipCondition.cs
- FormatVersion.cs
- HttpTransportElement.cs
- AuthStoreRoleProvider.cs
- VideoDrawing.cs
- Window.cs
- PolyLineSegment.cs
- DataGridViewImageColumn.cs
- InternalBufferOverflowException.cs
- DataGridViewSelectedCellCollection.cs
- Delegate.cs
- TypeUsage.cs
- DataGridViewSelectedRowCollection.cs
- StrokeSerializer.cs
- ClonableStack.cs
- Int32Storage.cs
- EmulateRecognizeCompletedEventArgs.cs
- SkewTransform.cs
- Deflater.cs
- User.cs
- WindowsStatusBar.cs
- HtmlImage.cs
- OrCondition.cs
- WaitForChangedResult.cs
- StringResourceManager.cs
- FormsAuthenticationCredentials.cs
- StylusPointPropertyId.cs
- CSharpCodeProvider.cs
- XPathAncestorIterator.cs
- dbdatarecord.cs
- SrgsGrammar.cs
- WhitespaceRuleLookup.cs
- WebPartDeleteVerb.cs
- VerificationException.cs
- ClipboardProcessor.cs
- FillRuleValidation.cs
- TableNameAttribute.cs
- ClientConfigurationSystem.cs
- AbstractDataSvcMapFileLoader.cs
- XmlTextReaderImpl.cs
- MenuItemCollection.cs
- UnsafeMethods.cs
- DBCommandBuilder.cs
- ClientTarget.cs
- ModelTreeEnumerator.cs
- LayoutTableCell.cs
- DrawingAttributesDefaultValueFactory.cs
- SqlClientWrapperSmiStreamChars.cs
- SoapException.cs
- DesignConnectionCollection.cs
- UpdateException.cs
- XamlFxTrace.cs
- DataSourceProvider.cs
- GorillaCodec.cs
- TextModifier.cs
- TdsRecordBufferSetter.cs
- CharacterMetrics.cs
- CharAnimationUsingKeyFrames.cs
- DoubleLink.cs
- ScrollChangedEventArgs.cs
- TreeViewImageKeyConverter.cs
- Translator.cs
- WebEventCodes.cs
- CustomLineCap.cs
- CursorConverter.cs
- pingexception.cs
- SocketException.cs
- NumericUpDown.cs
- AvTraceDetails.cs
- HtmlInputRadioButton.cs
- FillErrorEventArgs.cs
- ApplicationTrust.cs
- BufferedOutputStream.cs
- XmlSchemaExternal.cs
- EnvelopeVersion.cs
- FirstQueryOperator.cs
- DefaultProfileManager.cs
- SoapConverter.cs
- AttributeCollection.cs
- MenuAdapter.cs
- DataRecordInfo.cs
- SecurityDescriptor.cs
- UriWriter.cs
- DataGridHeaderBorder.cs
- ForAllOperator.cs
- SystemGatewayIPAddressInformation.cs
- TextBox.cs
- HttpCookieCollection.cs
- CreateUserWizardStep.cs
- XPathNodePointer.cs
- EventSourceCreationData.cs
- AnchorEditor.cs