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
- NameObjectCollectionBase.cs
- LocalizabilityAttribute.cs
- ControlBuilderAttribute.cs
- XmlBoundElement.cs
- DataErrorValidationRule.cs
- FixedHyperLink.cs
- ResourceDescriptionAttribute.cs
- SettingsBindableAttribute.cs
- XmlSignificantWhitespace.cs
- EntityExpressionVisitor.cs
- HotCommands.cs
- ChameleonKey.cs
- FormatException.cs
- WebPartEditorApplyVerb.cs
- shaperfactoryquerycachekey.cs
- SchemaConstraints.cs
- ThreadStartException.cs
- DataServiceProviderWrapper.cs
- ActivityDesignerAccessibleObject.cs
- OneOfScalarConst.cs
- Splitter.cs
- MulticastOption.cs
- ColumnTypeConverter.cs
- TextViewElement.cs
- SafeNativeMethods.cs
- ExpressionServices.cs
- DebugViewWriter.cs
- HybridObjectCache.cs
- _ContextAwareResult.cs
- WebPartDisplayModeEventArgs.cs
- ClientTarget.cs
- BufferedReadStream.cs
- RenderDataDrawingContext.cs
- QueryOutputWriter.cs
- FontDifferentiator.cs
- FixedSchema.cs
- HwndHost.cs
- CodeComment.cs
- ParameterExpression.cs
- DrawingDrawingContext.cs
- TextSchema.cs
- DigitShape.cs
- SqlDelegatedTransaction.cs
- SqlException.cs
- RepeaterCommandEventArgs.cs
- CompiledRegexRunnerFactory.cs
- DataControlFieldHeaderCell.cs
- ColumnBinding.cs
- MethodMessage.cs
- XPathNodeList.cs
- externdll.cs
- ProcessModelInfo.cs
- TabControlAutomationPeer.cs
- WorkflowInstanceExtensionManager.cs
- WSDualHttpSecurityMode.cs
- TdsParserSessionPool.cs
- Hash.cs
- CatalogZone.cs
- FormsIdentity.cs
- XMLSchema.cs
- WorkingDirectoryEditor.cs
- FunctionMappingTranslator.cs
- XmlWrappingReader.cs
- RuleSettingsCollection.cs
- FacetChecker.cs
- WebPart.cs
- TemplatePartAttribute.cs
- EventSetter.cs
- InfoCardAsymmetricCrypto.cs
- CustomCategoryAttribute.cs
- OpenTypeCommon.cs
- StylusLogic.cs
- DictionaryEntry.cs
- TextureBrush.cs
- SchemaAttDef.cs
- XmlToDatasetMap.cs
- DurationConverter.cs
- MenuItem.cs
- ProtectedProviderSettings.cs
- EditingScope.cs
- externdll.cs
- BaseCodeDomTreeGenerator.cs
- DataDesignUtil.cs
- QilInvoke.cs
- DictionaryCustomTypeDescriptor.cs
- DataServiceQueryException.cs
- DataTableReader.cs
- HtmlInputText.cs
- DataServiceQueryContinuation.cs
- LifetimeServices.cs
- WizardDesigner.cs
- WorkflowViewElement.cs
- ExceptionUtil.cs
- PopupRoot.cs
- HostExecutionContextManager.cs
- precedingquery.cs
- RelatedCurrencyManager.cs
- ListBindingConverter.cs
- ExeConfigurationFileMap.cs
- ReachPageContentSerializer.cs