Code:
/ 4.0 / 4.0 / untmp / 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.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- BlurBitmapEffect.cs
- XsdBuildProvider.cs
- GenericTextProperties.cs
- InvalidPropValue.cs
- ThicknessKeyFrameCollection.cs
- BaseTemplateBuildProvider.cs
- DragEventArgs.cs
- CrossAppDomainChannel.cs
- XmlWriterSettings.cs
- FileRecordSequence.cs
- Rect.cs
- DataControlHelper.cs
- WebPartVerb.cs
- FontDriver.cs
- SelectionWordBreaker.cs
- BuildDependencySet.cs
- RelatedImageListAttribute.cs
- ClassDataContract.cs
- FrugalMap.cs
- DbConnectionPoolGroup.cs
- SimpleWorkerRequest.cs
- ResourceContainer.cs
- DeviceSpecific.cs
- ApplicationDirectory.cs
- XmlWriterDelegator.cs
- FamilyMapCollection.cs
- DataPager.cs
- DocumentEventArgs.cs
- HeaderedItemsControl.cs
- DataServiceSaveChangesEventArgs.cs
- CommandBindingCollection.cs
- SafeThreadHandle.cs
- ProfileGroupSettingsCollection.cs
- DiagnosticStrings.cs
- ListBindableAttribute.cs
- SimpleNameService.cs
- MetadataProperty.cs
- TagNameToTypeMapper.cs
- ColumnPropertiesGroup.cs
- safex509handles.cs
- MetadataUtilsSmi.cs
- MenuItem.cs
- LabelAutomationPeer.cs
- AssertSection.cs
- SuppressMergeCheckAttribute.cs
- CultureSpecificStringDictionary.cs
- BrowserInteropHelper.cs
- PathFigure.cs
- ListControlConvertEventArgs.cs
- StreamWithDictionary.cs
- WaitHandle.cs
- InternalBufferOverflowException.cs
- RunWorkerCompletedEventArgs.cs
- SourceFileBuildProvider.cs
- StrokeCollection.cs
- ListDictionaryInternal.cs
- ImmutableObjectAttribute.cs
- SHA256Managed.cs
- ManualResetEvent.cs
- IERequestCache.cs
- DoubleLink.cs
- FlagsAttribute.cs
- LocalBuilder.cs
- CookieProtection.cs
- WebPartVerb.cs
- DisplayNameAttribute.cs
- CacheForPrimitiveTypes.cs
- PropertyManager.cs
- GeneratedCodeAttribute.cs
- ResourceCodeDomSerializer.cs
- XmlChoiceIdentifierAttribute.cs
- LinqDataSourceStatusEventArgs.cs
- GeneratedView.cs
- ConditionalAttribute.cs
- XmlSchemaInclude.cs
- DecoderFallbackWithFailureFlag.cs
- MenuItemStyle.cs
- TimeZone.cs
- XmlnsPrefixAttribute.cs
- SqlBooleanizer.cs
- Unit.cs
- BinHexEncoding.cs
- LinqDataSourceValidationException.cs
- ActivityInfo.cs
- SqlBuffer.cs
- AggregateException.cs
- HiddenFieldPageStatePersister.cs
- ContentControl.cs
- LinearGradientBrush.cs
- WebServiceParameterData.cs
- LambdaCompiler.Address.cs
- Style.cs
- DataPagerFieldCollection.cs
- FieldNameLookup.cs
- PointF.cs
- StreamResourceInfo.cs
- ExtensionDataObject.cs
- NodeInfo.cs
- MSAAEventDispatcher.cs
- Point3DValueSerializer.cs