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
- XmlEncodedRawTextWriter.cs
- ListViewGroupConverter.cs
- HandledMouseEvent.cs
- RenderingEventArgs.cs
- SamlDelegatingWriter.cs
- SecurityProtocol.cs
- RoutedEvent.cs
- ClientSession.cs
- InvalidEnumArgumentException.cs
- UrlMappingCollection.cs
- WebBrowserPermission.cs
- SqlServer2KCompatibilityCheck.cs
- HandlerBase.cs
- DataGridViewColumnHeaderCell.cs
- ByteAnimationBase.cs
- ReflectPropertyDescriptor.cs
- GridViewColumnHeaderAutomationPeer.cs
- TransformerConfigurationWizardBase.cs
- NativeMethods.cs
- Comparer.cs
- HttpHeaderCollection.cs
- MaterializeFromAtom.cs
- ConfigXmlComment.cs
- StringValueConverter.cs
- LinkUtilities.cs
- ScriptMethodAttribute.cs
- _UncName.cs
- SurrogateSelector.cs
- PropertyToken.cs
- DeviceSpecificDialogCachedState.cs
- XmlSerializer.cs
- TextParagraphCache.cs
- TransactionInterop.cs
- Missing.cs
- ListViewDataItem.cs
- ActivityXamlServices.cs
- ControlOperationBehavior.cs
- StandardRuntimeEnumValidatorAttribute.cs
- IDQuery.cs
- ToggleButton.cs
- ContentType.cs
- OleDbMetaDataFactory.cs
- HttpProcessUtility.cs
- ExpressionHelper.cs
- InputLangChangeEvent.cs
- ReflectionServiceProvider.cs
- PackUriHelper.cs
- ReadOnlyAttribute.cs
- LinkedResourceCollection.cs
- CodeVariableDeclarationStatement.cs
- DataGridCheckBoxColumn.cs
- StreamGeometry.cs
- SimpleExpression.cs
- Image.cs
- RuleSet.cs
- ToolTipService.cs
- ProviderUtil.cs
- EncryptedData.cs
- ManagementClass.cs
- RawStylusInputCustomData.cs
- ContentFilePart.cs
- LinkedResourceCollection.cs
- DbMetaDataCollectionNames.cs
- XhtmlBasicImageAdapter.cs
- SocketAddress.cs
- ReaderContextStackData.cs
- OpenFileDialog.cs
- Win32Native.cs
- OleDbConnectionFactory.cs
- FieldTemplateFactory.cs
- HttpFileCollection.cs
- Substitution.cs
- querybuilder.cs
- WindowsListViewItemCheckBox.cs
- AttachedPropertyBrowsableForTypeAttribute.cs
- ArrayItemValue.cs
- DashStyle.cs
- DbProviderFactoriesConfigurationHandler.cs
- CatalogZoneBase.cs
- Compiler.cs
- SamlConditions.cs
- DesignerDataSchemaClass.cs
- TemplateInstanceAttribute.cs
- HttpModuleCollection.cs
- AssociationTypeEmitter.cs
- MetaTableHelper.cs
- SqlDependencyUtils.cs
- TextSelectionHelper.cs
- FilterableAttribute.cs
- SQLUtility.cs
- JavaScriptObjectDeserializer.cs
- AsyncOperationContext.cs
- DataRowChangeEvent.cs
- AspNetHostingPermission.cs
- ClickablePoint.cs
- RichTextBoxAutomationPeer.cs
- EditorZone.cs
- Label.cs
- DataBindingExpressionBuilder.cs
- CompositionDesigner.cs