Code:
/ 4.0 / 4.0 / 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. //---------------------------------------------------------------------- //// 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
- wgx_exports.cs
- PassportIdentity.cs
- InternalRelationshipCollection.cs
- Regex.cs
- WindowsFormsHost.cs
- IResourceProvider.cs
- SafeLibraryHandle.cs
- CodeDirectiveCollection.cs
- DragDrop.cs
- cryptoapiTransform.cs
- coordinator.cs
- ImplicitInputBrush.cs
- CodeRemoveEventStatement.cs
- ProcessProtocolHandler.cs
- Zone.cs
- PerspectiveCamera.cs
- InputReport.cs
- DefaultSettingsSection.cs
- ComponentCache.cs
- XNodeNavigator.cs
- MessageEncodingBindingElement.cs
- SelectionUIHandler.cs
- TextPatternIdentifiers.cs
- Parser.cs
- InputElement.cs
- RenamedEventArgs.cs
- StaticTextPointer.cs
- Model3D.cs
- TimeoutException.cs
- Attributes.cs
- XmlAttributeCollection.cs
- Mouse.cs
- ToolboxItemSnapLineBehavior.cs
- PersonalizationProvider.cs
- InstanceLockQueryResult.cs
- ProfileSettingsCollection.cs
- SettingsPropertyIsReadOnlyException.cs
- MetadataArtifactLoaderCompositeResource.cs
- WebPermission.cs
- DateTimeUtil.cs
- SingleAnimationUsingKeyFrames.cs
- Rect3DConverter.cs
- DropTarget.cs
- QilDataSource.cs
- SerializableAttribute.cs
- ModelPropertyImpl.cs
- WorkItem.cs
- SoapIncludeAttribute.cs
- LongValidator.cs
- SqlServices.cs
- XmlDictionaryReaderQuotas.cs
- XmlSchema.cs
- TimeSpanSecondsOrInfiniteConverter.cs
- CookieProtection.cs
- QueryOpcode.cs
- Font.cs
- TypeForwardedToAttribute.cs
- CodeCommentStatementCollection.cs
- TreeChangeInfo.cs
- PointAnimation.cs
- GPStream.cs
- Enum.cs
- ScrollBar.cs
- ProviderSettingsCollection.cs
- DbDataRecord.cs
- CssClassPropertyAttribute.cs
- Stack.cs
- RegionData.cs
- BaseCAMarshaler.cs
- DataGridViewHeaderCell.cs
- StreamingContext.cs
- UrlPath.cs
- RoleGroup.cs
- DetailsViewRowCollection.cs
- ResourceProviderFactory.cs
- Brush.cs
- FixedDocumentSequencePaginator.cs
- TraceSection.cs
- WebPageTraceListener.cs
- OpenFileDialog.cs
- ServiceNameCollection.cs
- EventSinkHelperWriter.cs
- NetSectionGroup.cs
- DesignerAutoFormat.cs
- QuadraticBezierSegment.cs
- RefreshEventArgs.cs
- IndentTextWriter.cs
- SelectionRangeConverter.cs
- formatter.cs
- MailDefinition.cs
- ListViewCommandEventArgs.cs
- ApplicationCommands.cs
- LocalServiceSecuritySettings.cs
- URLAttribute.cs
- EventListenerClientSide.cs
- QueryExtender.cs
- DesignTimeParseData.cs
- Splitter.cs
- Rect3D.cs
- CodeDirectoryCompiler.cs