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
- HostProtectionException.cs
- ConnectionManagementElementCollection.cs
- CategoryAttribute.cs
- DataGridViewLinkColumn.cs
- ArcSegment.cs
- InvokeGenerator.cs
- SafeNativeMethodsOther.cs
- CallbackValidator.cs
- CellLabel.cs
- EditorAttribute.cs
- DataBindingExpressionBuilder.cs
- VisemeEventArgs.cs
- UnsafeNativeMethods.cs
- ActivityValidator.cs
- AppDomainProtocolHandler.cs
- EnumBuilder.cs
- _HeaderInfoTable.cs
- NullReferenceException.cs
- LinkDescriptor.cs
- Rotation3DAnimationBase.cs
- ColumnCollection.cs
- DbgUtil.cs
- ToolStripDesignerUtils.cs
- MarkupCompiler.cs
- NamespaceInfo.cs
- LookupBindingPropertiesAttribute.cs
- RegexReplacement.cs
- CreateUserWizard.cs
- ConsoleTraceListener.cs
- KnownBoxes.cs
- RandomNumberGenerator.cs
- BitmapEffectState.cs
- SchemaImporterExtensionElement.cs
- StreamSecurityUpgradeProvider.cs
- TransformDescriptor.cs
- XpsSerializerWriter.cs
- SafeNativeMethods.cs
- versioninfo.cs
- BufferModeSettings.cs
- GeneralTransformCollection.cs
- MaterialGroup.cs
- WindowsAuthenticationEventArgs.cs
- HashMembershipCondition.cs
- PreviewPrintController.cs
- InheritanceAttribute.cs
- Button.cs
- PlainXmlSerializer.cs
- CompilerErrorCollection.cs
- DesigntimeLicenseContext.cs
- EditingCommands.cs
- invalidudtexception.cs
- objectresult_tresulttype.cs
- ExpressionWriter.cs
- ExpressionVisitor.cs
- SingletonConnectionReader.cs
- SoapIncludeAttribute.cs
- ObjectAnimationBase.cs
- BindingExpression.cs
- HtmlEmptyTagControlBuilder.cs
- BooleanSwitch.cs
- DataControlLinkButton.cs
- EmissiveMaterial.cs
- SchemaComplexType.cs
- ByteAnimationUsingKeyFrames.cs
- ConfigurationStrings.cs
- BaseResourcesBuildProvider.cs
- JournalEntryListConverter.cs
- Contracts.cs
- DispatcherExceptionEventArgs.cs
- StaticFileHandler.cs
- CallContext.cs
- ListItemCollection.cs
- StateMachineWorkflow.cs
- TypeUnloadedException.cs
- RotateTransform.cs
- Instrumentation.cs
- RemotingException.cs
- ParseNumbers.cs
- ResXResourceReader.cs
- TransmissionStrategy.cs
- FlatButtonAppearance.cs
- JsonReaderDelegator.cs
- CancellationTokenSource.cs
- PropertyPushdownHelper.cs
- SHA512Managed.cs
- MultiPropertyDescriptorGridEntry.cs
- Parsers.cs
- Blend.cs
- JsonFormatGeneratorStatics.cs
- UniformGrid.cs
- RouteUrlExpressionBuilder.cs
- DesignerLoader.cs
- StrongNameKeyPair.cs
- ClosableStream.cs
- Base64Stream.cs
- SqlFlattener.cs
- HttpModulesSection.cs
- IntranetCredentialPolicy.cs
- GenericTypeParameterBuilder.cs
- RegexFCD.cs