Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / XmlUtils / System / Xml / Xsl / XsltOld / CallTemplateAction.cs / 1305376 / CallTemplateAction.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 class CallTemplateAction : ContainerAction { private const int ProcessedChildren = 2; private const int ProcessedTemplate = 3; private XmlQualifiedName name; internal override void Compile(Compiler compiler) { CompileAttributes(compiler); CheckRequiredAttribute(compiler, this.name, "name"); CompileContent(compiler); } internal override bool CompileAttribute(Compiler compiler) { string name = compiler.Input.LocalName; string value = compiler.Input.Value; if (Ref.Equal(name, compiler.Atoms.Name)) { Debug.Assert(this.name == null); this.name = compiler.CreateXPathQName(value); } else { return false; } return true; } private void CompileContent(Compiler compiler) { NavigatorInput input = compiler.Input; if (compiler.Recurse()) { do { switch(input.NodeType) { case XPathNodeType.Element: compiler.PushNamespaceScope(); string nspace = input.NamespaceURI; string name = input.LocalName; if (Ref.Equal(nspace, input.Atoms.UriXsl) && Ref.Equal(name, input.Atoms.WithParam)) { WithParamAction par = compiler.CreateWithParamAction(); CheckDuplicateParams(par.Name); AddAction(par); } else { throw compiler.UnexpectedKeyword(); } compiler.PopScope(); break; case XPathNodeType.Comment: case XPathNodeType.ProcessingInstruction: case XPathNodeType.Whitespace: case XPathNodeType.SignificantWhitespace: break; default: throw XsltException.Create(Res.Xslt_InvalidContents, "call-template"); } } while(compiler.Advance()); compiler.ToParent(); } } internal override void Execute(Processor processor, ActionFrame frame) { Debug.Assert(processor != null && frame != null); switch(frame.State) { case Initialized : processor.ResetParams(); if (this.containedActions != null && this.containedActions.Count > 0) { processor.PushActionFrame(frame); frame.State = ProcessedChildren; break; } goto case ProcessedChildren; case ProcessedChildren: TemplateAction action = processor.Stylesheet.FindTemplate(this.name); if (action != null) { frame.State = ProcessedTemplate; processor.PushActionFrame(action, frame.NodeSet); break; } else { throw XsltException.Create(Res.Xslt_InvalidCallTemplate, this.name.ToString()); } case ProcessedTemplate: frame.Finished(); break; default: Debug.Fail("Invalid CallTemplateAction execution state"); break; } } } } // 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
- OdbcCommandBuilder.cs
- ActivationService.cs
- PropertyMap.cs
- StorageEntitySetMapping.cs
- ClientType.cs
- ICspAsymmetricAlgorithm.cs
- AssociatedControlConverter.cs
- HyperlinkAutomationPeer.cs
- HwndAppCommandInputProvider.cs
- WindowsRichEdit.cs
- NameService.cs
- cookie.cs
- MessagePropertyFilter.cs
- CaseCqlBlock.cs
- KeyToListMap.cs
- SettingsBindableAttribute.cs
- UpdateCommand.cs
- XmlQueryOutput.cs
- ProgramPublisher.cs
- ValidationSettings.cs
- GlyphRun.cs
- DefaultAssemblyResolver.cs
- InstanceContext.cs
- IdentityNotMappedException.cs
- ExclusiveCanonicalizationTransform.cs
- DetailsView.cs
- LocalValueEnumerator.cs
- Setter.cs
- ParameterBuilder.cs
- ParentQuery.cs
- ErasingStroke.cs
- RadioButton.cs
- ColorKeyFrameCollection.cs
- Variable.cs
- RedirectionProxy.cs
- NamespaceDecl.cs
- LeftCellWrapper.cs
- SoapObjectInfo.cs
- StartUpEventArgs.cs
- CodeDefaultValueExpression.cs
- MobileControlBuilder.cs
- SyndicationElementExtensionCollection.cs
- WebResourceUtil.cs
- DiscoveryClientReferences.cs
- SQLMembershipProvider.cs
- DbTransaction.cs
- ReadonlyMessageFilter.cs
- ButtonChrome.cs
- WebPartsPersonalizationAuthorization.cs
- ControlAdapter.cs
- RtfControls.cs
- SafeLocalAllocation.cs
- DetailsView.cs
- UTF8Encoding.cs
- ComplexTypeEmitter.cs
- AsyncOperationContext.cs
- InfoCardService.cs
- WindowsAuthenticationEventArgs.cs
- Contracts.cs
- CompositeScriptReference.cs
- GifBitmapDecoder.cs
- FileUpload.cs
- WebPartUserCapability.cs
- diagnosticsswitches.cs
- AlgoModule.cs
- UrlMappingsModule.cs
- DetailsViewUpdatedEventArgs.cs
- SchemaEntity.cs
- InstallHelper.cs
- ValidatingPropertiesEventArgs.cs
- SqlDataSourceView.cs
- ZipIOLocalFileHeader.cs
- DistributedTransactionPermission.cs
- XslCompiledTransform.cs
- ProjectionPathBuilder.cs
- EllipseGeometry.cs
- BamlVersionHeader.cs
- PolyQuadraticBezierSegmentFigureLogic.cs
- ProcessHostFactoryHelper.cs
- DBSchemaTable.cs
- DataObject.cs
- NameService.cs
- HostSecurityManager.cs
- WindowsRichEditRange.cs
- AddInIpcChannel.cs
- CategoryGridEntry.cs
- DynamicField.cs
- ToolboxItemFilterAttribute.cs
- Module.cs
- XmlLinkedNode.cs
- DatatypeImplementation.cs
- PeerNameRecordCollection.cs
- XLinq.cs
- ResumeStoryboard.cs
- DataTableTypeConverter.cs
- ByteStorage.cs
- HostVisual.cs
- SizeAnimationUsingKeyFrames.cs
- Context.cs
- New.cs