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
- Main.cs
- WaitHandleCannotBeOpenedException.cs
- HierarchicalDataBoundControl.cs
- XmlTextEncoder.cs
- IncrementalCompileAnalyzer.cs
- UnhandledExceptionEventArgs.cs
- SelectionHighlightInfo.cs
- HotSpot.cs
- IssuedTokenClientBehaviorsElement.cs
- SelectorItemAutomationPeer.cs
- MarginCollapsingState.cs
- metadatamappinghashervisitor.hashsourcebuilder.cs
- DispatcherHooks.cs
- SqlWebEventProvider.cs
- SweepDirectionValidation.cs
- WindowsClientElement.cs
- ResourceReferenceExpression.cs
- QilUnary.cs
- CompilerLocalReference.cs
- AssemblyCollection.cs
- WindowsRebar.cs
- DataGridViewCellStyle.cs
- DeferredElementTreeState.cs
- SymmetricKey.cs
- TextElementEnumerator.cs
- SHA256Managed.cs
- WSHttpSecurity.cs
- WeakHashtable.cs
- DbConnectionOptions.cs
- Util.cs
- Cursors.cs
- HwndAppCommandInputProvider.cs
- WS2007FederationHttpBindingElement.cs
- FormViewUpdateEventArgs.cs
- ObjectDataSourceStatusEventArgs.cs
- WebServiceTypeData.cs
- HttpRequest.cs
- TransactedBatchingBehavior.cs
- CalendarDateRange.cs
- OleDbInfoMessageEvent.cs
- HttpClientCertificate.cs
- CatalogZone.cs
- CanonicalizationDriver.cs
- ResXBuildProvider.cs
- CheckBoxRenderer.cs
- DataGrid.cs
- FormViewDeletedEventArgs.cs
- PageAsyncTask.cs
- ClientProxyGenerator.cs
- ChineseLunisolarCalendar.cs
- RequestCacheValidator.cs
- RadioButtonList.cs
- Odbc32.cs
- RtfToken.cs
- Propagator.JoinPropagator.JoinPredicateVisitor.cs
- AutomationPatternInfo.cs
- Properties.cs
- FileDataSourceCache.cs
- ResolveRequestResponseAsyncResult.cs
- TriggerBase.cs
- ErrorReporting.cs
- SqlConnectionString.cs
- PersistChildrenAttribute.cs
- GridPatternIdentifiers.cs
- GridViewUpdatedEventArgs.cs
- BulletedList.cs
- LicenseException.cs
- ToggleProviderWrapper.cs
- DbException.cs
- WebBaseEventKeyComparer.cs
- SiteMapPath.cs
- MatrixTransform.cs
- ProtocolsConfigurationHandler.cs
- WebConfigurationHostFileChange.cs
- ISFClipboardData.cs
- AliasedSlot.cs
- SQLInt16Storage.cs
- X509InitiatorCertificateServiceElement.cs
- ArgumentReference.cs
- Array.cs
- UInt16.cs
- XmlCompatibilityReader.cs
- CodePropertyReferenceExpression.cs
- WS2007FederationHttpBindingCollectionElement.cs
- FixedFlowMap.cs
- PrintPreviewControl.cs
- NamedPermissionSet.cs
- PreProcessInputEventArgs.cs
- StatusBar.cs
- NewArrayExpression.cs
- ErrorCodes.cs
- ManualResetEvent.cs
- SoapElementAttribute.cs
- WebPartHeaderCloseVerb.cs
- Adorner.cs
- QuadraticBezierSegment.cs
- MdiWindowListItemConverter.cs
- QuadraticBezierSegment.cs
- ConfigurationFileMap.cs
- DebugControllerThread.cs