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
- SmtpReplyReaderFactory.cs
- InfoCardCryptoHelper.cs
- Identity.cs
- WriterOutput.cs
- SqlDuplicator.cs
- ConfigXmlAttribute.cs
- URLAttribute.cs
- StyleSheet.cs
- SamlEvidence.cs
- OutputBuffer.cs
- TextBoxView.cs
- CustomAttributeBuilder.cs
- CodeIdentifiers.cs
- StorageMappingItemCollection.cs
- ToolStripItemRenderEventArgs.cs
- TableCell.cs
- ObjectDataProvider.cs
- HierarchicalDataSourceControl.cs
- ListenerServiceInstallComponent.cs
- FlowStep.cs
- ConfigurationSettings.cs
- SiteMapProvider.cs
- HttpGetProtocolReflector.cs
- Color.cs
- DetailsViewUpdatedEventArgs.cs
- CustomError.cs
- HtmlInputReset.cs
- formatter.cs
- ConstraintManager.cs
- WebPartManagerInternals.cs
- PageThemeParser.cs
- DataGridRow.cs
- HyperLinkColumn.cs
- Empty.cs
- DrawingGroup.cs
- XmlHierarchicalEnumerable.cs
- EntityPropertyMappingAttribute.cs
- MenuItem.cs
- HealthMonitoringSectionHelper.cs
- Scene3D.cs
- ProtectedConfiguration.cs
- WindowsAuthenticationModule.cs
- WebPartEventArgs.cs
- PathGradientBrush.cs
- infer.cs
- COM2ColorConverter.cs
- XmlIlVisitor.cs
- EdmConstants.cs
- IsolatedStorageFilePermission.cs
- ApplicationInfo.cs
- TextServicesDisplayAttribute.cs
- Privilege.cs
- PartitionedStream.cs
- storepermission.cs
- ConsoleKeyInfo.cs
- UriParserTemplates.cs
- FrameworkReadOnlyPropertyMetadata.cs
- OciHandle.cs
- PathParser.cs
- sortedlist.cs
- ConfigPathUtility.cs
- WebConfigurationHost.cs
- OleDbTransaction.cs
- CodeExpressionStatement.cs
- SelectedGridItemChangedEvent.cs
- GridViewUpdatedEventArgs.cs
- XamlStream.cs
- InputMethodStateTypeInfo.cs
- CalendarBlackoutDatesCollection.cs
- BitSet.cs
- Vector3D.cs
- SqlClientWrapperSmiStream.cs
- StorageAssociationSetMapping.cs
- StyleXamlParser.cs
- SigningDialog.cs
- EntityReference.cs
- WaitHandle.cs
- RTLAwareMessageBox.cs
- ImageMapEventArgs.cs
- XpsSerializerFactory.cs
- CurrentChangedEventManager.cs
- CustomErrorsSectionWrapper.cs
- MemberPath.cs
- ScriptComponentDescriptor.cs
- Transform.cs
- TrackingCondition.cs
- ListComponentEditor.cs
- Site.cs
- EventManager.cs
- PageThemeBuildProvider.cs
- Clock.cs
- SecurityException.cs
- DoubleCollectionValueSerializer.cs
- MultiPageTextView.cs
- RubberbandSelector.cs
- PageEventArgs.cs
- Speller.cs
- DictionaryMarkupSerializer.cs
- Pair.cs
- XsltFunctions.cs