Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / Orcas / NetFXw7 / 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
- SafeHandles.cs
- ArrangedElement.cs
- TreeNodeBindingCollection.cs
- StrokeSerializer.cs
- EncoderNLS.cs
- SafeSecurityHandles.cs
- OleDbException.cs
- Operator.cs
- SingleQueryOperator.cs
- EdmItemError.cs
- EventMappingSettingsCollection.cs
- ConfigurationHandlersInstallComponent.cs
- Util.cs
- SafeEventLogWriteHandle.cs
- ConfigurationElementProperty.cs
- ConfigurationException.cs
- PrincipalPermission.cs
- ALinqExpressionVisitor.cs
- ThemeInfoAttribute.cs
- PropertyContainer.cs
- codemethodreferenceexpression.cs
- ActivityExecutor.cs
- TabControlEvent.cs
- HandleValueEditor.cs
- StandardToolWindows.cs
- ValueExpressions.cs
- StackBuilderSink.cs
- SafeCryptoHandles.cs
- DataGridTablesFactory.cs
- EncryptedReference.cs
- Rotation3DAnimation.cs
- KeyGesture.cs
- SqlSelectClauseBuilder.cs
- TextPenaltyModule.cs
- ExternalException.cs
- CompositeClientFormatter.cs
- XmlDeclaration.cs
- RelatedPropertyManager.cs
- PopupControlService.cs
- WindowAutomationPeer.cs
- BaseHashHelper.cs
- SiteOfOriginPart.cs
- FontStyleConverter.cs
- XPathPatternBuilder.cs
- BaseCodePageEncoding.cs
- FileCodeGroup.cs
- TracePayload.cs
- OverlappedAsyncResult.cs
- MultipleViewPatternIdentifiers.cs
- X509Utils.cs
- ClientBuildManager.cs
- IfAction.cs
- UriScheme.cs
- CheckedListBox.cs
- DesignerOptions.cs
- ServiceOperation.cs
- ButtonFieldBase.cs
- XmlToDatasetMap.cs
- DefaultPropertyAttribute.cs
- Win32.cs
- CodePageUtils.cs
- Memoizer.cs
- EmptyQuery.cs
- relpropertyhelper.cs
- FormViewRow.cs
- BuildProvider.cs
- DelegateSerializationHolder.cs
- HttpWebRequest.cs
- RequestCache.cs
- Win32Exception.cs
- Brush.cs
- DeviceContexts.cs
- TextTrailingCharacterEllipsis.cs
- TextRangeSerialization.cs
- AsymmetricAlgorithm.cs
- ExpressionsCollectionEditor.cs
- CheckoutException.cs
- DataSourceSelectArguments.cs
- StorageMappingItemLoader.cs
- SignHashRequest.cs
- DataKey.cs
- TextProviderWrapper.cs
- ComNativeDescriptor.cs
- X509LogoTypeExtension.cs
- SQLDecimal.cs
- HtmlTableCellCollection.cs
- WebPartEditorApplyVerb.cs
- DeflateInput.cs
- HttpRuntimeSection.cs
- Color.cs
- XmlSchemaSubstitutionGroup.cs
- PasswordPropertyTextAttribute.cs
- TypedReference.cs
- Hyperlink.cs
- CachedBitmap.cs
- LoginUtil.cs
- CommonProperties.cs
- BasicHttpBindingCollectionElement.cs
- TimeSpanMinutesOrInfiniteConverter.cs
- WeakReferenceList.cs