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
- IdSpace.cs
- httpserverutility.cs
- ThreadStartException.cs
- JavaScriptString.cs
- OnOperation.cs
- Decimal.cs
- RightsManagementEncryptionTransform.cs
- DataBinder.cs
- DocumentViewerBase.cs
- WSFederationHttpBindingElement.cs
- TaskDesigner.cs
- DataAdapter.cs
- PageOutputQuality.cs
- FormsAuthenticationModule.cs
- SerializationObjectManager.cs
- RegionData.cs
- EventProviderWriter.cs
- QueryContinueDragEvent.cs
- CheckBoxDesigner.cs
- GridItemProviderWrapper.cs
- RegionInfo.cs
- ResXBuildProvider.cs
- FreezableOperations.cs
- IApplicationTrustManager.cs
- CodeBlockBuilder.cs
- StringWriter.cs
- safex509handles.cs
- MetadataUtilsSmi.cs
- StylusCaptureWithinProperty.cs
- SecurityPermission.cs
- CodeDomConfigurationHandler.cs
- DigitShape.cs
- MultiDataTrigger.cs
- HtmlElementEventArgs.cs
- wgx_exports.cs
- LocatorBase.cs
- TableAdapterManagerHelper.cs
- PeerToPeerException.cs
- TextTreeInsertUndoUnit.cs
- CellRelation.cs
- MachineKeyConverter.cs
- VirtualizingStackPanel.cs
- PriorityBindingExpression.cs
- BrowserCapabilitiesCodeGenerator.cs
- DayRenderEvent.cs
- Aggregates.cs
- DeflateStreamAsyncResult.cs
- IntSecurity.cs
- UTF32Encoding.cs
- Function.cs
- streamingZipPartStream.cs
- HybridWebProxyFinder.cs
- DataGridViewRowStateChangedEventArgs.cs
- translator.cs
- Speller.cs
- LineUtil.cs
- KeyedHashAlgorithm.cs
- WebGetAttribute.cs
- EventBuilder.cs
- DecimalConverter.cs
- TextEditorCharacters.cs
- PhonemeEventArgs.cs
- FileVersion.cs
- RegexCompiler.cs
- CollectionChangeEventArgs.cs
- ISAPIApplicationHost.cs
- RoleProviderPrincipal.cs
- SelectionChangedEventArgs.cs
- DetailsViewInsertEventArgs.cs
- DefaultPerformanceCounters.cs
- FontWeight.cs
- VisualBasicSettings.cs
- InteropEnvironment.cs
- ConvertersCollection.cs
- XmlHierarchicalEnumerable.cs
- EventLogInformation.cs
- PenCursorManager.cs
- EntityDescriptor.cs
- ParameterCollection.cs
- IOException.cs
- TreeIterator.cs
- DataGridColumnHeaderItemAutomationPeer.cs
- ApplicationDirectoryMembershipCondition.cs
- OdbcDataAdapter.cs
- CmsInterop.cs
- HwndKeyboardInputProvider.cs
- TableDetailsRow.cs
- XhtmlBasicCommandAdapter.cs
- _BasicClient.cs
- RegistryConfigurationProvider.cs
- PerformanceCounterPermissionAttribute.cs
- EventMemberCodeDomSerializer.cs
- RecordManager.cs
- _CacheStreams.cs
- Stylus.cs
- BuildManager.cs
- COM2EnumConverter.cs
- MLangCodePageEncoding.cs
- DesignBindingConverter.cs
- ImmComposition.cs