Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / DataWeb / Server / System / Data / Services / Serializers / AtomServiceDocumentSerializer.cs / 1305376 / 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.Data.Services.Providers; using System.Diagnostics; using System.IO; using System.Text; using System.Xml; ////// 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, DataServiceProviderWrapper provider, Encoding encoding) : base(output, baseUri, provider, encoding) { } ///Writes the Service Document to the output stream. /// Data service instance. internal override void WriteRequest(IDataService service) { 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 (ResourceSetWrapper container in this.Provider.ResourceSets) { 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
- FlowDocumentView.cs
- KeyedCollection.cs
- NullableLongMinMaxAggregationOperator.cs
- SharedStatics.cs
- Exceptions.cs
- MetricEntry.cs
- ListViewInsertedEventArgs.cs
- InvalidOleVariantTypeException.cs
- ModelItem.cs
- Crc32.cs
- _BaseOverlappedAsyncResult.cs
- RouteValueDictionary.cs
- SqlInfoMessageEvent.cs
- ByteStack.cs
- StylusPointProperties.cs
- ClientBuildManager.cs
- SudsParser.cs
- PageThemeCodeDomTreeGenerator.cs
- DesignerTransaction.cs
- Composition.cs
- StackOverflowException.cs
- ClientScriptManager.cs
- RegisteredScript.cs
- DataGridViewRowConverter.cs
- SoapUnknownHeader.cs
- CultureTableRecord.cs
- TimeSpanValidator.cs
- BoundField.cs
- SafeHandles.cs
- SpellerStatusTable.cs
- WorkflowInspectionServices.cs
- EventRoute.cs
- FunctionOverloadResolver.cs
- Utility.cs
- MenuItemCollectionEditorDialog.cs
- RenderDataDrawingContext.cs
- XmlSerializableWriter.cs
- LinqDataSourceDeleteEventArgs.cs
- SingleAnimation.cs
- IndexOutOfRangeException.cs
- FunctionQuery.cs
- OleDbParameter.cs
- HtmlShimManager.cs
- LocalizableAttribute.cs
- ViewCellRelation.cs
- ListChunk.cs
- SocketPermission.cs
- WeakHashtable.cs
- XmlTextEncoder.cs
- XmlSortKey.cs
- ConnectionConsumerAttribute.cs
- Utils.cs
- SimpleFieldTemplateFactory.cs
- CommittableTransaction.cs
- MonthCalendar.cs
- StrokeSerializer.cs
- LogReservationCollection.cs
- HttpWebRequest.cs
- NumericExpr.cs
- GlobalItem.cs
- CipherData.cs
- TableRow.cs
- XmlSchemaCollection.cs
- MailMessage.cs
- VisualStyleRenderer.cs
- ZipIOCentralDirectoryBlock.cs
- EnterpriseServicesHelper.cs
- FormViewPageEventArgs.cs
- HebrewNumber.cs
- ErrorEventArgs.cs
- ToolStripRendererSwitcher.cs
- ConfigPathUtility.cs
- ToolStripDesignerAvailabilityAttribute.cs
- PeerNeighborManager.cs
- Point3DIndependentAnimationStorage.cs
- Vector3dCollection.cs
- LinkLabel.cs
- SqlServices.cs
- EntityContainerEntitySet.cs
- XmlSchemaComplexType.cs
- LoadedOrUnloadedOperation.cs
- FigureParaClient.cs
- SoapDocumentMethodAttribute.cs
- recordstate.cs
- SingleStorage.cs
- StringFormat.cs
- InvalidOleVariantTypeException.cs
- DataGridViewCell.cs
- DisplayInformation.cs
- ListChangedEventArgs.cs
- MessageDecoder.cs
- _PooledStream.cs
- SqlDelegatedTransaction.cs
- XAMLParseException.cs
- HtmlImage.cs
- MessageSmuggler.cs
- AssemblyInfo.cs
- HttpHandlerAction.cs
- ChannelServices.cs
- WinEventQueueItem.cs