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
- CodePageEncoding.cs
- HandoffBehavior.cs
- ServiceObjectContainer.cs
- ConstantSlot.cs
- AlignmentYValidation.cs
- CodeConstructor.cs
- ParallelTimeline.cs
- Cursor.cs
- Size.cs
- StyleReferenceConverter.cs
- ConstrainedDataObject.cs
- Delegate.cs
- SafeCryptHandles.cs
- TypeConverters.cs
- SafeCloseHandleCritical.cs
- DefinitionUpdate.cs
- Column.cs
- SqlCacheDependencyDatabase.cs
- HttpAsyncResult.cs
- ChameleonKey.cs
- HelpEvent.cs
- FormsAuthenticationTicket.cs
- OdbcCommandBuilder.cs
- DataGridViewCellErrorTextNeededEventArgs.cs
- RowToFieldTransformer.cs
- HeaderedItemsControl.cs
- CacheVirtualItemsEvent.cs
- ConstraintStruct.cs
- XmlSchemaIdentityConstraint.cs
- ContractMethodInfo.cs
- MessageQueue.cs
- AppearanceEditorPart.cs
- CapabilitiesRule.cs
- ServiceChannelProxy.cs
- UndoManager.cs
- SchemaSetCompiler.cs
- TextSelectionProcessor.cs
- XsdDataContractExporter.cs
- XmlUtil.cs
- FormViewCommandEventArgs.cs
- TextDecorationCollection.cs
- _ShellExpression.cs
- DBSchemaRow.cs
- HostingEnvironment.cs
- PassportAuthenticationModule.cs
- LogStore.cs
- Int32Storage.cs
- DBPropSet.cs
- FamilyTypeface.cs
- AlphabeticalEnumConverter.cs
- BitmapSource.cs
- WindowsSecurityTokenAuthenticator.cs
- RelationshipConverter.cs
- ModelUIElement3D.cs
- InvalidComObjectException.cs
- ContainerFilterService.cs
- X509Utils.cs
- Rotation3DAnimationBase.cs
- LineServicesRun.cs
- ListenerUnsafeNativeMethods.cs
- SqlLiftIndependentRowExpressions.cs
- DesignTimeParseData.cs
- DataGridViewAutoSizeColumnsModeEventArgs.cs
- XmlSequenceWriter.cs
- LocationSectionRecord.cs
- OleDbStruct.cs
- BufferedGraphicsManager.cs
- TagPrefixCollection.cs
- UnionExpr.cs
- SqlDataSourceCommandEventArgs.cs
- SynchronizedInputAdaptor.cs
- WriteTimeStream.cs
- ProcessModelInfo.cs
- SqlCharStream.cs
- ToolStripDropDownClosingEventArgs.cs
- PinProtectionHelper.cs
- FixUpCollection.cs
- BypassElementCollection.cs
- Vector.cs
- PerformanceCounterLib.cs
- CardSpaceException.cs
- OleAutBinder.cs
- BamlMapTable.cs
- WindowsContainer.cs
- Pointer.cs
- UnionExpr.cs
- EditingMode.cs
- WebPartCloseVerb.cs
- StringValidatorAttribute.cs
- DiscoveryMessageSequenceGenerator.cs
- LinearGradientBrush.cs
- Predicate.cs
- PrimitiveSchema.cs
- TextMessageEncodingElement.cs
- ExpandSegment.cs
- TextPointer.cs
- SSmlParser.cs
- CodeArrayIndexerExpression.cs
- BrowserDefinition.cs
- Types.cs