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
- SEHException.cs
- XmlAutoDetectWriter.cs
- MethodImplAttribute.cs
- Int32RectConverter.cs
- FlowDocumentPageViewerAutomationPeer.cs
- QilCloneVisitor.cs
- HyperLinkColumn.cs
- DataBinding.cs
- StoryFragments.cs
- WhereQueryOperator.cs
- PagesChangedEventArgs.cs
- RubberbandSelector.cs
- ObjectTokenCategory.cs
- MemoryMappedViewStream.cs
- Codec.cs
- XmlSerializableReader.cs
- WaitHandle.cs
- DockProviderWrapper.cs
- Command.cs
- RSAPKCS1SignatureDeformatter.cs
- WebPartTracker.cs
- PrimaryKeyTypeConverter.cs
- XmlWriterTraceListener.cs
- ConfigurationPropertyCollection.cs
- ResponseStream.cs
- XamlParser.cs
- HttpProtocolReflector.cs
- OdbcConnectionOpen.cs
- GlobalEventManager.cs
- TextSerializer.cs
- DataGridTemplateColumn.cs
- ContentType.cs
- BuilderPropertyEntry.cs
- CallbackValidator.cs
- CqlParser.cs
- CalendarItem.cs
- AutomationPatternInfo.cs
- HttpResponseHeader.cs
- ReturnValue.cs
- DataRowChangeEvent.cs
- StylusOverProperty.cs
- WebPartDesigner.cs
- CacheRequest.cs
- EventHandlerList.cs
- DBConnectionString.cs
- InstalledFontCollection.cs
- Win32KeyboardDevice.cs
- OperationDescription.cs
- RemoteWebConfigurationHost.cs
- XmlBaseWriter.cs
- NativeMethods.cs
- InternalPolicyElement.cs
- SqlDataReader.cs
- CodeSubDirectoriesCollection.cs
- DesignerOptions.cs
- MailWriter.cs
- JumpTask.cs
- MessageDecoder.cs
- SHA384Managed.cs
- UrlAuthorizationModule.cs
- EmptyControlCollection.cs
- MatrixTransform3D.cs
- PagedDataSource.cs
- PointF.cs
- ZipIOExtraField.cs
- ProgressChangedEventArgs.cs
- SequenceFullException.cs
- Underline.cs
- WindowsAuthenticationEventArgs.cs
- StructuralType.cs
- ConfigurationLocationCollection.cs
- StreamReader.cs
- Figure.cs
- EditorPart.cs
- RelatedView.cs
- SharedDp.cs
- DbParameterCollectionHelper.cs
- TextSyndicationContent.cs
- OrderedDictionaryStateHelper.cs
- Stack.cs
- NewArray.cs
- KnownAssemblyEntry.cs
- DataGridViewCheckBoxColumn.cs
- Inflater.cs
- CheckBox.cs
- CounterSample.cs
- Accessible.cs
- GroupBoxAutomationPeer.cs
- HwndSource.cs
- XmlFormatExtensionPrefixAttribute.cs
- MasterPage.cs
- TreeNodeCollection.cs
- TickBar.cs
- EpmContentDeSerializerBase.cs
- CoreSwitches.cs
- SID.cs
- ControlBuilder.cs
- PageThemeBuildProvider.cs
- ObjectViewEntityCollectionData.cs
- DateTimeParse.cs