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
- ReachVisualSerializer.cs
- WebPartZoneCollection.cs
- MetadataArtifactLoaderCompositeFile.cs
- DeploymentExceptionMapper.cs
- querybuilder.cs
- ChannelRequirements.cs
- BitmapEffectInputConnector.cs
- MetafileEditor.cs
- CodeSubDirectoriesCollection.cs
- ReservationNotFoundException.cs
- IOException.cs
- AttributeParameterInfo.cs
- CodePropertyReferenceExpression.cs
- SectionInformation.cs
- ResourceWriter.cs
- ColorComboBox.cs
- Function.cs
- ScriptResourceInfo.cs
- MetadataUtilsSmi.cs
- GraphicsContainer.cs
- ProjectionNode.cs
- CurrentChangedEventManager.cs
- SequenceDesignerAccessibleObject.cs
- X509ChainElement.cs
- DataGridViewCellFormattingEventArgs.cs
- ActionFrame.cs
- ComponentChangedEvent.cs
- Matrix3D.cs
- SafeSystemMetrics.cs
- DataGridViewRowPostPaintEventArgs.cs
- InkCanvas.cs
- EventItfInfo.cs
- RegisteredExpandoAttribute.cs
- RemotingConfigParser.cs
- InstanceContextMode.cs
- Expressions.cs
- ObjectConverter.cs
- arabicshape.cs
- ToolStripContentPanelDesigner.cs
- PeerNameResolver.cs
- BuiltInExpr.cs
- FileChangesMonitor.cs
- XmlSchemaGroupRef.cs
- DbCommandDefinition.cs
- QueueSurrogate.cs
- ColumnResizeUndoUnit.cs
- XPathEmptyIterator.cs
- VarRemapper.cs
- FontStyle.cs
- HwndHost.cs
- CompositeCollectionView.cs
- GrabHandleGlyph.cs
- OrderingQueryOperator.cs
- BaseCodeDomTreeGenerator.cs
- ModuleBuilderData.cs
- XmlSchemaAny.cs
- SettingsPropertyNotFoundException.cs
- BaseParaClient.cs
- RegexParser.cs
- ProviderCollection.cs
- DispatchChannelSink.cs
- WebHeaderCollection.cs
- ByteStreamMessageUtility.cs
- SqlUnionizer.cs
- DataGridRowDetailsEventArgs.cs
- MimeParameterWriter.cs
- Matrix.cs
- SchemaCollectionCompiler.cs
- KernelTypeValidation.cs
- EventArgs.cs
- ColumnTypeConverter.cs
- TableRowCollection.cs
- SchemaNamespaceManager.cs
- SqlBuilder.cs
- BufferedGraphicsManager.cs
- DecimalAnimation.cs
- ManagedIStream.cs
- UpdatePanelTrigger.cs
- TextServicesPropertyRanges.cs
- OnOperation.cs
- ColumnHeaderCollectionEditor.cs
- CompilerScope.cs
- SqlBulkCopyColumnMapping.cs
- ValidatorUtils.cs
- PointHitTestParameters.cs
- ComponentChangedEvent.cs
- FrameworkTextComposition.cs
- Helper.cs
- TextRangeEditTables.cs
- TabOrder.cs
- RemotingSurrogateSelector.cs
- InteropAutomationProvider.cs
- MenuCommandService.cs
- ByteStorage.cs
- StorageEndPropertyMapping.cs
- UserControlParser.cs
- SqlTrackingWorkflowInstance.cs
- WebPartUserCapability.cs
- ClientSettingsSection.cs
- Array.cs