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
- DataGridTextColumn.cs
- StrongTypingException.cs
- ToolboxDataAttribute.cs
- basenumberconverter.cs
- BounceEase.cs
- XmlChoiceIdentifierAttribute.cs
- HttpException.cs
- SoapTypeAttribute.cs
- BuildManager.cs
- ListViewCommandEventArgs.cs
- MetadataFile.cs
- ObfuscateAssemblyAttribute.cs
- _ShellExpression.cs
- Optimizer.cs
- InputMethodStateChangeEventArgs.cs
- PersonalizationEntry.cs
- LogicalTreeHelper.cs
- SystemWebExtensionsSectionGroup.cs
- TabControlCancelEvent.cs
- OperatorExpressions.cs
- HtmlControl.cs
- TreeView.cs
- DefaultValueTypeConverter.cs
- AttributeSetAction.cs
- ButtonBase.cs
- CultureInfoConverter.cs
- TemplatePropertyEntry.cs
- IndexerNameAttribute.cs
- DataGridViewRowStateChangedEventArgs.cs
- AsmxEndpointPickerExtension.cs
- SizeAnimationClockResource.cs
- ServiceModelStringsVersion1.cs
- EventHandlingScope.cs
- CompoundFileIOPermission.cs
- GraphicsPath.cs
- WebConfigurationManager.cs
- MemberPath.cs
- ExpressionVisitorHelpers.cs
- HyperLinkStyle.cs
- odbcmetadatafactory.cs
- MultipleViewPattern.cs
- PointAnimationUsingKeyFrames.cs
- DateBoldEvent.cs
- HitTestDrawingContextWalker.cs
- WaitHandle.cs
- ToolBarButtonClickEvent.cs
- HttpServerUtilityBase.cs
- CacheMemory.cs
- ArrayTypeMismatchException.cs
- InputLangChangeRequestEvent.cs
- SourceFileBuildProvider.cs
- ProviderCommandInfoUtils.cs
- SafeHandles.cs
- HandlerBase.cs
- ListViewItem.cs
- StateRuntime.cs
- FormViewModeEventArgs.cs
- RawUIStateInputReport.cs
- ProgressBar.cs
- DefaultTextStore.cs
- MachineKeyConverter.cs
- OperationExecutionFault.cs
- SerializationSectionGroup.cs
- CodeDOMUtility.cs
- ConnectionPointCookie.cs
- DnsPermission.cs
- ProxyGenerationError.cs
- RuleInfoComparer.cs
- TextTreeInsertElementUndoUnit.cs
- WebPartConnectVerb.cs
- FocusWithinProperty.cs
- TransformerConfigurationWizardBase.cs
- SystemResourceKey.cs
- BindingElementExtensionElement.cs
- PeerApplication.cs
- ErrorStyle.cs
- DataTable.cs
- ActionFrame.cs
- ValueOfAction.cs
- HttpConfigurationSystem.cs
- CommonGetThemePartSize.cs
- TrackBar.cs
- CodeComment.cs
- ConfigurationCollectionAttribute.cs
- SHA256.cs
- SmtpTransport.cs
- Group.cs
- FolderLevelBuildProvider.cs
- ReadOnlyMetadataCollection.cs
- ToolStripButton.cs
- DeviceContext.cs
- SqlMultiplexer.cs
- DataGridViewCellContextMenuStripNeededEventArgs.cs
- GridViewCellAutomationPeer.cs
- DataGridViewHeaderCell.cs
- XamlSerializerUtil.cs
- DataSourceProvider.cs
- DataControlFieldCell.cs
- EndOfStreamException.cs
- XmlILOptimizerVisitor.cs