Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / Orcas / QFE / 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
- NavigationWindowAutomationPeer.cs
- XamlSerializationHelper.cs
- RootBrowserWindowProxy.cs
- SchemaInfo.cs
- EventDescriptor.cs
- EntityDataSourceValidationException.cs
- WebPartHelpVerb.cs
- FixedSOMTable.cs
- GlyphRunDrawing.cs
- AssemblyCollection.cs
- FrameworkContentElementAutomationPeer.cs
- ReadOnlyNameValueCollection.cs
- ByeMessage11.cs
- AccessControlList.cs
- FrameworkElementFactoryMarkupObject.cs
- SystemColors.cs
- LabelLiteral.cs
- FontDifferentiator.cs
- CompareValidator.cs
- Int32CollectionConverter.cs
- SHA384.cs
- NativeMethods.cs
- _SSPIWrapper.cs
- HtmlInputText.cs
- ItemsPresenter.cs
- CalendarDateChangedEventArgs.cs
- DataControlPagerLinkButton.cs
- AccessDataSource.cs
- PersonalizablePropertyEntry.cs
- WebPartDisplayModeEventArgs.cs
- SecurityState.cs
- NativeWindow.cs
- TimersDescriptionAttribute.cs
- Button.cs
- BulletedListEventArgs.cs
- Attributes.cs
- AnnotationMap.cs
- AppSettingsExpressionBuilder.cs
- UnhandledExceptionEventArgs.cs
- DecimalAnimation.cs
- OptimalTextSource.cs
- DataServiceProcessingPipelineEventArgs.cs
- ExtensionQuery.cs
- StrongNameUtility.cs
- DetailsViewDeleteEventArgs.cs
- VScrollProperties.cs
- SByte.cs
- ListControlConvertEventArgs.cs
- VisualProxy.cs
- NativeRightsManagementAPIsStructures.cs
- ITreeGenerator.cs
- TransformGroup.cs
- Root.cs
- ForeignKeyConstraint.cs
- FrameDimension.cs
- FSWPathEditor.cs
- TableCell.cs
- InternalReceiveMessage.cs
- DataBindEngine.cs
- NotifyParentPropertyAttribute.cs
- TextPointer.cs
- CompareInfo.cs
- MsmqAppDomainProtocolHandler.cs
- TextRange.cs
- SchemaTypeEmitter.cs
- WindowsGraphicsCacheManager.cs
- DataError.cs
- ToolStrip.cs
- IpcChannelHelper.cs
- TriggerBase.cs
- ContentValidator.cs
- NamedPipeHostedTransportConfiguration.cs
- ProjectionRewriter.cs
- ContentHostHelper.cs
- Int32Animation.cs
- RegexRunner.cs
- HttpConfigurationSystem.cs
- EtwTrace.cs
- VectorAnimation.cs
- UserInitiatedNavigationPermission.cs
- ResourcesChangeInfo.cs
- HwndTarget.cs
- Block.cs
- ValueUtilsSmi.cs
- WebSysDefaultValueAttribute.cs
- DbDataRecord.cs
- NonVisualControlAttribute.cs
- ReadOnlyMetadataCollection.cs
- BindingsCollection.cs
- SqlTriggerAttribute.cs
- PageWrapper.cs
- ByteConverter.cs
- AsyncPostBackErrorEventArgs.cs
- ToolboxDataAttribute.cs
- MouseEvent.cs
- ReachDocumentSequenceSerializerAsync.cs
- AddInController.cs
- StringHelper.cs
- NullableDecimalMinMaxAggregationOperator.cs
- NativeMethods.cs