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
- TabItemWrapperAutomationPeer.cs
- ObjRef.cs
- RepeatInfo.cs
- TextTreeInsertElementUndoUnit.cs
- WindowsHyperlink.cs
- MenuCommandsChangedEventArgs.cs
- SchemaImporterExtensionsSection.cs
- GridViewColumnHeader.cs
- AsyncDataRequest.cs
- XmlAnyElementAttributes.cs
- TagPrefixCollection.cs
- WebPartZoneBase.cs
- Point3D.cs
- IdentitySection.cs
- StreamGeometry.cs
- TreeView.cs
- OrderablePartitioner.cs
- CodeGeneratorAttribute.cs
- SiteMapDataSourceView.cs
- HandledMouseEvent.cs
- WbemException.cs
- ToolStripCollectionEditor.cs
- TreeWalkHelper.cs
- Message.cs
- GlyphRunDrawing.cs
- FaultImportOptions.cs
- CombinedGeometry.cs
- XamlGridLengthSerializer.cs
- AppDomainShutdownMonitor.cs
- DataPager.cs
- ParseChildrenAsPropertiesAttribute.cs
- BitHelper.cs
- ObjectIDGenerator.cs
- Maps.cs
- HostSecurityManager.cs
- SqlDependencyListener.cs
- SpeechAudioFormatInfo.cs
- ExtendedPropertyInfo.cs
- DataGridViewComboBoxCell.cs
- TrackingMemoryStream.cs
- WebServiceHost.cs
- RawStylusActions.cs
- TextServicesCompartmentContext.cs
- DataSourceCollectionBase.cs
- IsolatedStorageException.cs
- DataServiceQueryProvider.cs
- CompilerParameters.cs
- WindowsStatusBar.cs
- DelegatingConfigHost.cs
- ExpressionList.cs
- WSDualHttpBindingElement.cs
- CheckBoxRenderer.cs
- ScriptResourceAttribute.cs
- TypeDescriptionProvider.cs
- TTSEngineProxy.cs
- Command.cs
- IISUnsafeMethods.cs
- TextServicesDisplayAttribute.cs
- BindingCollectionElement.cs
- GeometryGroup.cs
- UDPClient.cs
- SHA256Managed.cs
- ItemCollectionEditor.cs
- SafeRightsManagementPubHandle.cs
- XslCompiledTransform.cs
- DirtyTextRange.cs
- QueryInterceptorAttribute.cs
- PointAnimationBase.cs
- Int16Storage.cs
- dbenumerator.cs
- ContentPlaceHolder.cs
- LayoutDump.cs
- StorageSetMapping.cs
- BitmapMetadataBlob.cs
- BlockUIContainer.cs
- ModelTreeEnumerator.cs
- XslException.cs
- TreeNodeBindingDepthConverter.cs
- DynamicDiscoSearcher.cs
- LinkButton.cs
- PropertyInformation.cs
- TemplateControl.cs
- RSAPKCS1SignatureDeformatter.cs
- XMLUtil.cs
- ComboBox.cs
- Drawing.cs
- PerformanceCounterLib.cs
- AutomationPattern.cs
- AudioDeviceOut.cs
- Point4D.cs
- WorkflowViewElement.cs
- ProxyHwnd.cs
- XmlStrings.cs
- IsolatedStorageFilePermission.cs
- WebAdminConfigurationHelper.cs
- NativeBuffer.cs
- RuntimeCompatibilityAttribute.cs
- PropertiesTab.cs
- DataGridViewSortCompareEventArgs.cs
- WeakReferenceEnumerator.cs