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
- ZipFileInfoCollection.cs
- CodeDirectoryCompiler.cs
- PartitionResolver.cs
- MediaContext.cs
- ToolStripButton.cs
- SqlConnectionManager.cs
- httpapplicationstate.cs
- PointAnimationUsingPath.cs
- ArrayHelper.cs
- Comparer.cs
- ContextStack.cs
- TreeNodeSelectionProcessor.cs
- LocalizableResourceBuilder.cs
- ActivityInstanceReference.cs
- LineServicesRun.cs
- ObjectStateFormatter.cs
- RandomNumberGenerator.cs
- XmlElementCollection.cs
- Command.cs
- FormViewDeleteEventArgs.cs
- ThemeDirectoryCompiler.cs
- ZipIOBlockManager.cs
- RectangleHotSpot.cs
- SkipStoryboardToFill.cs
- ChtmlPageAdapter.cs
- ImageInfo.cs
- DetailsViewPagerRow.cs
- DependencyPropertyChangedEventArgs.cs
- ExtensibleClassFactory.cs
- TriggerActionCollection.cs
- Decimal.cs
- ScrollChrome.cs
- RadioButtonBaseAdapter.cs
- XmlSchemaAttributeGroupRef.cs
- DependencyPropertyKind.cs
- followingquery.cs
- UriParserTemplates.cs
- TypeReference.cs
- MetaColumn.cs
- EntitySqlException.cs
- MailWebEventProvider.cs
- WSSecurityOneDotZeroSendSecurityHeader.cs
- MediaElementAutomationPeer.cs
- DocumentPageView.cs
- DomainLiteralReader.cs
- InplaceBitmapMetadataWriter.cs
- SuppressIldasmAttribute.cs
- PropertyMapper.cs
- ResourceDescriptionAttribute.cs
- SoapSchemaExporter.cs
- DataIdProcessor.cs
- ViewGenerator.cs
- QueryCreatedEventArgs.cs
- COM2IPerPropertyBrowsingHandler.cs
- RuntimeHelpers.cs
- XmlSiteMapProvider.cs
- XmlHierarchicalEnumerable.cs
- XpsFilter.cs
- CodeValidator.cs
- FrameworkObject.cs
- StorageRoot.cs
- securitycriticaldata.cs
- ClientSettingsSection.cs
- Unit.cs
- ExpressionBindingCollection.cs
- TransportConfigurationTypeElementCollection.cs
- RangeValuePatternIdentifiers.cs
- Property.cs
- UmAlQuraCalendar.cs
- SuppressIldasmAttribute.cs
- DataSourceCacheDurationConverter.cs
- ConsoleKeyInfo.cs
- CodeDOMProvider.cs
- DynamicArgumentDesigner.xaml.cs
- LocalIdKeyIdentifierClause.cs
- DataSetFieldSchema.cs
- ObjectStateEntryOriginalDbUpdatableDataRecord.cs
- StaticResourceExtension.cs
- CannotUnloadAppDomainException.cs
- Maps.cs
- UInt32Storage.cs
- UriTemplate.cs
- IndentedWriter.cs
- PropertyMapper.cs
- FixedTextBuilder.cs
- SecurityUtils.cs
- BitmapSizeOptions.cs
- PagesSection.cs
- DataDocumentXPathNavigator.cs
- DPCustomTypeDescriptor.cs
- NavigationWindow.cs
- EncodedStreamFactory.cs
- PasswordDeriveBytes.cs
- CharAnimationBase.cs
- IfAction.cs
- EqualityComparer.cs
- X509Certificate.cs
- XmlElementCollection.cs
- WebPartDescription.cs
- EntityContainerRelationshipSet.cs