Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / Orcas / NetFXw7 / 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
- AssemblyAssociatedContentFileAttribute.cs
- PerformanceCounterManager.cs
- HandlerBase.cs
- AuthorizationRule.cs
- FunctionUpdateCommand.cs
- CodeCatchClause.cs
- PeerToPeerException.cs
- WebHttpSecurity.cs
- ManagedWndProcTracker.cs
- SqlNotificationRequest.cs
- VScrollBar.cs
- PropertyTabAttribute.cs
- CodeIdentifier.cs
- SchemaNames.cs
- assemblycache.cs
- MetadataArtifactLoaderCompositeFile.cs
- LogicalTreeHelper.cs
- SmiRecordBuffer.cs
- ServiceParser.cs
- RichTextBoxConstants.cs
- ResolvedKeyFrameEntry.cs
- MessageEncoder.cs
- BatchWriter.cs
- HandleExceptionArgs.cs
- ScriptModule.cs
- RewritingSimplifier.cs
- SqlTypeConverter.cs
- LicenseException.cs
- httpapplicationstate.cs
- CodeAttachEventStatement.cs
- ListBindingConverter.cs
- OleDbRowUpdatedEvent.cs
- Speller.cs
- versioninfo.cs
- DispatchOperation.cs
- SelectedGridItemChangedEvent.cs
- FtpCachePolicyElement.cs
- ContextMarshalException.cs
- HtmlTitle.cs
- SoapSchemaMember.cs
- MetadataPropertyAttribute.cs
- Debug.cs
- CodeCompileUnit.cs
- RC2CryptoServiceProvider.cs
- Style.cs
- ToolStripLocationCancelEventArgs.cs
- AsymmetricSignatureDeformatter.cs
- _ServiceNameStore.cs
- DropAnimation.xaml.cs
- XmlNotation.cs
- DateTimeStorage.cs
- grammarelement.cs
- TemplateParser.cs
- CodeNamespace.cs
- GridViewColumnHeader.cs
- FullTextBreakpoint.cs
- ByteRangeDownloader.cs
- Certificate.cs
- Schema.cs
- DbSourceCommand.cs
- PagesSection.cs
- AssemblyBuilderData.cs
- log.cs
- InkCanvasInnerCanvas.cs
- CodeSubDirectoriesCollection.cs
- GlyphRunDrawing.cs
- ObjectSecurity.cs
- SoapAttributeOverrides.cs
- GridViewAutoFormat.cs
- SequenceDesigner.cs
- PinnedBufferMemoryStream.cs
- InvalidFilterCriteriaException.cs
- DbProviderFactories.cs
- DataGridItemEventArgs.cs
- PersonalizationStateInfoCollection.cs
- IItemProperties.cs
- Publisher.cs
- DataSvcMapFile.cs
- ComEventsHelper.cs
- AuthenticationServiceManager.cs
- PrinterUnitConvert.cs
- Hashtable.cs
- ListViewAutomationPeer.cs
- RangeBaseAutomationPeer.cs
- NavigationExpr.cs
- NominalTypeEliminator.cs
- DbParameterCollectionHelper.cs
- ValidationPropertyAttribute.cs
- SafeBitVector32.cs
- PropertyMappingExceptionEventArgs.cs
- BCLDebug.cs
- MenuItemBinding.cs
- DataIdProcessor.cs
- sqlpipe.cs
- OleDbError.cs
- AttributeParameterInfo.cs
- JsonMessageEncoderFactory.cs
- CompiledIdentityConstraint.cs
- WindowsListBox.cs
- RegexTree.cs