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
- HtmlTernaryTree.cs
- XmlNode.cs
- WorkflowServiceHost.cs
- RectangleGeometry.cs
- ClientUtils.cs
- Encoding.cs
- XmlSchemaExternal.cs
- NameSpaceEvent.cs
- SpellerHighlightLayer.cs
- BamlLocalizabilityResolver.cs
- QueryTask.cs
- CodeDirectoryCompiler.cs
- XmlSchemaType.cs
- SingleSelectRootGridEntry.cs
- UshortList2.cs
- TextDecorations.cs
- ObjectStorage.cs
- InfoCardListRequest.cs
- TraceSection.cs
- COM2FontConverter.cs
- FragmentQueryKB.cs
- ParentQuery.cs
- DataGridViewRowCancelEventArgs.cs
- WorkItem.cs
- EntityDataSource.cs
- RuntimeCompatibilityAttribute.cs
- Overlapped.cs
- SaveFileDialogDesigner.cs
- CharacterString.cs
- TextTreeInsertUndoUnit.cs
- HttpCachePolicyElement.cs
- UntypedNullExpression.cs
- PreservationFileWriter.cs
- ClockController.cs
- CompensationDesigner.cs
- TraceContext.cs
- FrameworkElementFactoryMarkupObject.cs
- PropertyValueChangedEvent.cs
- FocusManager.cs
- DataKeyCollection.cs
- DoubleAnimationUsingPath.cs
- ColumnWidthChangingEvent.cs
- ToolStripTextBox.cs
- PropertyEntry.cs
- XmlSecureResolver.cs
- ExtendedProperty.cs
- NamespaceEmitter.cs
- DiagnosticsConfigurationHandler.cs
- ValidationError.cs
- Char.cs
- FtpWebResponse.cs
- VariableQuery.cs
- SqlTriggerContext.cs
- TableRow.cs
- LoginCancelEventArgs.cs
- LoginName.cs
- SingleObjectCollection.cs
- ListViewDeleteEventArgs.cs
- DescriptionAttribute.cs
- EncoderExceptionFallback.cs
- hresults.cs
- Errors.cs
- DefaultValueAttribute.cs
- TextChangedEventArgs.cs
- BaseResourcesBuildProvider.cs
- DynamicActivity.cs
- ConfigurationLoaderException.cs
- COM2ComponentEditor.cs
- UpdatePanelTrigger.cs
- DataServiceException.cs
- DetailsViewPageEventArgs.cs
- CopyOfAction.cs
- RenderDataDrawingContext.cs
- BuilderElements.cs
- ListenerElementsCollection.cs
- SectionInput.cs
- GetImportedCardRequest.cs
- Tokenizer.cs
- FatalException.cs
- InvalidFilterCriteriaException.cs
- TableCell.cs
- QualifierSet.cs
- DetailsViewCommandEventArgs.cs
- XmlDomTextWriter.cs
- DataStorage.cs
- WebServiceHandler.cs
- WebException.cs
- CardSpaceSelector.cs
- DrawListViewSubItemEventArgs.cs
- SafeWaitHandle.cs
- AdRotator.cs
- DataFieldConverter.cs
- DBNull.cs
- HtmlAnchor.cs
- FormViewDeletedEventArgs.cs
- UiaCoreTypesApi.cs
- Int32CollectionConverter.cs
- StandardOleMarshalObject.cs
- TraceXPathNavigator.cs
- SafeEventLogWriteHandle.cs