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
- ClientUtils.cs
- PropagatorResult.cs
- ProtocolsConfigurationHandler.cs
- ModelFunction.cs
- EntityUtil.cs
- MethodAccessException.cs
- BitmapEffectInput.cs
- Pen.cs
- TreeView.cs
- AuthenticationModulesSection.cs
- ListViewItemEventArgs.cs
- HTTPNotFoundHandler.cs
- EncoderBestFitFallback.cs
- DesignerTransactionCloseEvent.cs
- PromptBuilder.cs
- ReferenceService.cs
- RegexCaptureCollection.cs
- ResourceSet.cs
- GradientBrush.cs
- ModelVisual3D.cs
- CacheEntry.cs
- XmlBaseWriter.cs
- FlowDocumentScrollViewer.cs
- PolicyStatement.cs
- StylusTip.cs
- WebConfigurationManager.cs
- HistoryEventArgs.cs
- hwndwrapper.cs
- ControlPaint.cs
- MatrixKeyFrameCollection.cs
- CompressEmulationStream.cs
- CatalogZone.cs
- KeyboardDevice.cs
- EventManager.cs
- Console.cs
- ServiceDescriptionSerializer.cs
- DataSourceCache.cs
- Deserializer.cs
- FileController.cs
- FieldAccessException.cs
- RenderData.cs
- EntityTypeBase.cs
- ChangeBlockUndoRecord.cs
- IList.cs
- XamlReaderConstants.cs
- AudioException.cs
- BaseComponentEditor.cs
- ComPlusServiceLoader.cs
- LinkClickEvent.cs
- X509CertificateRecipientClientCredential.cs
- FindSimilarActivitiesVerb.cs
- RequestCachingSection.cs
- ToolboxItemAttribute.cs
- SecurityContextSecurityTokenParameters.cs
- Line.cs
- NativeObjectSecurity.cs
- TreeViewImageKeyConverter.cs
- TextRangeEditTables.cs
- HttpProfileGroupBase.cs
- AtlasWeb.Designer.cs
- ValidationSummary.cs
- Separator.cs
- StringStorage.cs
- DLinqAssociationProvider.cs
- SmtpNegotiateAuthenticationModule.cs
- MarkerProperties.cs
- BindToObject.cs
- UIElementParagraph.cs
- ThreadNeutralSemaphore.cs
- ScriptModule.cs
- OptimalBreakSession.cs
- BindingBase.cs
- ToolStripContentPanelRenderEventArgs.cs
- MachineKey.cs
- DataGridTableCollection.cs
- GifBitmapDecoder.cs
- COM2ExtendedBrowsingHandler.cs
- ObjectTag.cs
- SqlDataSourceCache.cs
- DataGridViewColumnHeaderCell.cs
- Vector3DValueSerializer.cs
- DocumentApplicationJournalEntryEventArgs.cs
- ListContractAdapter.cs
- CodeDefaultValueExpression.cs
- AppDomainProtocolHandler.cs
- PlanCompilerUtil.cs
- NamespaceMapping.cs
- WebPartCatalogCloseVerb.cs
- NodeLabelEditEvent.cs
- Msec.cs
- SqlNamer.cs
- CodeGroup.cs
- Model3DCollection.cs
- CustomErrorCollection.cs
- StructuredTypeEmitter.cs
- StreamProxy.cs
- AssemblyBuilder.cs
- ToolStripStatusLabel.cs
- UidManager.cs
- SqlConnectionFactory.cs