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 / CopyAttributesAction.cs / 1 / CopyAttributesAction.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; internal sealed class CopyAttributesAction : Action { private const int BeginEvent = 2; private const int TextEvent = 3; private const int EndEvent = 4; private const int Advance = 5; private static CopyAttributesAction s_Action = new CopyAttributesAction(); internal static CopyAttributesAction GetAction() { Debug.Assert(s_Action != null); return s_Action; } internal override void Execute(Processor processor, ActionFrame frame) { Debug.Assert(processor != null && frame != null); while (processor.CanContinue) { switch (frame.State) { case Initialized: if (!frame.Node.HasAttributes || frame.Node.MoveToFirstAttribute() == false) { frame.Finished(); break; } frame.State = BeginEvent; goto case BeginEvent; case BeginEvent: Debug.Assert(frame.State == BeginEvent); Debug.Assert(frame.Node.NodeType == XPathNodeType.Attribute); if (SendBeginEvent(processor, frame.Node) == false) { // This one wasn't output break; } frame.State = TextEvent; continue; case TextEvent: Debug.Assert(frame.State == TextEvent); Debug.Assert(frame.Node.NodeType == XPathNodeType.Attribute); if (SendTextEvent(processor, frame.Node) == false) { // This one wasn't output break; } frame.State = EndEvent; continue; case EndEvent: Debug.Assert(frame.State == EndEvent); Debug.Assert(frame.Node.NodeType == XPathNodeType.Attribute); if (SendEndEvent(processor, frame.Node) == false) { // This one wasn't output break; } frame.State = Advance; continue; case Advance: Debug.Assert(frame.State == Advance); Debug.Assert(frame.Node.NodeType == XPathNodeType.Attribute); if (frame.Node.MoveToNextAttribute()) { frame.State = BeginEvent; continue; } else { frame.Node.MoveToParent(); frame.Finished(); break; } } break; }// while (processor.CanContinue) } private static bool SendBeginEvent(Processor processor, XPathNavigator node) { Debug.Assert(node.NodeType == XPathNodeType.Attribute); return processor.BeginEvent(XPathNodeType.Attribute, node.Prefix, node.LocalName, node.NamespaceURI, false); } private static bool SendTextEvent(Processor processor, XPathNavigator node) { Debug.Assert(node.NodeType == XPathNodeType.Attribute); return processor.TextEvent(node.Value); } private static bool SendEndEvent(Processor processor, XPathNavigator node) { Debug.Assert(node.NodeType == XPathNodeType.Attribute); return processor.EndEvent(XPathNodeType.Attribute); } } } // 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; internal sealed class CopyAttributesAction : Action { private const int BeginEvent = 2; private const int TextEvent = 3; private const int EndEvent = 4; private const int Advance = 5; private static CopyAttributesAction s_Action = new CopyAttributesAction(); internal static CopyAttributesAction GetAction() { Debug.Assert(s_Action != null); return s_Action; } internal override void Execute(Processor processor, ActionFrame frame) { Debug.Assert(processor != null && frame != null); while (processor.CanContinue) { switch (frame.State) { case Initialized: if (!frame.Node.HasAttributes || frame.Node.MoveToFirstAttribute() == false) { frame.Finished(); break; } frame.State = BeginEvent; goto case BeginEvent; case BeginEvent: Debug.Assert(frame.State == BeginEvent); Debug.Assert(frame.Node.NodeType == XPathNodeType.Attribute); if (SendBeginEvent(processor, frame.Node) == false) { // This one wasn't output break; } frame.State = TextEvent; continue; case TextEvent: Debug.Assert(frame.State == TextEvent); Debug.Assert(frame.Node.NodeType == XPathNodeType.Attribute); if (SendTextEvent(processor, frame.Node) == false) { // This one wasn't output break; } frame.State = EndEvent; continue; case EndEvent: Debug.Assert(frame.State == EndEvent); Debug.Assert(frame.Node.NodeType == XPathNodeType.Attribute); if (SendEndEvent(processor, frame.Node) == false) { // This one wasn't output break; } frame.State = Advance; continue; case Advance: Debug.Assert(frame.State == Advance); Debug.Assert(frame.Node.NodeType == XPathNodeType.Attribute); if (frame.Node.MoveToNextAttribute()) { frame.State = BeginEvent; continue; } else { frame.Node.MoveToParent(); frame.Finished(); break; } } break; }// while (processor.CanContinue) } private static bool SendBeginEvent(Processor processor, XPathNavigator node) { Debug.Assert(node.NodeType == XPathNodeType.Attribute); return processor.BeginEvent(XPathNodeType.Attribute, node.Prefix, node.LocalName, node.NamespaceURI, false); } private static bool SendTextEvent(Processor processor, XPathNavigator node) { Debug.Assert(node.NodeType == XPathNodeType.Attribute); return processor.TextEvent(node.Value); } private static bool SendEndEvent(Processor processor, XPathNavigator node) { Debug.Assert(node.NodeType == XPathNodeType.Attribute); return processor.EndEvent(XPathNodeType.Attribute); } } } // 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
- ProtocolReflector.cs
- SerializeAbsoluteContext.cs
- SecurityUniqueId.cs
- AssemblyCache.cs
- RelationshipEndMember.cs
- StructuralComparisons.cs
- WorkflowMarkupSerializationManager.cs
- XmlAnyElementAttributes.cs
- EventWaitHandleSecurity.cs
- SimpleWebHandlerParser.cs
- GacUtil.cs
- FolderLevelBuildProviderCollection.cs
- FixUpCollection.cs
- ExecutionEngineException.cs
- MetadataCache.cs
- SHA512.cs
- SimpleApplicationHost.cs
- Icon.cs
- TabPage.cs
- Vector.cs
- SQLConvert.cs
- ProcessModelSection.cs
- ToolStripManager.cs
- DesignerAutoFormatStyle.cs
- PerfService.cs
- SqlTypesSchemaImporter.cs
- IIS7UserPrincipal.cs
- StructuralObject.cs
- SqlUnionizer.cs
- IIS7UserPrincipal.cs
- TrackingConditionCollection.cs
- XmlSchemaSequence.cs
- updatecommandorderer.cs
- StylusTip.cs
- _CacheStreams.cs
- ArithmeticException.cs
- DSASignatureFormatter.cs
- PartialCachingControl.cs
- BuildResultCache.cs
- InkCanvasInnerCanvas.cs
- AuthenticationService.cs
- CatalogZoneBase.cs
- XamlRtfConverter.cs
- ScriptManager.cs
- KnownBoxes.cs
- OSFeature.cs
- SecurityTokenValidationException.cs
- TemplateXamlParser.cs
- GeometryCollection.cs
- SHA256.cs
- XmlLinkedNode.cs
- XmlSchemaType.cs
- EntityContainer.cs
- ParameterCollection.cs
- SizeFConverter.cs
- MgmtResManager.cs
- BinHexEncoder.cs
- SchemaElementDecl.cs
- cookiecontainer.cs
- SettingsPropertyWrongTypeException.cs
- StreamHelper.cs
- StylusButtonEventArgs.cs
- DataGridViewEditingControlShowingEventArgs.cs
- future.cs
- SerializationInfoEnumerator.cs
- LocalClientSecuritySettings.cs
- Array.cs
- ObjectFactoryCodeDomTreeGenerator.cs
- Converter.cs
- DataRow.cs
- EntityContainerEntitySetDefiningQuery.cs
- RepeaterItemCollection.cs
- ReversePositionQuery.cs
- MembershipSection.cs
- SafeFindHandle.cs
- ControlValuePropertyAttribute.cs
- FileIOPermission.cs
- SnapLine.cs
- _HeaderInfoTable.cs
- GlobalItem.cs
- ToolbarAUtomationPeer.cs
- TextBoxRenderer.cs
- MetricEntry.cs
- RoleGroup.cs
- EntityDataSourceMemberPath.cs
- XmlnsDictionary.cs
- RetrieveVirtualItemEventArgs.cs
- MinMaxParagraphWidth.cs
- VScrollProperties.cs
- CompressionTransform.cs
- DesignerDataConnection.cs
- DesignerDataSchemaClass.cs
- TemplateDefinition.cs
- DynamicRendererThreadManager.cs
- VariantWrapper.cs
- HelpEvent.cs
- MediaContextNotificationWindow.cs
- LostFocusEventManager.cs
- HashAlgorithm.cs
- HwndSourceParameters.cs