Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / Orcas / SP / ndp / fx / src / DataWeb / Server / System / Data / Services / Serializers / AtomServiceDocumentSerializer.cs / 1 / 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.Diagnostics; using System.IO; using System.Text; using System.Xml; using System.Data.Services.Providers; ////// 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, IDataServiceProvider provider, Encoding encoding) : base(output, baseUri, provider, encoding) { } ///Writes the Service Document to the output stream. internal override void WriteRequest() { 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 (ResourceContainer container in this.Provider.GetContainers()) { 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.Diagnostics; using System.IO; using System.Text; using System.Xml; using System.Data.Services.Providers; ////// 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, IDataServiceProvider provider, Encoding encoding) : base(output, baseUri, provider, encoding) { } ///Writes the Service Document to the output stream. internal override void WriteRequest() { 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 (ResourceContainer container in this.Provider.GetContainers()) { 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
- AssemblyCollection.cs
- Model3DCollection.cs
- ExpressionBuilderCollection.cs
- ControlBindingsCollection.cs
- TypeGeneratedEventArgs.cs
- SelectionEditor.cs
- NativeMethods.cs
- StringStorage.cs
- ControlUtil.cs
- RichTextBoxAutomationPeer.cs
- Roles.cs
- CustomAttributeSerializer.cs
- StoreContentChangedEventArgs.cs
- AttributeProviderAttribute.cs
- ItemContainerGenerator.cs
- CancelEventArgs.cs
- DataService.cs
- FlowDocumentView.cs
- DataServiceProviderMethods.cs
- ImagingCache.cs
- JsonDeserializer.cs
- MinimizableAttributeTypeConverter.cs
- OpenFileDialog.cs
- ModifierKeysValueSerializer.cs
- CheckableControlBaseAdapter.cs
- updateconfighost.cs
- SecurityResources.cs
- RequiredAttributeAttribute.cs
- EntityDataSourceReferenceGroup.cs
- ToolStripPanelRenderEventArgs.cs
- SqlDependency.cs
- SecurityTokenRequirement.cs
- DateTimeStorage.cs
- GenericEnumerator.cs
- TimeZone.cs
- MulticastOption.cs
- XmlDocumentSerializer.cs
- MultiSelectRootGridEntry.cs
- AutomationProperties.cs
- BeginEvent.cs
- BitmapScalingModeValidation.cs
- CodeThrowExceptionStatement.cs
- RelationshipEnd.cs
- BaseTreeIterator.cs
- RenamedEventArgs.cs
- SpellerHighlightLayer.cs
- BaseTransportHeaders.cs
- RelationshipNavigation.cs
- Visitors.cs
- ZipIOExtraFieldElement.cs
- SecurityException.cs
- ProcessHostMapPath.cs
- TableCell.cs
- IisTraceListener.cs
- HttpListenerPrefixCollection.cs
- WindowsListViewScroll.cs
- MemoryRecordBuffer.cs
- MailWebEventProvider.cs
- InternalEnumValidatorAttribute.cs
- UrlMapping.cs
- CharEnumerator.cs
- _ChunkParse.cs
- SmtpReplyReaderFactory.cs
- HttpsTransportBindingElement.cs
- SkinIDTypeConverter.cs
- connectionpool.cs
- CngKeyCreationParameters.cs
- XmlSchemaAnnotation.cs
- DataTemplateKey.cs
- Util.cs
- HMACSHA256.cs
- FormViewPagerRow.cs
- SecurityChannelFactory.cs
- _HeaderInfoTable.cs
- SnapshotChangeTrackingStrategy.cs
- AsyncResult.cs
- Transform3D.cs
- DataGridLength.cs
- ReachSerializerAsync.cs
- ReadOnlyDictionary.cs
- SqlCaseSimplifier.cs
- NamespaceCollection.cs
- BindingListCollectionView.cs
- FirstMatchCodeGroup.cs
- AsyncDataRequest.cs
- DefaultValidator.cs
- ShellProvider.cs
- ReferenceEqualityComparer.cs
- ProcessThread.cs
- DiscardableAttribute.cs
- UniqueID.cs
- OleDbDataReader.cs
- MonthCalendar.cs
- VisualStateGroup.cs
- ByteAnimationBase.cs
- SmiXetterAccessMap.cs
- MergeLocalizationDirectives.cs
- Typography.cs
- SrgsSubset.cs
- SchemaNotation.cs