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
- XmlTextEncoder.cs
- CollectionDataContract.cs
- StringAnimationUsingKeyFrames.cs
- TypeToArgumentTypeConverter.cs
- ExpressionSelection.cs
- QuotedStringWriteStateInfo.cs
- ButtonColumn.cs
- DbReferenceCollection.cs
- NavigationEventArgs.cs
- TableLayoutRowStyleCollection.cs
- MethodBody.cs
- TableLayoutPanel.cs
- ClientScriptManager.cs
- TableLayoutPanelCellPosition.cs
- XmlNavigatorFilter.cs
- ProfilePropertyNameValidator.cs
- BitmapEffectInput.cs
- XPathScanner.cs
- Version.cs
- FileRecordSequence.cs
- PersonalizationProviderCollection.cs
- SpeechAudioFormatInfo.cs
- SemanticValue.cs
- Mouse.cs
- MetadataArtifactLoaderCompositeResource.cs
- WebConvert.cs
- BitmapEffectDrawing.cs
- DataSourceProvider.cs
- XmlElementCollection.cs
- BitmapFrameEncode.cs
- HostedBindingBehavior.cs
- wpf-etw.cs
- ProviderException.cs
- DbProviderSpecificTypePropertyAttribute.cs
- LogPolicy.cs
- LinqMaximalSubtreeNominator.cs
- KoreanLunisolarCalendar.cs
- StrongBox.cs
- NullRuntimeConfig.cs
- GlyphsSerializer.cs
- XmlAttributeCollection.cs
- TraceHandler.cs
- ProgressBarHighlightConverter.cs
- SamlSubject.cs
- SQLMembershipProvider.cs
- GridViewColumn.cs
- CompositeDataBoundControl.cs
- StateInitializationDesigner.cs
- InstanceHandleConflictException.cs
- AttachedPropertyBrowsableAttribute.cs
- CRYPTPROTECT_PROMPTSTRUCT.cs
- TrackingSection.cs
- SoapEnumAttribute.cs
- XmlQualifiedNameTest.cs
- AssemblyAssociatedContentFileAttribute.cs
- Point4D.cs
- hwndwrapper.cs
- FontFamily.cs
- PopOutPanel.cs
- RegexRunner.cs
- GridViewCancelEditEventArgs.cs
- HandlerFactoryCache.cs
- CroppedBitmap.cs
- WorkflowRuntimeElement.cs
- NetworkAddressChange.cs
- FixedDSBuilder.cs
- SynchronizationHandlesCodeDomSerializer.cs
- TemplateControlParser.cs
- IODescriptionAttribute.cs
- ParallelTimeline.cs
- StreamInfo.cs
- EdmItemError.cs
- ExpressionNormalizer.cs
- ToolboxItemWrapper.cs
- Overlapped.cs
- FtpCachePolicyElement.cs
- RegexCompiler.cs
- DeviceContext.cs
- SqlDataSourceView.cs
- StackBuilderSink.cs
- Odbc32.cs
- HostingEnvironmentSection.cs
- BindingSource.cs
- HtmlInputReset.cs
- DeferredElementTreeState.cs
- DataGridViewCellFormattingEventArgs.cs
- CheckableControlBaseAdapter.cs
- OutOfMemoryException.cs
- BamlLocalizabilityResolver.cs
- NamespaceCollection.cs
- ToolStripRenderer.cs
- LayoutExceptionEventArgs.cs
- MailWebEventProvider.cs
- DiscoveryVersion.cs
- View.cs
- DispatcherTimer.cs
- ListViewItemEventArgs.cs
- RepeaterItem.cs
- UserControl.cs
- RouteUrlExpressionBuilder.cs