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
- DataServiceClientException.cs
- HttpResponseWrapper.cs
- AppLevelCompilationSectionCache.cs
- AutomationPatternInfo.cs
- PropertyChangeTracker.cs
- PointLightBase.cs
- DrawListViewColumnHeaderEventArgs.cs
- DataMemberConverter.cs
- EmptyCollection.cs
- TimeoutValidationAttribute.cs
- Exception.cs
- SingleResultAttribute.cs
- RsaEndpointIdentity.cs
- BindUriHelper.cs
- Localizer.cs
- StaticDataManager.cs
- PageContentAsyncResult.cs
- EntityDataSourceDesigner.cs
- TypeToken.cs
- ActivityCodeDomSerializer.cs
- Size3D.cs
- NameNode.cs
- WorkingDirectoryEditor.cs
- DataTemplateSelector.cs
- ThemeDictionaryExtension.cs
- PropertySourceInfo.cs
- XmlSerializationReader.cs
- SmiEventSink_DeferedProcessing.cs
- QueryConverter.cs
- ArraySubsetEnumerator.cs
- MatcherBuilder.cs
- OledbConnectionStringbuilder.cs
- Group.cs
- MenuItemCollection.cs
- BufferedStream2.cs
- RSAPKCS1KeyExchangeFormatter.cs
- WasNotInstalledException.cs
- UnsafeNativeMethods.cs
- SizeIndependentAnimationStorage.cs
- RenderDataDrawingContext.cs
- DbCommandDefinition.cs
- StylusPoint.cs
- PositiveTimeSpanValidator.cs
- AsymmetricKeyExchangeFormatter.cs
- GridViewRow.cs
- FolderLevelBuildProvider.cs
- FrugalMap.cs
- Attribute.cs
- CustomGrammar.cs
- SqlTransaction.cs
- ImageFormat.cs
- CreateUserWizard.cs
- LinkClickEvent.cs
- XmlAutoDetectWriter.cs
- RefExpr.cs
- MediaSystem.cs
- ConfigurationStrings.cs
- OleDbException.cs
- HyperLinkDataBindingHandler.cs
- Privilege.cs
- EmptyEnumerator.cs
- HostProtectionException.cs
- XpsManager.cs
- StructuredCompositeActivityDesigner.cs
- ProxyGenerationError.cs
- TreeView.cs
- EdgeProfileValidation.cs
- ObjectResult.cs
- ExpandSegmentCollection.cs
- FontStyleConverter.cs
- CodeTypeMemberCollection.cs
- Vector3dCollection.cs
- HttpWebRequestElement.cs
- ConfigurationSchemaErrors.cs
- XmlWhitespace.cs
- XsdDataContractImporter.cs
- AsyncCompletedEventArgs.cs
- ConfigXmlWhitespace.cs
- BamlLocalizableResourceKey.cs
- TransformConverter.cs
- NetStream.cs
- RoutedEventConverter.cs
- IndicShape.cs
- ComPlusServiceHost.cs
- Double.cs
- AutomationPropertyInfo.cs
- ExpressionPrefixAttribute.cs
- EventPropertyMap.cs
- UrlParameterReader.cs
- DesignTimeSiteMapProvider.cs
- ProfileManager.cs
- TraceEventCache.cs
- ProgressBarRenderer.cs
- xmlsaver.cs
- XmlWrappingReader.cs
- TrackingConditionCollection.cs
- StickyNote.cs
- Win32MouseDevice.cs
- ShadowGlyph.cs
- InProcStateClientManager.cs