Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / XmlUtils / System / Xml / Xsl / XsltOld / WriterOutput.cs / 1305376 / WriterOutput.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //[....] //----------------------------------------------------------------------------- namespace System.Xml.Xsl.XsltOld { using Res = System.Xml.Utils.Res; using System; using System.Diagnostics; using System.Xml; using System.Xml.XPath; using System.Collections; internal class WriterOutput : RecordOutput { private XmlWriter writer; private Processor processor; internal WriterOutput(Processor processor, XmlWriter writer) { if (writer == null) { throw new ArgumentNullException("writer"); } this.writer = writer; this.processor = processor; } // RecordOutput interface method implementation // public Processor.OutputResult RecordDone(RecordBuilder record) { BuilderInfo mainNode = record.MainNode; switch (mainNode.NodeType) { case XmlNodeType.Element: this.writer.WriteStartElement(mainNode.Prefix, mainNode.LocalName, mainNode.NamespaceURI); WriteAttributes(record.AttributeList, record.AttributeCount); if (mainNode.IsEmptyTag) { this.writer.WriteEndElement(); } break; case XmlNodeType.Text: case XmlNodeType.Whitespace: case XmlNodeType.SignificantWhitespace: this.writer.WriteString(mainNode.Value); break; case XmlNodeType.CDATA: Debug.Assert(false, "XSLT never gives us CDATA"); this.writer.WriteCData(mainNode.Value); break; case XmlNodeType.EntityReference: this.writer.WriteEntityRef(mainNode.LocalName); break; case XmlNodeType.ProcessingInstruction: this.writer.WriteProcessingInstruction(mainNode.LocalName, mainNode.Value); break; case XmlNodeType.Comment: this.writer.WriteComment(mainNode.Value); break; case XmlNodeType.Document: break; case XmlNodeType.DocumentType: this.writer.WriteRaw(mainNode.Value); break; case XmlNodeType.EndElement: this.writer.WriteFullEndElement(); break; case XmlNodeType.None: case XmlNodeType.Attribute: case XmlNodeType.Entity: case XmlNodeType.Notation: case XmlNodeType.DocumentFragment: case XmlNodeType.EndEntity: break; default: Debug.Fail("Invalid NodeType on output: " + mainNode.NodeType); break; } record.Reset(); return Processor.OutputResult.Continue; } public void TheEnd() { this.writer.Flush(); this.writer = null; } private void WriteAttributes(ArrayList list, int count) { Debug.Assert(list.Count >= count); for (int attrib = 0; attrib < count; attrib ++) { Debug.Assert(list[attrib] is BuilderInfo); BuilderInfo attribute = (BuilderInfo) list[attrib]; this.writer.WriteAttributeString(attribute.Prefix, attribute.LocalName, attribute.NamespaceURI, attribute.Value); } } } } // 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
- InfoCardMasterKey.cs
- ClientBuildManager.cs
- HttpHandlerAction.cs
- X509ChainPolicy.cs
- CounterCreationData.cs
- ListSourceHelper.cs
- View.cs
- Error.cs
- DPAPIProtectedConfigurationProvider.cs
- CalloutQueueItem.cs
- EntityDataSourceWrapperCollection.cs
- InvalidProgramException.cs
- AddingNewEventArgs.cs
- PrimitiveOperationFormatter.cs
- EntityClientCacheKey.cs
- LoadWorkflowByInstanceKeyCommand.cs
- COM2IVsPerPropertyBrowsingHandler.cs
- Transform3DCollection.cs
- OuterGlowBitmapEffect.cs
- TextDecorationCollection.cs
- PrintingPermissionAttribute.cs
- LocalBuilder.cs
- RotateTransform.cs
- CodeAssignStatement.cs
- ClientConfigPaths.cs
- AssertFilter.cs
- HtmlElementErrorEventArgs.cs
- PropertyTabAttribute.cs
- StateDesignerConnector.cs
- DataListItemCollection.cs
- XmlCustomFormatter.cs
- MobileControl.cs
- ValueProviderWrapper.cs
- PermissionToken.cs
- FtpRequestCacheValidator.cs
- SecurityTokenRequirement.cs
- CommandBindingCollection.cs
- EventWaitHandle.cs
- GridItemPattern.cs
- FilterQuery.cs
- ToolStripItemRenderEventArgs.cs
- SqlXml.cs
- FileAuthorizationModule.cs
- ReadOnlyCollectionBase.cs
- Int64Converter.cs
- MSAANativeProvider.cs
- SoapAttributeAttribute.cs
- PrintingPermissionAttribute.cs
- ConfigViewGenerator.cs
- Message.cs
- RSAPKCS1KeyExchangeFormatter.cs
- ResourceReferenceExpressionConverter.cs
- CompressionTransform.cs
- ExpressionQuoter.cs
- TreeViewImageIndexConverter.cs
- AmbientValueAttribute.cs
- SponsorHelper.cs
- UITypeEditor.cs
- DbConvert.cs
- DataViewSetting.cs
- Switch.cs
- QueryExecutionOption.cs
- DictionaryEntry.cs
- GridViewEditEventArgs.cs
- HTTPRemotingHandler.cs
- ParallelTimeline.cs
- ByteConverter.cs
- TableRow.cs
- ToolStripDropDownClosedEventArgs.cs
- SqlCommand.cs
- SoapIgnoreAttribute.cs
- EmissiveMaterial.cs
- SqlDataSourceFilteringEventArgs.cs
- WorkflowDefinitionDispenser.cs
- Margins.cs
- WebBrowserSiteBase.cs
- StringOutput.cs
- CheckBox.cs
- TextCompositionManager.cs
- SerializationAttributes.cs
- DbParameterHelper.cs
- StylusPlugInCollection.cs
- CodeCommentStatementCollection.cs
- RoleManagerSection.cs
- BitmapEffectInputData.cs
- KeyValueInternalCollection.cs
- CompilerParameters.cs
- DrawingContextDrawingContextWalker.cs
- DataTableClearEvent.cs
- ExecutionContext.cs
- OdbcTransaction.cs
- WrappedIUnknown.cs
- TransactionTable.cs
- _ListenerResponseStream.cs
- HtmlForm.cs
- HtmlTableRowCollection.cs
- BindingEditor.xaml.cs
- MasterPageBuildProvider.cs
- SignatureToken.cs
- PersonalizationStateInfoCollection.cs