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
- MembershipPasswordException.cs
- MenuCommand.cs
- XPathDocumentIterator.cs
- RouteParametersHelper.cs
- Effect.cs
- RouteItem.cs
- EventWaitHandleSecurity.cs
- Screen.cs
- ResourceDisplayNameAttribute.cs
- ComponentResourceKeyConverter.cs
- RefExpr.cs
- Verify.cs
- ProfileGroupSettingsCollection.cs
- ServiceModelEnumValidator.cs
- RegexCaptureCollection.cs
- XmlIgnoreAttribute.cs
- XmlDataDocument.cs
- RSAPKCS1KeyExchangeFormatter.cs
- ActiveXMessageFormatter.cs
- DeferredElementTreeState.cs
- EventLogger.cs
- HtmlSelect.cs
- assertwrapper.cs
- EntityDataSourceDataSelection.cs
- Propagator.cs
- PeerToPeerException.cs
- StylusPointProperty.cs
- ContextStaticAttribute.cs
- ContextMenu.cs
- RegexCode.cs
- Activator.cs
- ConnectionOrientedTransportBindingElement.cs
- HtmlTableRow.cs
- DataGridAutoFormat.cs
- ImageDrawing.cs
- EdmFunction.cs
- TrustLevelCollection.cs
- MemberHolder.cs
- ImageClickEventArgs.cs
- TextTreeTextElementNode.cs
- ScriptServiceAttribute.cs
- ConfigurationPropertyAttribute.cs
- RowSpanVector.cs
- PtsContext.cs
- mediaeventargs.cs
- HttpHandlerActionCollection.cs
- ConfigurationConverterBase.cs
- PaintEvent.cs
- ResolveCriteria11.cs
- LoginView.cs
- StylusEditingBehavior.cs
- RequestCachePolicyConverter.cs
- IncrementalReadDecoders.cs
- DataGridViewButtonCell.cs
- IisTraceWebEventProvider.cs
- WebPartCatalogCloseVerb.cs
- Run.cs
- DetailsViewDeleteEventArgs.cs
- ImageClickEventArgs.cs
- Partitioner.cs
- StrokeRenderer.cs
- TabControlAutomationPeer.cs
- NativeActivityMetadata.cs
- WpfWebRequestHelper.cs
- PropertyPathConverter.cs
- DesignTimeTemplateParser.cs
- RelatedPropertyManager.cs
- RoutedEventHandlerInfo.cs
- FlowDocumentPage.cs
- ResourceDefaultValueAttribute.cs
- WebCodeGenerator.cs
- Int32.cs
- CodeComment.cs
- Binding.cs
- MachineKeySection.cs
- ConvertEvent.cs
- QualifiedCellIdBoolean.cs
- ServerIdentity.cs
- DataServiceQueryContinuation.cs
- ProtocolsSection.cs
- EmbeddedMailObjectCollectionEditor.cs
- PlatformCulture.cs
- FlowDocumentFormatter.cs
- ScriptBehaviorDescriptor.cs
- AutomationEventArgs.cs
- XmlDataSource.cs
- Queue.cs
- BeginStoryboard.cs
- NameNode.cs
- SkewTransform.cs
- AuthenticodeSignatureInformation.cs
- Script.cs
- XmlILStorageConverter.cs
- UnionCodeGroup.cs
- BufferedGraphicsContext.cs
- ComAdminInterfaces.cs
- CompositeDataBoundControl.cs
- GridViewUpdateEventArgs.cs
- ScalarType.cs
- wmiprovider.cs