Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / Orcas / NetFXw7 / 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
- MobileControlBuilder.cs
- TemplateControlCodeDomTreeGenerator.cs
- RequestCachePolicyConverter.cs
- ListBindingHelper.cs
- Menu.cs
- ExceptionUtil.cs
- RemoteWebConfigurationHost.cs
- WindowsListViewGroupHelper.cs
- TreeNodeCollection.cs
- TrustLevel.cs
- URIFormatException.cs
- OlePropertyStructs.cs
- LabelLiteral.cs
- WaveHeader.cs
- XmlCollation.cs
- GACMembershipCondition.cs
- UriPrefixTable.cs
- login.cs
- Hash.cs
- NavigatingCancelEventArgs.cs
- Internal.cs
- UnsupportedPolicyOptionsException.cs
- SqlNodeAnnotation.cs
- TrackingWorkflowEventArgs.cs
- Rect3D.cs
- MetadataSource.cs
- PerformanceCounterCategory.cs
- Int32.cs
- SQLDouble.cs
- DBSqlParserTable.cs
- DataRecordObjectView.cs
- FamilyCollection.cs
- CursorInteropHelper.cs
- ClipboardProcessor.cs
- SqlGenerator.cs
- DbConnectionOptions.cs
- ContentFilePart.cs
- DataGridViewDataErrorEventArgs.cs
- MetadataFile.cs
- CollectionViewGroupInternal.cs
- RegexCharClass.cs
- SkipQueryOptionExpression.cs
- TabControlCancelEvent.cs
- DataPagerField.cs
- XmlCountingReader.cs
- RawUIStateInputReport.cs
- DataChangedEventManager.cs
- SplitContainer.cs
- CursorConverter.cs
- CalendarDateRange.cs
- TypeLoadException.cs
- CreateUserWizard.cs
- XmlMembersMapping.cs
- GcSettings.cs
- DoubleIndependentAnimationStorage.cs
- XmlDocumentSerializer.cs
- SHA512.cs
- FixedSOMTable.cs
- HelloOperation11AsyncResult.cs
- X509Utils.cs
- HttpModulesSection.cs
- UpdateException.cs
- XmlSchemaObject.cs
- Help.cs
- MenuItemBindingCollection.cs
- safePerfProviderHandle.cs
- SiteMapProvider.cs
- EnumerableRowCollectionExtensions.cs
- InstanceDataCollection.cs
- PageCatalogPart.cs
- InitializerFacet.cs
- SqlClientFactory.cs
- loginstatus.cs
- ProgressChangedEventArgs.cs
- ConfigXmlAttribute.cs
- MasterPage.cs
- FlowPanelDesigner.cs
- DES.cs
- SerializationStore.cs
- ConnectionStringsSection.cs
- MultiByteCodec.cs
- SymmetricKeyWrap.cs
- ConfigXmlText.cs
- SqlDependency.cs
- ToolZone.cs
- VirtualPath.cs
- AnnotationHelper.cs
- Range.cs
- Base64Encoder.cs
- WebPartUserCapability.cs
- TemplateModeChangedEventArgs.cs
- GregorianCalendarHelper.cs
- EntityCommandExecutionException.cs
- SymLanguageVendor.cs
- PersonalizationProvider.cs
- XpsFilter.cs
- BitmapCodecInfo.cs
- SqlClientFactory.cs
- SQLInt16Storage.cs
- Stroke.cs