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
- ScrollProperties.cs
- __FastResourceComparer.cs
- ChannelServices.cs
- TypeBuilder.cs
- IndexedGlyphRun.cs
- SectionRecord.cs
- CaseInsensitiveOrdinalStringComparer.cs
- XsdBuilder.cs
- FontUnit.cs
- SimpleTypesSurrogate.cs
- ArraySegment.cs
- SingleSelectRootGridEntry.cs
- ListBoxItemWrapperAutomationPeer.cs
- CreateUserErrorEventArgs.cs
- SafeReadContext.cs
- RelatedPropertyManager.cs
- MultitargetUtil.cs
- WhileDesigner.cs
- IdentityHolder.cs
- SafeSecurityHelper.cs
- SchemaNames.cs
- SafeLibraryHandle.cs
- BrowserTree.cs
- FrameworkContextData.cs
- MouseDevice.cs
- SoapSchemaImporter.cs
- SiteMapDesignerDataSourceView.cs
- ProfileSettings.cs
- QueryExpr.cs
- HwndHostAutomationPeer.cs
- DesignerObject.cs
- DSASignatureFormatter.cs
- CustomErrorCollection.cs
- BufferBuilder.cs
- NameSpaceExtractor.cs
- ConfigurationStrings.cs
- SizeValueSerializer.cs
- ExpandSegment.cs
- LinkLabelLinkClickedEvent.cs
- RoutedEventHandlerInfo.cs
- XPathScanner.cs
- DoubleStorage.cs
- ArrayList.cs
- DynamicDocumentPaginator.cs
- TemplateKey.cs
- WebPartsSection.cs
- ColorConvertedBitmap.cs
- CollectionViewProxy.cs
- RepeaterItem.cs
- EnglishPluralizationService.cs
- TransformerInfo.cs
- XXXInfos.cs
- EndpointDispatcherTable.cs
- RTLAwareMessageBox.cs
- CodeBinaryOperatorExpression.cs
- ParserContext.cs
- GridViewAutomationPeer.cs
- NamespaceQuery.cs
- DefaultProxySection.cs
- SafeEventLogWriteHandle.cs
- AngleUtil.cs
- HttpClientProtocol.cs
- NonSerializedAttribute.cs
- SchemaImporterExtensionElementCollection.cs
- EntityDesignerUtils.cs
- WebEventTraceProvider.cs
- XmlILAnnotation.cs
- GcHandle.cs
- ReadOnlyCollectionBase.cs
- EdmRelationshipNavigationPropertyAttribute.cs
- _ConnectStream.cs
- SmiMetaDataProperty.cs
- UserControl.cs
- ToolStripGripRenderEventArgs.cs
- IdentityReference.cs
- Rect3DConverter.cs
- CreateUserWizardStep.cs
- DecoderReplacementFallback.cs
- RadioButtonStandardAdapter.cs
- QueryUtil.cs
- OleDbCommandBuilder.cs
- SubMenuStyleCollection.cs
- DataBoundLiteralControl.cs
- SequenceNumber.cs
- QueryContext.cs
- HeaderFilter.cs
- UxThemeWrapper.cs
- GlobalizationSection.cs
- FlowLayout.cs
- DataGridColumnCollection.cs
- DocumentViewerBaseAutomationPeer.cs
- SpnegoTokenAuthenticator.cs
- BamlLocalizabilityResolver.cs
- FirstQueryOperator.cs
- DrawingContextFlattener.cs
- DropDownList.cs
- SqlDataSourceView.cs
- ConnectionStringSettings.cs
- ForAllOperator.cs
- TextProviderWrapper.cs