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
![Network programming in C#, Network Programming in VB.NET, Network Programming in .NET](/images/book.jpg)
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- Config.cs
- Vector3D.cs
- PreloadedPackages.cs
- Sentence.cs
- SeverityFilter.cs
- Hashtable.cs
- AuthenticationConfig.cs
- Translator.cs
- SettingsPropertyCollection.cs
- GlobalProxySelection.cs
- complextypematerializer.cs
- WebBrowserDocumentCompletedEventHandler.cs
- CompatibleIComparer.cs
- MessageLoggingElement.cs
- KeyGestureConverter.cs
- UserNameSecurityTokenAuthenticator.cs
- SqlDataSourceSelectingEventArgs.cs
- GenericAuthenticationEventArgs.cs
- Tile.cs
- PrimarySelectionGlyph.cs
- TreeNodeCollectionEditorDialog.cs
- BitmapEncoder.cs
- TdsValueSetter.cs
- ContractTypeNameElement.cs
- TextFormatterImp.cs
- SoundPlayer.cs
- GenericRootAutomationPeer.cs
- FunctionNode.cs
- Size3D.cs
- ClientRequest.cs
- ContextQuery.cs
- RegexStringValidatorAttribute.cs
- RectAnimationBase.cs
- DeploymentSectionCache.cs
- VectorKeyFrameCollection.cs
- ManipulationBoundaryFeedbackEventArgs.cs
- HiddenFieldPageStatePersister.cs
- FontConverter.cs
- InvokeGenerator.cs
- DataGridPageChangedEventArgs.cs
- DataGridAutoGeneratingColumnEventArgs.cs
- ActivityDesigner.cs
- EventItfInfo.cs
- DataServiceHost.cs
- EventInfo.cs
- SqlBulkCopyColumnMapping.cs
- CryptoConfig.cs
- DialogWindow.cs
- SetIterators.cs
- OrthographicCamera.cs
- Domain.cs
- DocobjHost.cs
- BooleanConverter.cs
- HtmlEmptyTagControlBuilder.cs
- UnsafeNativeMethods.cs
- ScriptControlDescriptor.cs
- SemaphoreSecurity.cs
- ValidationEventArgs.cs
- TraceContextEventArgs.cs
- ClientRuntimeConfig.cs
- ToolBarPanel.cs
- CheckoutException.cs
- XmlNodeList.cs
- cookiecontainer.cs
- SqlServer2KCompatibilityCheck.cs
- EventToken.cs
- WebContext.cs
- OracleConnectionFactory.cs
- TabItemAutomationPeer.cs
- PointCollection.cs
- X509Certificate2Collection.cs
- DataBoundControlHelper.cs
- ExpressionEvaluator.cs
- ExpandedWrapper.cs
- TemplatePartAttribute.cs
- Decoder.cs
- VersionConverter.cs
- ButtonRenderer.cs
- DateTimeValueSerializerContext.cs
- TreeNode.cs
- BindUriHelper.cs
- HtmlTable.cs
- ToolStripLocationCancelEventArgs.cs
- BigInt.cs
- OrthographicCamera.cs
- SkewTransform.cs
- DataGridColumnCollection.cs
- GenericWebPart.cs
- MissingFieldException.cs
- MessageEncoderFactory.cs
- Exception.cs
- DataGridViewComboBoxCell.cs
- ReturnValue.cs
- GridViewSortEventArgs.cs
- SafeNativeMethodsOther.cs
- ReadOnlyNameValueCollection.cs
- ScrollBarAutomationPeer.cs
- ExpandoObject.cs
- TextParagraphCache.cs
- DrawingDrawingContext.cs