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
- DesignerUtility.cs
- CellParagraph.cs
- EventLogger.cs
- MessageQueuePermission.cs
- RIPEMD160Managed.cs
- ErrorHandler.cs
- SimpleWebHandlerParser.cs
- EditorPart.cs
- WeakHashtable.cs
- IriParsingElement.cs
- DataRelation.cs
- ObjectDataSourceSelectingEventArgs.cs
- ListDictionary.cs
- WebPartManager.cs
- TypeLoader.cs
- TextEndOfLine.cs
- ConfigXmlReader.cs
- SamlAttributeStatement.cs
- Aggregates.cs
- ItemsChangedEventArgs.cs
- SqlPersistenceWorkflowInstanceDescription.cs
- XmlnsPrefixAttribute.cs
- SqlGenerator.cs
- unsafenativemethodstextservices.cs
- UIElementAutomationPeer.cs
- ReachIDocumentPaginatorSerializerAsync.cs
- ClassValidator.cs
- ToolStripGrip.cs
- FileDialog_Vista_Interop.cs
- EventPropertyMap.cs
- HtmlInputSubmit.cs
- StylusLogic.cs
- SqlParameterCollection.cs
- ObfuscateAssemblyAttribute.cs
- EdmItemCollection.OcAssemblyCache.cs
- LoginView.cs
- UnsafeNativeMethodsCLR.cs
- BCLDebug.cs
- TargetInvocationException.cs
- DependencyProperty.cs
- ToolstripProfessionalRenderer.cs
- StateMachine.cs
- OleDbRowUpdatedEvent.cs
- Int16Storage.cs
- CompositeCollectionView.cs
- Model3D.cs
- TypeLibConverter.cs
- ToolBar.cs
- StringFunctions.cs
- TextParagraphView.cs
- XmlAttribute.cs
- CornerRadius.cs
- ServiceRouteHandler.cs
- XmlSequenceWriter.cs
- IIS7WorkerRequest.cs
- ObjectSet.cs
- WebPartManagerDesigner.cs
- RootBrowserWindowProxy.cs
- CollectionsUtil.cs
- DBSchemaTable.cs
- PropertyEntry.cs
- MetadataArtifactLoaderXmlReaderWrapper.cs
- ClientTarget.cs
- OdbcUtils.cs
- WebBrowserNavigatingEventHandler.cs
- ConnectionString.cs
- RoutedPropertyChangedEventArgs.cs
- ToolStripSplitButton.cs
- DataGridViewSelectedRowCollection.cs
- ApplySecurityAndSendAsyncResult.cs
- ContractBase.cs
- _NestedSingleAsyncResult.cs
- XmlSchemaSimpleContentExtension.cs
- TextServicesHost.cs
- EmbeddedObject.cs
- ColorBlend.cs
- BeginStoryboard.cs
- GeometryGroup.cs
- Highlights.cs
- ProtocolsConfiguration.cs
- PropertyMappingExceptionEventArgs.cs
- Vertex.cs
- EmbossBitmapEffect.cs
- ResourceSet.cs
- CopyAction.cs
- TypeLoadException.cs
- FormCollection.cs
- HtmlUtf8RawTextWriter.cs
- RowBinding.cs
- MenuAdapter.cs
- TrackingRecordPreFilter.cs
- RequestQueue.cs
- DeviceContext.cs
- DiscoveryReference.cs
- HttpHandlersSection.cs
- PropertyPath.cs
- AnnotationResourceCollection.cs
- VisualStyleElement.cs
- CharAnimationBase.cs
- AttributeCollection.cs