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
- WebRequestModulesSection.cs
- PrincipalPermission.cs
- TypedServiceOperationListItem.cs
- QueryCacheEntry.cs
- _OSSOCK.cs
- SqlFlattener.cs
- ThreadAbortException.cs
- UnsafeNativeMethods.cs
- TemplateComponentConnector.cs
- NotifyCollectionChangedEventArgs.cs
- WpfPayload.cs
- ImageButton.cs
- SEHException.cs
- Rectangle.cs
- BitmapData.cs
- TriggerCollection.cs
- SQLString.cs
- FontInfo.cs
- CompleteWizardStep.cs
- DataControlFieldHeaderCell.cs
- BinaryMessageEncoder.cs
- ChtmlTextWriter.cs
- CodeLabeledStatement.cs
- XmlTextReader.cs
- IsolatedStorageException.cs
- ExtensionQuery.cs
- SqlParameterizer.cs
- TraceUtility.cs
- EventListener.cs
- WindowsListViewSubItem.cs
- InputProcessorProfilesLoader.cs
- EmptyElement.cs
- MaskDesignerDialog.cs
- AnnotationDocumentPaginator.cs
- SectionVisual.cs
- XmlStreamStore.cs
- DateTimeOffset.cs
- CheckPair.cs
- TypeLoader.cs
- EncryptedType.cs
- Image.cs
- TypeDescriptor.cs
- TraceSwitch.cs
- UIElement3D.cs
- HtmlDocument.cs
- SemaphoreSecurity.cs
- TypeElement.cs
- FontConverter.cs
- PageSetupDialog.cs
- MultiByteCodec.cs
- AvTraceFormat.cs
- TemplateColumn.cs
- HotSpotCollection.cs
- RefreshPropertiesAttribute.cs
- SetState.cs
- LazyLoadBehavior.cs
- NavigationPropertyAccessor.cs
- MouseWheelEventArgs.cs
- PanelContainerDesigner.cs
- MasterPageCodeDomTreeGenerator.cs
- ArraySubsetEnumerator.cs
- ConfigurationElementCollection.cs
- XmlCharacterData.cs
- SmiSettersStream.cs
- TraceContextEventArgs.cs
- XmlSortKeyAccumulator.cs
- ClusterRegistryConfigurationProvider.cs
- ClientUriBehavior.cs
- DbConnectionOptions.cs
- SkinBuilder.cs
- HtmlLink.cs
- XmlTypeAttribute.cs
- XmlSchemaSimpleContent.cs
- _ReceiveMessageOverlappedAsyncResult.cs
- InheritablePropertyChangeInfo.cs
- StaticDataManager.cs
- ActiveXContainer.cs
- ToolTipService.cs
- ApplicationActivator.cs
- State.cs
- ScrollChrome.cs
- MimeFormImporter.cs
- ControlBuilder.cs
- DataControlLinkButton.cs
- SerializationStore.cs
- ClonableStack.cs
- SQLDateTime.cs
- OleDbError.cs
- SiteMapDataSourceView.cs
- PreviewPrintController.cs
- SqlNotificationRequest.cs
- VBIdentifierNameEditor.cs
- GeometryModel3D.cs
- DesignerDataColumn.cs
- ClientConfigurationHost.cs
- CodeAccessSecurityEngine.cs
- DocumentReference.cs
- EventArgs.cs
- GlyphCache.cs
- Tuple.cs