Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / XmlUtils / System / Xml / Xsl / XsltOld / NavigatorOutput.cs / 1305376 / NavigatorOutput.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 MS.Internal.Xml.Cache; internal class NavigatorOutput : RecordOutput { private XPathDocument doc; private int documentIndex; private XmlRawWriter wr; internal XPathNavigator Navigator { get { return ((IXPathNavigable)doc).CreateNavigator(); } } internal NavigatorOutput(string baseUri) { doc = new XPathDocument(); this.wr = doc.LoadFromWriter(XPathDocument.LoadFlags.AtomizeNames, baseUri); } public Processor.OutputResult RecordDone(RecordBuilder record) { Debug.Assert(record != null); BuilderInfo mainNode = record.MainNode; documentIndex++; switch(mainNode.NodeType) { case XmlNodeType.Element: { wr.WriteStartElement( mainNode.Prefix, mainNode.LocalName, mainNode.NamespaceURI ); for (int attrib = 0; attrib < record.AttributeCount; attrib ++) { documentIndex++; Debug.Assert(record.AttributeList[attrib] is BuilderInfo); BuilderInfo attrInfo = (BuilderInfo) record.AttributeList[attrib]; if (attrInfo.NamespaceURI == XmlReservedNs.NsXmlNs) { if( attrInfo.Prefix.Length == 0 ) wr.WriteNamespaceDeclaration(string.Empty, attrInfo.Value ); else wr.WriteNamespaceDeclaration( attrInfo.LocalName, attrInfo.Value ); } else { wr.WriteAttributeString( attrInfo.Prefix, attrInfo.LocalName, attrInfo.NamespaceURI, attrInfo.Value ); } } wr.StartElementContent(); if (mainNode.IsEmptyTag) wr.WriteEndElement( mainNode.Prefix, mainNode.LocalName, mainNode.NamespaceURI ); break; } case XmlNodeType.Text: wr.WriteString( mainNode.Value ); break; case XmlNodeType.Whitespace: break; case XmlNodeType.SignificantWhitespace: wr.WriteString( mainNode.Value ); break; case XmlNodeType.ProcessingInstruction: wr.WriteProcessingInstruction( mainNode.LocalName, mainNode.Value ); break; case XmlNodeType.Comment: wr.WriteComment( mainNode.Value ); break; case XmlNodeType.Document: break; case XmlNodeType.EndElement: wr.WriteEndElement( mainNode.Prefix, mainNode.LocalName, mainNode.NamespaceURI ); break; default: Debug.Fail("Invalid NodeType on output: " + mainNode.NodeType); break; } record.Reset(); return Processor.OutputResult.Continue; } public void TheEnd() { wr.Close(); } } } // 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
- If.cs
- AssemblyUtil.cs
- DropDownButton.cs
- NumberFunctions.cs
- XmlQueryTypeFactory.cs
- Missing.cs
- FixedElement.cs
- SqlCachedBuffer.cs
- XamlSerializerUtil.cs
- FormParameter.cs
- recordstatefactory.cs
- WebPartCloseVerb.cs
- WorkflowRuntimeElement.cs
- DesignerOptionService.cs
- CodeGen.cs
- SelectedCellsChangedEventArgs.cs
- ObjectListComponentEditor.cs
- ObjectDataSourceSelectingEventArgs.cs
- IndexOutOfRangeException.cs
- SqlDataSourceView.cs
- PolicyManager.cs
- WindowsProgressbar.cs
- IsolatedStorage.cs
- CheckBoxStandardAdapter.cs
- WebPartTransformerCollection.cs
- TreeNodeCollectionEditor.cs
- DesignTimeValidationFeature.cs
- GridViewRowCollection.cs
- Helpers.cs
- MouseActionConverter.cs
- FontUnitConverter.cs
- SectionVisual.cs
- DependencySource.cs
- ClusterRegistryConfigurationProvider.cs
- BlurEffect.cs
- SubqueryTrackingVisitor.cs
- DesignerProperties.cs
- Compiler.cs
- VarRemapper.cs
- Help.cs
- BackEase.cs
- CustomActivityDesigner.cs
- serverconfig.cs
- DomNameTable.cs
- DashStyle.cs
- OletxVolatileEnlistment.cs
- RuntimeIdentifierPropertyAttribute.cs
- RegistrationServices.cs
- MessageBox.cs
- PerformanceCounterPermissionEntry.cs
- StandardToolWindows.cs
- SubstitutionList.cs
- PackWebResponse.cs
- MsmqIntegrationBinding.cs
- AffineTransform3D.cs
- LockedAssemblyCache.cs
- FlowLayoutPanel.cs
- SchemaSetCompiler.cs
- RtType.cs
- DecimalFormatter.cs
- EndpointAddressMessageFilter.cs
- KeyedCollection.cs
- SamlSecurityToken.cs
- PlainXmlWriter.cs
- webproxy.cs
- OracleCommandSet.cs
- XmlSchemaSet.cs
- PersonalizationState.cs
- CalendarAutoFormatDialog.cs
- SizeChangedInfo.cs
- WizardStepBase.cs
- KeyFrames.cs
- PropertyChangingEventArgs.cs
- NetworkInformationException.cs
- WarningException.cs
- Control.cs
- XsltLibrary.cs
- UInt16Storage.cs
- HeaderCollection.cs
- EntityCommandExecutionException.cs
- CodeAttributeArgumentCollection.cs
- DeobfuscatingStream.cs
- MessageLogTraceRecord.cs
- CompositeDataBoundControl.cs
- RegexInterpreter.cs
- Int64.cs
- SafeNativeMethods.cs
- LayoutTable.cs
- WindowsUpDown.cs
- ConstantCheck.cs
- Choices.cs
- Utils.cs
- RemoteHelper.cs
- DesignSurfaceCollection.cs
- ResourceAssociationType.cs
- WebServicesSection.cs
- DataMemberAttribute.cs
- CodeSpit.cs
- Win32SafeHandles.cs
- ToolboxItemCollection.cs