Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / whidbey / NetFxQFE / ndp / fx / src / XmlUtils / System / Xml / Xsl / XsltOld / NavigatorOutput.cs / 1 / 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 == Keywords.s_XmlnsNamespace) { 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. //------------------------------------------------------------------------------ //// 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 == Keywords.s_XmlnsNamespace) { 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
- AllMembershipCondition.cs
- ItemChangedEventArgs.cs
- Stacktrace.cs
- Gdiplus.cs
- SQLDoubleStorage.cs
- XmlNodeList.cs
- ColorComboBox.cs
- wgx_commands.cs
- SchemaInfo.cs
- TextDecorationLocationValidation.cs
- Pen.cs
- WebPartTransformerAttribute.cs
- _ConnectStream.cs
- FileVersion.cs
- EntityDataSourceStatementEditorForm.cs
- ConnectionConsumerAttribute.cs
- contentDescriptor.cs
- DependencyObjectProvider.cs
- ComponentResourceManager.cs
- WebService.cs
- TcpClientSocketManager.cs
- EntityEntry.cs
- ActivityDesignerLayoutSerializers.cs
- StringArrayEditor.cs
- XmlCountingReader.cs
- MessageEncoder.cs
- ProviderMetadata.cs
- DelimitedListTraceListener.cs
- KeyedCollection.cs
- SqlClientPermission.cs
- DependentList.cs
- HttpException.cs
- BitmapEncoder.cs
- DataGridViewToolTip.cs
- FlowDocumentPage.cs
- DataGridViewTopRowAccessibleObject.cs
- Label.cs
- MinimizableAttributeTypeConverter.cs
- HtmlSelect.cs
- Decorator.cs
- DataGridViewCellToolTipTextNeededEventArgs.cs
- OleDbCommandBuilder.cs
- X509ClientCertificateAuthentication.cs
- SmiSettersStream.cs
- DateTime.cs
- Track.cs
- ResetableIterator.cs
- SaveFileDialog.cs
- Action.cs
- RenameRuleObjectDialog.Designer.cs
- Accessors.cs
- COM2ColorConverter.cs
- CustomActivityDesigner.cs
- RelatedEnd.cs
- DeviceFilterDictionary.cs
- GridSplitterAutomationPeer.cs
- ExeContext.cs
- DataKey.cs
- ZipPackage.cs
- BinaryObjectReader.cs
- Bezier.cs
- DataKey.cs
- DataObjectCopyingEventArgs.cs
- BufferBuilder.cs
- StaticTextPointer.cs
- Thickness.cs
- SafeFileMapViewHandle.cs
- SafeSystemMetrics.cs
- SqlCachedBuffer.cs
- FileLoadException.cs
- HealthMonitoringSection.cs
- TextContainerChangedEventArgs.cs
- ServiceEndpointAssociationProvider.cs
- CodeMemberField.cs
- LayoutTable.cs
- ForwardPositionQuery.cs
- KeyInfo.cs
- ScriptManagerProxy.cs
- OptimalBreakSession.cs
- TypeBuilderInstantiation.cs
- SQLGuidStorage.cs
- NumericUpDown.cs
- FontCacheUtil.cs
- WebPartCollection.cs
- SoapHeaderAttribute.cs
- Freezable.cs
- SiteMapSection.cs
- FacetDescriptionElement.cs
- ConnectionStringsExpressionBuilder.cs
- GenericTypeParameterBuilder.cs
- SparseMemoryStream.cs
- DrawingContextDrawingContextWalker.cs
- RawTextInputReport.cs
- FileLoadException.cs
- SizeIndependentAnimationStorage.cs
- DataGridViewBindingCompleteEventArgs.cs
- TextAutomationPeer.cs
- GZipUtils.cs
- XmlNodeChangedEventArgs.cs
- WindowsRichEditRange.cs