Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / Services / Web / System / Web / Services / Protocols / RuntimeUtils.cs / 1305376 / RuntimeUtils.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- namespace System.Web.Services.Protocols { using System.Web.Services; using System.Xml; using System.Xml.Schema; using System.Xml.Serialization; using System; using System.Text; using System.IO; using System.ComponentModel; using System.Globalization; using System.Web.Services.Diagnostics; internal class RuntimeUtils { private RuntimeUtils() { } internal static XmlDeserializationEvents GetDeserializationEvents() { XmlDeserializationEvents events = new XmlDeserializationEvents(); events.OnUnknownElement = new XmlElementEventHandler(OnUnknownElement); events.OnUnknownAttribute = new XmlAttributeEventHandler(OnUnknownAttribute); return events; } static void OnUnknownAttribute(object sender, XmlAttributeEventArgs e) { if (e.Attr == null) return; // ignore attributes from known namepsaces if (IsKnownNamespace(e.Attr.NamespaceURI)) return; Tracing.OnUnknownAttribute(sender, e); if (e.ExpectedAttributes == null) throw new InvalidOperationException(Res.GetString(Res.WebUnknownAttribute, e.Attr.Name, e.Attr.Value)); else if (e.ExpectedAttributes.Length == 0) throw new InvalidOperationException(Res.GetString(Res.WebUnknownAttribute2, e.Attr.Name, e.Attr.Value)); else throw new InvalidOperationException(Res.GetString(Res.WebUnknownAttribute3, e.Attr.Name, e.Attr.Value, e.ExpectedAttributes)); } internal static string ElementString(XmlElement element) { StringWriter xml = new StringWriter(CultureInfo.InvariantCulture); xml.Write("<"); xml.Write(element.Name); if (element.NamespaceURI != null && element.NamespaceURI.Length > 0) { xml.Write(" xmlns"); if (element.Prefix != null && element.Prefix.Length > 0) { xml.Write(":"); xml.Write(element.Prefix); } xml.Write("='"); xml.Write(element.NamespaceURI); xml.Write("'"); } xml.Write(">.."); xml.Write(element.Name); xml.Write(">"); return xml.ToString(); } internal static void OnUnknownElement(object sender, XmlElementEventArgs e) { if (e.Element == null) return; string xml = RuntimeUtils.ElementString(e.Element); Tracing.OnUnknownElement(sender, e); if (e.ExpectedElements == null) throw new InvalidOperationException(Res.GetString(Res.WebUnknownElement, xml)); else if (e.ExpectedElements.Length == 0) throw new InvalidOperationException(Res.GetString(Res.WebUnknownElement1, xml)); else throw new InvalidOperationException(Res.GetString(Res.WebUnknownElement2, xml, e.ExpectedElements)); } internal static bool IsKnownNamespace(string ns) { if (ns == XmlSchema.InstanceNamespace) return true; if (ns == Soap.XmlNamespace) return true; if (ns == Soap.Encoding || ns == Soap.Namespace) return true; if (ns == Soap12.Namespace || ns == Soap12.Encoding || ns == Soap12.RpcNamespace) return true; return false; } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. //------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- namespace System.Web.Services.Protocols { using System.Web.Services; using System.Xml; using System.Xml.Schema; using System.Xml.Serialization; using System; using System.Text; using System.IO; using System.ComponentModel; using System.Globalization; using System.Web.Services.Diagnostics; internal class RuntimeUtils { private RuntimeUtils() { } internal static XmlDeserializationEvents GetDeserializationEvents() { XmlDeserializationEvents events = new XmlDeserializationEvents(); events.OnUnknownElement = new XmlElementEventHandler(OnUnknownElement); events.OnUnknownAttribute = new XmlAttributeEventHandler(OnUnknownAttribute); return events; } static void OnUnknownAttribute(object sender, XmlAttributeEventArgs e) { if (e.Attr == null) return; // ignore attributes from known namepsaces if (IsKnownNamespace(e.Attr.NamespaceURI)) return; Tracing.OnUnknownAttribute(sender, e); if (e.ExpectedAttributes == null) throw new InvalidOperationException(Res.GetString(Res.WebUnknownAttribute, e.Attr.Name, e.Attr.Value)); else if (e.ExpectedAttributes.Length == 0) throw new InvalidOperationException(Res.GetString(Res.WebUnknownAttribute2, e.Attr.Name, e.Attr.Value)); else throw new InvalidOperationException(Res.GetString(Res.WebUnknownAttribute3, e.Attr.Name, e.Attr.Value, e.ExpectedAttributes)); } internal static string ElementString(XmlElement element) { StringWriter xml = new StringWriter(CultureInfo.InvariantCulture); xml.Write("<"); xml.Write(element.Name); if (element.NamespaceURI != null && element.NamespaceURI.Length > 0) { xml.Write(" xmlns"); if (element.Prefix != null && element.Prefix.Length > 0) { xml.Write(":"); xml.Write(element.Prefix); } xml.Write("='"); xml.Write(element.NamespaceURI); xml.Write("'"); } xml.Write(">.."); xml.Write(element.Name); xml.Write(">"); return xml.ToString(); } internal static void OnUnknownElement(object sender, XmlElementEventArgs e) { if (e.Element == null) return; string xml = RuntimeUtils.ElementString(e.Element); Tracing.OnUnknownElement(sender, e); if (e.ExpectedElements == null) throw new InvalidOperationException(Res.GetString(Res.WebUnknownElement, xml)); else if (e.ExpectedElements.Length == 0) throw new InvalidOperationException(Res.GetString(Res.WebUnknownElement1, xml)); else throw new InvalidOperationException(Res.GetString(Res.WebUnknownElement2, xml, e.ExpectedElements)); } internal static bool IsKnownNamespace(string ns) { if (ns == XmlSchema.InstanceNamespace) return true; if (ns == Soap.XmlNamespace) return true; if (ns == Soap.Encoding || ns == Soap.Namespace) return true; if (ns == Soap12.Namespace || ns == Soap12.Encoding || ns == Soap12.RpcNamespace) return true; return false; } } } // 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
- ValidatorAttribute.cs
- SelectedDatesCollection.cs
- DetailsViewActionList.cs
- SortKey.cs
- VectorAnimationUsingKeyFrames.cs
- WmlValidationSummaryAdapter.cs
- DecoderFallback.cs
- PersistencePipeline.cs
- ValidationRuleCollection.cs
- SystemResourceHost.cs
- FixedNode.cs
- EmbossBitmapEffect.cs
- XPathNavigatorKeyComparer.cs
- HttpWriter.cs
- XmlRawWriter.cs
- ContextMenuService.cs
- MiniParameterInfo.cs
- CacheSection.cs
- RootProfilePropertySettingsCollection.cs
- WindowsToolbarItemAsMenuItem.cs
- QilXmlReader.cs
- FormsAuthenticationCredentials.cs
- QilStrConcat.cs
- HtmlInputImage.cs
- QuaternionAnimation.cs
- _SecureChannel.cs
- SQLDecimalStorage.cs
- HtmlInputImage.cs
- EntityDataSourceWrapperPropertyDescriptor.cs
- ReaderOutput.cs
- VerifyHashRequest.cs
- EventHandlersDesigner.cs
- ListItemConverter.cs
- LockRecursionException.cs
- Enum.cs
- MediaEntryAttribute.cs
- IndependentAnimationStorage.cs
- WorkflowQueuingService.cs
- InlineUIContainer.cs
- Vector3DAnimationBase.cs
- XmlNodeChangedEventArgs.cs
- AnnotationResourceCollection.cs
- ParserOptions.cs
- ScrollItemPattern.cs
- ReferentialConstraint.cs
- BitmapEncoder.cs
- ReversePositionQuery.cs
- NamedObject.cs
- CTreeGenerator.cs
- CollectionContainer.cs
- UriExt.cs
- FileRecordSequence.cs
- GenerateTemporaryTargetAssembly.cs
- ProviderConnectionPoint.cs
- FormsAuthenticationEventArgs.cs
- Int64KeyFrameCollection.cs
- SQLBoolean.cs
- RangeBaseAutomationPeer.cs
- TreeViewAutomationPeer.cs
- AuthorizationSection.cs
- AttributeCollection.cs
- activationcontext.cs
- Path.cs
- CurrencyManager.cs
- ItemContainerGenerator.cs
- AuthStoreRoleProvider.cs
- AuthenticatingEventArgs.cs
- QuaternionConverter.cs
- XhtmlMobileTextWriter.cs
- SchemaElement.cs
- PrintingPermissionAttribute.cs
- HtmlTableCellCollection.cs
- XmlBindingWorker.cs
- Int32Animation.cs
- XmlFormatReaderGenerator.cs
- SchemaTableColumn.cs
- InsufficientMemoryException.cs
- MeasureData.cs
- SmtpFailedRecipientsException.cs
- SubMenuStyleCollection.cs
- ReaderOutput.cs
- basenumberconverter.cs
- XmlSortKeyAccumulator.cs
- RadioButtonStandardAdapter.cs
- IssuedTokenParametersElement.cs
- MonitoringDescriptionAttribute.cs
- Membership.cs
- TextBoxAutoCompleteSourceConverter.cs
- DataGridViewAutoSizeModeEventArgs.cs
- WeakReference.cs
- OutputWindow.cs
- FormsAuthenticationConfiguration.cs
- CorrelationService.cs
- RuleProcessor.cs
- BaseTemplateCodeDomTreeGenerator.cs
- InProcStateClientManager.cs
- PerformanceCounterPermissionEntry.cs
- InternalResources.cs
- SecureEnvironment.cs
- OutputCacheProfileCollection.cs