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
- XmlAtomErrorReader.cs
- TypePresenter.xaml.cs
- XmlIlGenerator.cs
- MouseButtonEventArgs.cs
- ConstraintCollection.cs
- PointAnimationUsingPath.cs
- PeerApplication.cs
- PublisherMembershipCondition.cs
- QueryCreatedEventArgs.cs
- FunctionNode.cs
- VSWCFServiceContractGenerator.cs
- ShaderRenderModeValidation.cs
- ApplicationManager.cs
- SemaphoreFullException.cs
- ProcessManager.cs
- ZipIOZip64EndOfCentralDirectoryBlock.cs
- ExtenderControl.cs
- mansign.cs
- BaseUriHelper.cs
- DependsOnAttribute.cs
- XDRSchema.cs
- ConfigXmlText.cs
- FusionWrap.cs
- PartialClassGenerationTaskInternal.cs
- WebReferenceCollection.cs
- GPRECT.cs
- PasswordRecovery.cs
- SQLResource.cs
- ToolStrip.cs
- DataGridLinkButton.cs
- Point3DCollectionConverter.cs
- WorkflowMarkupElementEventArgs.cs
- OperandQuery.cs
- MenuItem.cs
- ConfigurationElement.cs
- TypeUnloadedException.cs
- CodeBinaryOperatorExpression.cs
- XmlIgnoreAttribute.cs
- BatchParser.cs
- ErrorFormatter.cs
- PointValueSerializer.cs
- PropertyInformation.cs
- LogManagementAsyncResult.cs
- UInt64Storage.cs
- ObjectDataSourceView.cs
- TextEndOfParagraph.cs
- TreeNodeSelectionProcessor.cs
- CommonProperties.cs
- IntegrationExceptionEventArgs.cs
- CursorEditor.cs
- LinqDataSourceUpdateEventArgs.cs
- WorkflowInstanceProvider.cs
- KerberosRequestorSecurityToken.cs
- TimerExtension.cs
- Range.cs
- DataGridViewColumnConverter.cs
- ReadingWritingEntityEventArgs.cs
- SqlMethods.cs
- SqlWorkflowPersistenceService.cs
- IndentedTextWriter.cs
- PlaceHolder.cs
- Schema.cs
- WorkflowElementDialogWindow.xaml.cs
- WebEventTraceProvider.cs
- ToolZoneDesigner.cs
- RelationalExpressions.cs
- IdentityNotMappedException.cs
- SqlClientWrapperSmiStream.cs
- XNodeNavigator.cs
- CustomCredentialPolicy.cs
- RegistrySecurity.cs
- Rect3DConverter.cs
- ZipIORawDataFileBlock.cs
- Timeline.cs
- WebHttpBindingElement.cs
- Profiler.cs
- SpeechUI.cs
- FullTextState.cs
- Accessible.cs
- AncillaryOps.cs
- CustomTypeDescriptor.cs
- Win32PrintDialog.cs
- UnsafeNativeMethods.cs
- CodeAttributeArgumentCollection.cs
- GeneralTransformCollection.cs
- ValidatorCollection.cs
- WebConfigurationHostFileChange.cs
- XamlStyleSerializer.cs
- CacheDict.cs
- NativeRightsManagementAPIsStructures.cs
- HtmlControlDesigner.cs
- EditBehavior.cs
- TemplateBindingExpression.cs
- BaseInfoTable.cs
- OrderPreservingSpoolingTask.cs
- RegexMatchCollection.cs
- ContainerParaClient.cs
- CompressEmulationStream.cs
- HttpInputStream.cs
- CryptoConfig.cs