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
- DataTableReader.cs
- DrawListViewColumnHeaderEventArgs.cs
- Variable.cs
- Section.cs
- GroupDescription.cs
- ListItemParagraph.cs
- DbMetaDataColumnNames.cs
- DataGridColumnStyleMappingNameEditor.cs
- CancellationToken.cs
- EntityModelBuildProvider.cs
- CompiledRegexRunner.cs
- BindingExpressionUncommonField.cs
- SecurityCriticalDataForSet.cs
- ListViewItem.cs
- XmlSchemaAll.cs
- ImageClickEventArgs.cs
- ConfigXmlComment.cs
- ThrowOnMultipleAssignment.cs
- MetaTableHelper.cs
- KeyBinding.cs
- Privilege.cs
- AppDomainUnloadedException.cs
- ToolStripRenderEventArgs.cs
- KeyboardInputProviderAcquireFocusEventArgs.cs
- PrintDialogDesigner.cs
- StructuredType.cs
- EndEvent.cs
- _MultipleConnectAsync.cs
- NativeMethodsOther.cs
- InnerItemCollectionView.cs
- ExceptionList.cs
- PermissionSetEnumerator.cs
- WebPartZoneBase.cs
- X509CertificateCollection.cs
- WinEventQueueItem.cs
- ScaleTransform.cs
- EncoderExceptionFallback.cs
- JoinSymbol.cs
- IInstanceTable.cs
- DecimalConstantAttribute.cs
- ArrayElementGridEntry.cs
- OdbcConnectionOpen.cs
- SamlSerializer.cs
- SamlAttributeStatement.cs
- cache.cs
- HtmlShim.cs
- CallbackValidatorAttribute.cs
- WindowsButton.cs
- NativeMethods.cs
- CultureSpecificCharacterBufferRange.cs
- RegistryKey.cs
- ComboBox.cs
- PageHandlerFactory.cs
- WSTransactionSection.cs
- ItemTypeToolStripMenuItem.cs
- FormattedTextSymbols.cs
- ServicePointManager.cs
- Pointer.cs
- ManagementNamedValueCollection.cs
- OleDbDataAdapter.cs
- ValueExpressions.cs
- SafeNativeMethods.cs
- IISUnsafeMethods.cs
- CollectionBuilder.cs
- ViewLoader.cs
- QueryModel.cs
- NativeMethods.cs
- BuildResultCache.cs
- CdpEqualityComparer.cs
- MemoryRecordBuffer.cs
- SynchronizationValidator.cs
- FaultDescription.cs
- AnimationLayer.cs
- ProfilePropertyMetadata.cs
- InkCanvasFeedbackAdorner.cs
- cookie.cs
- ActivityBindForm.Designer.cs
- DataKey.cs
- TreeViewHitTestInfo.cs
- SubMenuStyle.cs
- DataGridViewAutoSizeColumnModeEventArgs.cs
- RouteValueDictionary.cs
- BidPrivateBase.cs
- Storyboard.cs
- WebPartEditorCancelVerb.cs
- ActiveDocumentEvent.cs
- DocumentPageHost.cs
- FileSystemWatcher.cs
- CacheDependency.cs
- Throw.cs
- TypeName.cs
- Line.cs
- ColumnHeaderConverter.cs
- GlobalItem.cs
- PermissionAttributes.cs
- IISMapPath.cs
- AdornerPresentationContext.cs
- Timer.cs
- SystemTcpStatistics.cs
- BoundField.cs