Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / Orcas / SP / ndp / fx / src / DataWeb / Server / System / Data / Services / Serializers / AtomServiceDocumentSerializer.cs / 1 / AtomServiceDocumentSerializer.cs
//---------------------------------------------------------------------- //// Copyright (c) Microsoft Corporation. All rights reserved. // //// Provides a serializer for the Atom Service Document format. // // // @owner [....] //--------------------------------------------------------------------- namespace System.Data.Services.Serializers { using System; using System.Diagnostics; using System.IO; using System.Text; using System.Xml; using System.Data.Services.Providers; ////// Provides support for serializing service models as /// a Service Document. /// ////// For more information, see http://tools.ietf.org/html/rfc5023#section-8. /// [DebuggerDisplay("AtomServiceDocumentSerializer={baseUri}")] internal sealed class AtomServiceDocumentSerializer : XmlDocumentSerializer { ///XML prefix for the Atom Publishing Protocol namespace. private const string AppNamespacePrefix = "app"; ///XML prefix for the Atom namespace. private const string AtomNamespacePrefix = "atom"; ////// Initializes a new AtomServiceDocumentSerializer, ready to write /// out the Service Document for a data provider. /// /// Stream to which output should be sent. /// Base URI from which resources should be resolved. /// Data provider from which metadata should be gathered. /// Text encoding for the response. internal AtomServiceDocumentSerializer( Stream output, Uri baseUri, IDataServiceProvider provider, Encoding encoding) : base(output, baseUri, provider, encoding) { } ///Writes the Service Document to the output stream. internal override void WriteRequest() { try { this.Writer.WriteStartElement(XmlConstants.AtomPublishingServiceElementName, XmlConstants.AppNamespace); this.IncludeCommonNamespaces(); this.Writer.WriteStartElement("", XmlConstants.AtomPublishingWorkspaceElementName, XmlConstants.AppNamespace); this.Writer.WriteStartElement(XmlConstants.AtomTitleElementName, XmlConstants.AtomNamespace); this.Writer.WriteString(XmlConstants.AtomPublishingWorkspaceDefaultValue); this.Writer.WriteEndElement(); foreach (ResourceContainer container in this.Provider.GetContainers()) { this.Writer.WriteStartElement("", XmlConstants.AtomPublishingCollectionElementName, XmlConstants.AppNamespace); this.Writer.WriteAttributeString(XmlConstants.AtomHRefAttributeName, container.Name); this.Writer.WriteStartElement(XmlConstants.AtomTitleElementName, XmlConstants.AtomNamespace); this.Writer.WriteString(container.Name); this.Writer.WriteEndElement(); // Close 'title' element. this.Writer.WriteEndElement(); // Close 'collection' element. } this.Writer.WriteEndElement(); // Close 'workspace' element. this.Writer.WriteEndElement(); // Close 'service' element. } finally { this.Writer.Close(); } } ///Ensures that common namespaces are included in the topmost tag. ////// This method should be called by any method that may write a /// topmost element tag. /// private void IncludeCommonNamespaces() { Debug.Assert( this.Writer.WriteState == WriteState.Element, "this.writer.WriteState == WriteState.Element - otherwise, not called at beginning - " + this.Writer.WriteState); this.Writer.WriteAttributeString(XmlConstants.XmlNamespacePrefix, XmlConstants.XmlBaseAttributeName, null, this.BaseUri.AbsoluteUri); this.Writer.WriteAttributeString(XmlConstants.XmlnsNamespacePrefix, AtomNamespacePrefix, null, XmlConstants.AtomNamespace); this.Writer.WriteAttributeString(XmlConstants.XmlnsNamespacePrefix, AppNamespacePrefix, null, XmlConstants.AppNamespace); } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. //---------------------------------------------------------------------- //// Copyright (c) Microsoft Corporation. All rights reserved. // //// Provides a serializer for the Atom Service Document format. // // // @owner [....] //--------------------------------------------------------------------- namespace System.Data.Services.Serializers { using System; using System.Diagnostics; using System.IO; using System.Text; using System.Xml; using System.Data.Services.Providers; ////// Provides support for serializing service models as /// a Service Document. /// ////// For more information, see http://tools.ietf.org/html/rfc5023#section-8. /// [DebuggerDisplay("AtomServiceDocumentSerializer={baseUri}")] internal sealed class AtomServiceDocumentSerializer : XmlDocumentSerializer { ///XML prefix for the Atom Publishing Protocol namespace. private const string AppNamespacePrefix = "app"; ///XML prefix for the Atom namespace. private const string AtomNamespacePrefix = "atom"; ////// Initializes a new AtomServiceDocumentSerializer, ready to write /// out the Service Document for a data provider. /// /// Stream to which output should be sent. /// Base URI from which resources should be resolved. /// Data provider from which metadata should be gathered. /// Text encoding for the response. internal AtomServiceDocumentSerializer( Stream output, Uri baseUri, IDataServiceProvider provider, Encoding encoding) : base(output, baseUri, provider, encoding) { } ///Writes the Service Document to the output stream. internal override void WriteRequest() { try { this.Writer.WriteStartElement(XmlConstants.AtomPublishingServiceElementName, XmlConstants.AppNamespace); this.IncludeCommonNamespaces(); this.Writer.WriteStartElement("", XmlConstants.AtomPublishingWorkspaceElementName, XmlConstants.AppNamespace); this.Writer.WriteStartElement(XmlConstants.AtomTitleElementName, XmlConstants.AtomNamespace); this.Writer.WriteString(XmlConstants.AtomPublishingWorkspaceDefaultValue); this.Writer.WriteEndElement(); foreach (ResourceContainer container in this.Provider.GetContainers()) { this.Writer.WriteStartElement("", XmlConstants.AtomPublishingCollectionElementName, XmlConstants.AppNamespace); this.Writer.WriteAttributeString(XmlConstants.AtomHRefAttributeName, container.Name); this.Writer.WriteStartElement(XmlConstants.AtomTitleElementName, XmlConstants.AtomNamespace); this.Writer.WriteString(container.Name); this.Writer.WriteEndElement(); // Close 'title' element. this.Writer.WriteEndElement(); // Close 'collection' element. } this.Writer.WriteEndElement(); // Close 'workspace' element. this.Writer.WriteEndElement(); // Close 'service' element. } finally { this.Writer.Close(); } } ///Ensures that common namespaces are included in the topmost tag. ////// This method should be called by any method that may write a /// topmost element tag. /// private void IncludeCommonNamespaces() { Debug.Assert( this.Writer.WriteState == WriteState.Element, "this.writer.WriteState == WriteState.Element - otherwise, not called at beginning - " + this.Writer.WriteState); this.Writer.WriteAttributeString(XmlConstants.XmlNamespacePrefix, XmlConstants.XmlBaseAttributeName, null, this.BaseUri.AbsoluteUri); this.Writer.WriteAttributeString(XmlConstants.XmlnsNamespacePrefix, AtomNamespacePrefix, null, XmlConstants.AtomNamespace); this.Writer.WriteAttributeString(XmlConstants.XmlnsNamespacePrefix, AppNamespacePrefix, null, XmlConstants.AppNamespace); } } } // 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
- ListViewInsertedEventArgs.cs
- ExpressionBinding.cs
- AnimationStorage.cs
- ClipboardData.cs
- XmlTypeMapping.cs
- MruCache.cs
- SafeRightsManagementEnvironmentHandle.cs
- Profiler.cs
- DataGridViewAutoSizeColumnsModeEventArgs.cs
- DockAndAnchorLayout.cs
- SubMenuStyle.cs
- EntityCollectionChangedParams.cs
- BrowserCapabilitiesCodeGenerator.cs
- BamlTreeUpdater.cs
- isolationinterop.cs
- ConfigurationElementCollection.cs
- IItemProperties.cs
- VisualStyleElement.cs
- FocusTracker.cs
- ResourceReader.cs
- CardSpaceSelector.cs
- ListViewEditEventArgs.cs
- ResourceManager.cs
- SchemaElementLookUpTableEnumerator.cs
- FragmentNavigationEventArgs.cs
- HotCommands.cs
- ColorAnimation.cs
- DataBindingCollection.cs
- OperatorExpressions.cs
- IProducerConsumerCollection.cs
- Debug.cs
- PageBuildProvider.cs
- NamespaceDecl.cs
- MobileErrorInfo.cs
- NativeActivity.cs
- TextServicesCompartmentContext.cs
- TextSearch.cs
- RuntimeConfigurationRecord.cs
- DelegatingTypeDescriptionProvider.cs
- EnvelopedPkcs7.cs
- XmlUnspecifiedAttribute.cs
- CompositeKey.cs
- CommandValueSerializer.cs
- NavigationWindowAutomationPeer.cs
- KeyInstance.cs
- SecurityContext.cs
- HttpBindingExtension.cs
- NavigatorOutput.cs
- ParameterCollectionEditorForm.cs
- HtmlTableCellCollection.cs
- RelationshipDetailsRow.cs
- BoundsDrawingContextWalker.cs
- ContextMarshalException.cs
- BinaryObjectInfo.cs
- FontFamily.cs
- WebBrowserDocumentCompletedEventHandler.cs
- OracleRowUpdatingEventArgs.cs
- WindowsHyperlink.cs
- Transform3D.cs
- SelfIssuedAuthRSAPKCS1SignatureFormatter.cs
- Char.cs
- AddressAccessDeniedException.cs
- NetStream.cs
- SqlExpressionNullability.cs
- CustomErrorCollection.cs
- AsymmetricSecurityBindingElement.cs
- QueryableDataSourceView.cs
- RectangleHotSpot.cs
- AssociationType.cs
- NetPipeSectionData.cs
- DummyDataSource.cs
- OdbcDataAdapter.cs
- ClientBuildManagerTypeDescriptionProviderBridge.cs
- TraceUtils.cs
- ThreadTrace.cs
- Invariant.cs
- BinaryNegotiation.cs
- XamlDesignerSerializationManager.cs
- ResourceManager.cs
- ConfigurationLockCollection.cs
- IdentitySection.cs
- StrictAndMessageFilter.cs
- RadioButton.cs
- NonSerializedAttribute.cs
- QilLoop.cs
- VoiceInfo.cs
- SchemaDeclBase.cs
- CompilerWrapper.cs
- SimpleApplicationHost.cs
- InheritanceAttribute.cs
- GraphicsContainer.cs
- QuaternionValueSerializer.cs
- TrackingStringDictionary.cs
- HostProtectionPermission.cs
- MgmtConfigurationRecord.cs
- AlphabeticalEnumConverter.cs
- ClaimTypes.cs
- SoapCodeExporter.cs
- securitycriticaldata.cs
- RightsManagementSuppressedStream.cs