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
- OleDbTransaction.cs
- RecognizerBase.cs
- DesignerCapabilities.cs
- BitmapCacheBrush.cs
- RenderDataDrawingContext.cs
- ExceptionWrapper.cs
- XmlSchemaSimpleContentExtension.cs
- CacheSection.cs
- GC.cs
- ItemList.cs
- DbExpressionBuilder.cs
- Utility.cs
- ClientRoleProvider.cs
- CompilerHelpers.cs
- TextTreeTextNode.cs
- ConfigXmlElement.cs
- ExtentCqlBlock.cs
- ScriptReference.cs
- LiteralControl.cs
- PersonalizableAttribute.cs
- DatatypeImplementation.cs
- ScrollableControlDesigner.cs
- UnsafeNativeMethodsTablet.cs
- ObjectHandle.cs
- DataTableNewRowEvent.cs
- BindUriHelper.cs
- SQLDecimalStorage.cs
- ScrollData.cs
- PropertyPathConverter.cs
- RoutedEventArgs.cs
- EnumerableRowCollection.cs
- _NtlmClient.cs
- Visual.cs
- Events.cs
- ListBindingConverter.cs
- BinaryConverter.cs
- ArcSegment.cs
- ProxyHelper.cs
- CodeSnippetStatement.cs
- InkCollectionBehavior.cs
- TdsRecordBufferSetter.cs
- ZipIOExtraField.cs
- MutexSecurity.cs
- mediaclock.cs
- SqlInfoMessageEvent.cs
- TreeNodeBinding.cs
- LambdaCompiler.Binary.cs
- X509Extension.cs
- WsdlInspector.cs
- EdgeModeValidation.cs
- ExpressionValueEditor.cs
- DeviceFiltersSection.cs
- XmlCodeExporter.cs
- OutputCacheProfile.cs
- ReliabilityContractAttribute.cs
- PerformanceCounter.cs
- DataRecordInternal.cs
- BaseDataListPage.cs
- GPStream.cs
- InProcStateClientManager.cs
- Convert.cs
- TypeToStringValueConverter.cs
- XamlClipboardData.cs
- EntityProviderFactory.cs
- AtomEntry.cs
- _SpnDictionary.cs
- ScrollChrome.cs
- DomainConstraint.cs
- ColorConverter.cs
- Paragraph.cs
- Vector3DKeyFrameCollection.cs
- JapaneseLunisolarCalendar.cs
- CipherData.cs
- MethodExpression.cs
- StringReader.cs
- WebRequestModulesSection.cs
- RelatedEnd.cs
- View.cs
- MimeTypePropertyAttribute.cs
- UnregisterInfo.cs
- _SecureChannel.cs
- InvalidCastException.cs
- DecimalKeyFrameCollection.cs
- WebPartRestoreVerb.cs
- CreateRefExpr.cs
- DrawingGroup.cs
- CustomAttributeFormatException.cs
- CreatingCookieEventArgs.cs
- HealthMonitoringSectionHelper.cs
- ParserOptions.cs
- RawStylusInputReport.cs
- ThaiBuddhistCalendar.cs
- WebServiceHandlerFactory.cs
- OLEDB_Enum.cs
- FontUnitConverter.cs
- FlowDocumentScrollViewerAutomationPeer.cs
- OdbcConnectionFactory.cs
- UpDownEvent.cs
- MarkupExtensionParser.cs
- FormsIdentity.cs