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
- Polygon.cs
- Processor.cs
- CompilerInfo.cs
- XmlSchemaDocumentation.cs
- TypeElement.cs
- FillBehavior.cs
- SynchronizedMessageSource.cs
- Bind.cs
- ImageInfo.cs
- CombinedHttpChannel.cs
- ColumnBinding.cs
- AsyncOperationLifetimeManager.cs
- AuthenticationService.cs
- WebRequest.cs
- MembershipUser.cs
- TreeNodeCollectionEditorDialog.cs
- ConstantExpression.cs
- Serializer.cs
- HostedTransportConfigurationManager.cs
- CallContext.cs
- PageAdapter.cs
- BrowserCapabilitiesFactoryBase.cs
- Color.cs
- HtmlInputReset.cs
- FamilyCollection.cs
- WaitForChangedResult.cs
- SafeEventLogReadHandle.cs
- HierarchicalDataBoundControlAdapter.cs
- QueryOutputWriterV1.cs
- PropertyGrid.cs
- XmlWriterTraceListener.cs
- loginstatus.cs
- Viewport3DVisual.cs
- XPathAncestorIterator.cs
- PhoneCallDesigner.cs
- TreeViewAutomationPeer.cs
- ToolBar.cs
- BindableTemplateBuilder.cs
- DefaultWorkflowSchedulerService.cs
- Validator.cs
- InternalResources.cs
- SafeFileMappingHandle.cs
- IPPacketInformation.cs
- EditableTreeList.cs
- TreeViewAutomationPeer.cs
- WeakEventManager.cs
- BamlMapTable.cs
- FlowLayoutPanelDesigner.cs
- DBCommand.cs
- _HeaderInfoTable.cs
- CompilationSection.cs
- SchemaConstraints.cs
- DataColumnCollection.cs
- DispatchWrapper.cs
- XamlStackWriter.cs
- ReceiveMessageRecord.cs
- CustomValidator.cs
- AdRotator.cs
- AttachInfo.cs
- CheckableControlBaseAdapter.cs
- CodeVariableReferenceExpression.cs
- UrlMappingsSection.cs
- DataRowComparer.cs
- CollectionChangedEventManager.cs
- RectIndependentAnimationStorage.cs
- ThreadStateException.cs
- RepeatButton.cs
- WebPageTraceListener.cs
- VariableQuery.cs
- TreeView.cs
- XpsInterleavingPolicy.cs
- Calendar.cs
- PropertyMapper.cs
- XmlLoader.cs
- ImageKeyConverter.cs
- SiteMembershipCondition.cs
- PrincipalPermission.cs
- BuiltInPermissionSets.cs
- UndoManager.cs
- StickyNoteContentControl.cs
- RegularExpressionValidator.cs
- ClientTargetSection.cs
- LoginCancelEventArgs.cs
- FactoryId.cs
- PresentationAppDomainManager.cs
- ApplicationFileCodeDomTreeGenerator.cs
- ExpressionLink.cs
- Descriptor.cs
- ThreadInterruptedException.cs
- InvokeBinder.cs
- DeleteHelper.cs
- ActivationArguments.cs
- EdmToObjectNamespaceMap.cs
- EditorAttribute.cs
- XmlSchemaSimpleContentExtension.cs
- ObjectReaderCompiler.cs
- DateTimePicker.cs
- TimeSpan.cs
- SoapFormatExtensions.cs
- Button.cs