Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / DataWeb / Server / System / Data / Services / Serializers / AtomServiceDocumentSerializer.cs / 1305376 / 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.Data.Services.Providers; using System.Diagnostics; using System.IO; using System.Text; using System.Xml; ////// 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, DataServiceProviderWrapper provider, Encoding encoding) : base(output, baseUri, provider, encoding) { } ///Writes the Service Document to the output stream. /// Data service instance. internal override void WriteRequest(IDataService service) { 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 (ResourceSetWrapper container in this.Provider.ResourceSets) { 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.Data.Services.Providers; using System.Diagnostics; using System.IO; using System.Text; using System.Xml; ////// 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, DataServiceProviderWrapper provider, Encoding encoding) : base(output, baseUri, provider, encoding) { } ///Writes the Service Document to the output stream. /// Data service instance. internal override void WriteRequest(IDataService service) { 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 (ResourceSetWrapper container in this.Provider.ResourceSets) { 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
- IndentTextWriter.cs
- Mappings.cs
- IPipelineRuntime.cs
- XmlWriterSettings.cs
- assertwrapper.cs
- SingleTagSectionHandler.cs
- UIPermission.cs
- Invariant.cs
- Region.cs
- DrawingContextWalker.cs
- MetadataPropertyCollection.cs
- EntityModelSchemaGenerator.cs
- EntityClientCacheKey.cs
- Config.cs
- TextEditorCopyPaste.cs
- ToolStripSettings.cs
- PassportAuthenticationModule.cs
- ExceptionUtil.cs
- OrderedParallelQuery.cs
- SystemIPv6InterfaceProperties.cs
- CodeSubDirectoriesCollection.cs
- XmlFormatExtensionPrefixAttribute.cs
- ImageInfo.cs
- XmlNamespaceManager.cs
- ColumnHeader.cs
- InstanceCreationEditor.cs
- VersionedStream.cs
- DiscoveryEndpointElement.cs
- Action.cs
- EncodingNLS.cs
- Image.cs
- ImageDesigner.cs
- EntityDataSourceContainerNameItem.cs
- SchemaTypeEmitter.cs
- BoundingRectTracker.cs
- FilteredAttributeCollection.cs
- XamlBrushSerializer.cs
- MultiViewDesigner.cs
- RSAOAEPKeyExchangeDeformatter.cs
- XmlNodeList.cs
- OleDbFactory.cs
- PathSegmentCollection.cs
- HtmlInputFile.cs
- Fonts.cs
- ColorMap.cs
- TableLayout.cs
- StorageMappingFragment.cs
- SiteMapNode.cs
- ReaderWriterLock.cs
- CompatibleIComparer.cs
- DynamicILGenerator.cs
- Config.cs
- CustomSignedXml.cs
- ObjectPersistData.cs
- OverflowException.cs
- DbProviderSpecificTypePropertyAttribute.cs
- ItemsPresenter.cs
- IDataContractSurrogate.cs
- Path.cs
- IHttpResponseInternal.cs
- NativeMethodsOther.cs
- XPathNodeInfoAtom.cs
- EntitySetBase.cs
- BitmapCodecInfo.cs
- PointLight.cs
- ValidatingCollection.cs
- VirtualDirectoryMapping.cs
- basemetadatamappingvisitor.cs
- TextInfo.cs
- IOException.cs
- RoleManagerEventArgs.cs
- RolePrincipal.cs
- MeshGeometry3D.cs
- AttributeCollection.cs
- WebPartConnectionsCloseVerb.cs
- RadioButtonBaseAdapter.cs
- HttpModuleAction.cs
- InheritanceService.cs
- FormatConvertedBitmap.cs
- ColorConvertedBitmapExtension.cs
- XmlCustomFormatter.cs
- IOException.cs
- NativeMethods.cs
- PenThread.cs
- DBParameter.cs
- SystemColors.cs
- SystemEvents.cs
- MailAddressParser.cs
- AddInStore.cs
- XmlExpressionDumper.cs
- ColorPalette.cs
- XMLDiffLoader.cs
- Transform.cs
- Relationship.cs
- _AutoWebProxyScriptWrapper.cs
- XmlSchemaChoice.cs
- GeneralTransform3D.cs
- TreeViewEvent.cs
- RealProxy.cs
- PictureBox.cs