Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / Orcas / QFE / 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
- SourceLocationProvider.cs
- MembershipValidatePasswordEventArgs.cs
- TableAdapterManagerHelper.cs
- ReferenceEqualityComparer.cs
- SubclassTypeValidatorAttribute.cs
- VectorValueSerializer.cs
- XmlSchemaAnyAttribute.cs
- CalendarButton.cs
- OuterGlowBitmapEffect.cs
- HtmlTableRowCollection.cs
- DesignBindingValueUIHandler.cs
- XmlSchemaAnnotated.cs
- SizeConverter.cs
- TrustLevelCollection.cs
- Rfc2898DeriveBytes.cs
- EmissiveMaterial.cs
- CollectionsUtil.cs
- CompositeCollection.cs
- PolicyValidationException.cs
- ExtenderControl.cs
- TextRangeEdit.cs
- SqlProviderServices.cs
- ObjectTag.cs
- ItemMap.cs
- GC.cs
- SerializationObjectManager.cs
- WindowsRegion.cs
- BulletChrome.cs
- DataSetUtil.cs
- Vector3DCollectionConverter.cs
- EntityDataSourceContextCreatedEventArgs.cs
- Rectangle.cs
- RayHitTestParameters.cs
- NetWebProxyFinder.cs
- MsmqIntegrationAppDomainProtocolHandler.cs
- TextRange.cs
- HitTestWithGeometryDrawingContextWalker.cs
- HttpChannelHelpers.cs
- ConfigsHelper.cs
- SmiRequestExecutor.cs
- TemplateField.cs
- BindingsCollection.cs
- CellRelation.cs
- DirectoryNotFoundException.cs
- DataGridViewSelectedCellCollection.cs
- TrustSection.cs
- XamlSerializationHelper.cs
- CodeIterationStatement.cs
- FixedSOMPage.cs
- MarkupCompilePass1.cs
- ExceptionHandlers.cs
- DeclaredTypeValidator.cs
- DataObject.cs
- IChannel.cs
- LoaderAllocator.cs
- SecurityRuntime.cs
- ObjectDataSourceStatusEventArgs.cs
- LineVisual.cs
- UshortList2.cs
- RichTextBoxAutomationPeer.cs
- WriteableOnDemandPackagePart.cs
- _NTAuthentication.cs
- FieldNameLookup.cs
- SelectQueryOperator.cs
- SignatureDescription.cs
- Context.cs
- ClaimComparer.cs
- OracleParameter.cs
- PermissionSetEnumerator.cs
- SqlBuffer.cs
- PageWrapper.cs
- CurrencyWrapper.cs
- EndOfStreamException.cs
- smtpconnection.cs
- IndexOutOfRangeException.cs
- CharConverter.cs
- Visual3D.cs
- SymmetricAlgorithm.cs
- ControlValuePropertyAttribute.cs
- XmlElementAttributes.cs
- RequestQueue.cs
- EventBookmark.cs
- CachedTypeface.cs
- ThaiBuddhistCalendar.cs
- Registry.cs
- StorageAssociationTypeMapping.cs
- CacheVirtualItemsEvent.cs
- StringFreezingAttribute.cs
- Comparer.cs
- JpegBitmapDecoder.cs
- DynamicILGenerator.cs
- BitmapImage.cs
- ListBoxItemWrapperAutomationPeer.cs
- DataGridViewElement.cs
- DelegateHelpers.Generated.cs
- MergeFailedEvent.cs
- EndpointConfigContainer.cs
- ChannelRequirements.cs
- EditCommandColumn.cs
- GraphicsPath.cs