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
- XDRSchema.cs
- DbInsertCommandTree.cs
- MarkedHighlightComponent.cs
- ValidationEventArgs.cs
- WindowsAuthenticationEventArgs.cs
- TypeResolver.cs
- GeneralTransform.cs
- TreeNodeEventArgs.cs
- ToolStripSettings.cs
- XmlSiteMapProvider.cs
- HtmlInputText.cs
- ObjectAnimationBase.cs
- EventRouteFactory.cs
- ColumnMapTranslator.cs
- BinaryFormatterWriter.cs
- FileStream.cs
- ToolboxComponentsCreatingEventArgs.cs
- SelectionListDesigner.cs
- ConnectionPoint.cs
- BitmapCodecInfoInternal.cs
- TemplateBindingExtensionConverter.cs
- PropertyNames.cs
- WebPartMenu.cs
- FolderLevelBuildProviderAppliesToAttribute.cs
- NetSectionGroup.cs
- FigureHelper.cs
- httpapplicationstate.cs
- RtfToXamlLexer.cs
- FontStretches.cs
- WorkflowWebService.cs
- EntityContainerRelationshipSet.cs
- Assert.cs
- MenuBindingsEditor.cs
- Window.cs
- StringConverter.cs
- CrossContextChannel.cs
- SecurityPolicySection.cs
- X509Chain.cs
- StagingAreaInputItem.cs
- XmlSerializer.cs
- CheckBoxList.cs
- WindowsIdentity.cs
- XmlWrappingWriter.cs
- Trigger.cs
- DtrList.cs
- ActivityMarkupSerializer.cs
- HtmlInputButton.cs
- SqlUserDefinedTypeAttribute.cs
- ControlDesigner.cs
- CodeDOMProvider.cs
- VectorValueSerializer.cs
- XmlSchemaSet.cs
- Tag.cs
- CacheOutputQuery.cs
- PlainXmlWriter.cs
- SqlCacheDependencySection.cs
- ConditionalDesigner.cs
- GenericIdentity.cs
- HtmlImage.cs
- LoginNameDesigner.cs
- DrawingGroup.cs
- ChangesetResponse.cs
- DataGridViewCellMouseEventArgs.cs
- DefaultEventAttribute.cs
- URLBuilder.cs
- DSASignatureDeformatter.cs
- FlagsAttribute.cs
- DataGridViewCellToolTipTextNeededEventArgs.cs
- PartialTrustValidationBehavior.cs
- TableStyle.cs
- WebPartConnectVerb.cs
- LocalizabilityAttribute.cs
- DynamicPropertyHolder.cs
- ValidationError.cs
- EncryptedKeyIdentifierClause.cs
- EntityRecordInfo.cs
- DSASignatureFormatter.cs
- ValidatorUtils.cs
- RotateTransform.cs
- TransformGroup.cs
- Crc32Helper.cs
- SpellCheck.cs
- ClientUtils.cs
- TryExpression.cs
- SpinLock.cs
- ComponentResourceKey.cs
- SqlNode.cs
- Utilities.cs
- TimeSpanSecondsOrInfiniteConverter.cs
- TimeoutTimer.cs
- PropertyChangeTracker.cs
- RetriableClipboard.cs
- HasCopySemanticsAttribute.cs
- RegisteredExpandoAttribute.cs
- OracleParameterCollection.cs
- TriState.cs
- QueryContinueDragEvent.cs
- TemplatePropertyEntry.cs
- DataGridViewHeaderCell.cs
- SocketElement.cs