Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / XmlUtils / System / Xml / Xsl / XsltOld / ChooseAction.cs / 1305376 / ChooseAction.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 ChooseAction : ContainerAction { internal override void Compile(Compiler compiler) { CompileAttributes(compiler); if (compiler.Recurse()) { CompileConditions(compiler); compiler.ToParent(); } } private void CompileConditions(Compiler compiler) { NavigatorInput input = compiler.Input; bool when = false; bool otherwise = false; do { switch (input.NodeType) { case XPathNodeType.Element: compiler.PushNamespaceScope(); string nspace = input.NamespaceURI; string name = input.LocalName; if (Ref.Equal(nspace, input.Atoms.UriXsl)) { IfAction action = null; if (Ref.Equal(name, input.Atoms.When)) { if (otherwise) { throw XsltException.Create(Res.Xslt_WhenAfterOtherwise); } action = compiler.CreateIfAction(IfAction.ConditionType.ConditionWhen); when = true; } else if (Ref.Equal(name, input.Atoms.Otherwise)) { if (otherwise) { throw XsltException.Create(Res.Xslt_DupOtherwise); } action = compiler.CreateIfAction(IfAction.ConditionType.ConditionOtherwise); otherwise = true; } else { throw compiler.UnexpectedKeyword(); } AddAction(action); } 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, "choose"); } } while (compiler.Advance()); if (! when) { throw XsltException.Create(Res.Xslt_NoWhen); } } } } // 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 class ChooseAction : ContainerAction { internal override void Compile(Compiler compiler) { CompileAttributes(compiler); if (compiler.Recurse()) { CompileConditions(compiler); compiler.ToParent(); } } private void CompileConditions(Compiler compiler) { NavigatorInput input = compiler.Input; bool when = false; bool otherwise = false; do { switch (input.NodeType) { case XPathNodeType.Element: compiler.PushNamespaceScope(); string nspace = input.NamespaceURI; string name = input.LocalName; if (Ref.Equal(nspace, input.Atoms.UriXsl)) { IfAction action = null; if (Ref.Equal(name, input.Atoms.When)) { if (otherwise) { throw XsltException.Create(Res.Xslt_WhenAfterOtherwise); } action = compiler.CreateIfAction(IfAction.ConditionType.ConditionWhen); when = true; } else if (Ref.Equal(name, input.Atoms.Otherwise)) { if (otherwise) { throw XsltException.Create(Res.Xslt_DupOtherwise); } action = compiler.CreateIfAction(IfAction.ConditionType.ConditionOtherwise); otherwise = true; } else { throw compiler.UnexpectedKeyword(); } AddAction(action); } 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, "choose"); } } while (compiler.Advance()); if (! when) { throw XsltException.Create(Res.Xslt_NoWhen); } } } } // 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
- ResourceReader.cs
- ValidatingPropertiesEventArgs.cs
- Privilege.cs
- AssemblyNameUtility.cs
- IconHelper.cs
- XmlDataFileEditor.cs
- ConfigurationStrings.cs
- DescriptionAttribute.cs
- TextAutomationPeer.cs
- AssociationSetEnd.cs
- EventProviderTraceListener.cs
- GreenMethods.cs
- InvalidOleVariantTypeException.cs
- CqlParserHelpers.cs
- CTreeGenerator.cs
- ProcessStartInfo.cs
- TrustLevelCollection.cs
- ChangeDirector.cs
- FilteredDataSetHelper.cs
- CharUnicodeInfo.cs
- HtmlGenericControl.cs
- XmlSchemaIdentityConstraint.cs
- AsymmetricSignatureDeformatter.cs
- CustomTypeDescriptor.cs
- PeerValidationBehavior.cs
- DropShadowBitmapEffect.cs
- XmlCDATASection.cs
- EmissiveMaterial.cs
- ParserOptions.cs
- Matrix3DConverter.cs
- PartialClassGenerationTask.cs
- SwitchDesigner.xaml.cs
- SafeMILHandleMemoryPressure.cs
- RolePrincipal.cs
- StructuredTypeInfo.cs
- ImportCatalogPart.cs
- DataBoundControl.cs
- ReaderWriterLockSlim.cs
- SqlHelper.cs
- WebProxyScriptElement.cs
- XmlSchemaCompilationSettings.cs
- RequestStatusBarUpdateEventArgs.cs
- WebBrowserEvent.cs
- AutoSizeToolBoxItem.cs
- SecurityPolicySection.cs
- NameNode.cs
- RuleSettings.cs
- CfgParser.cs
- SiteMapNodeItemEventArgs.cs
- DesignerOptionService.cs
- Select.cs
- ChildTable.cs
- TraceData.cs
- MetaForeignKeyColumn.cs
- SafeCertificateContext.cs
- HtmlTableCell.cs
- WinEventTracker.cs
- StreamGeometry.cs
- UpWmlPageAdapter.cs
- NameValueCollection.cs
- DebugHandleTracker.cs
- ZoomingMessageFilter.cs
- path.cs
- TableLayout.cs
- StylusDownEventArgs.cs
- NotificationContext.cs
- ThousandthOfEmRealPoints.cs
- BooleanConverter.cs
- TemplateControlParser.cs
- ClientApiGenerator.cs
- OleDbRowUpdatingEvent.cs
- FlowNode.cs
- OracleColumn.cs
- XmlSerializerNamespaces.cs
- ButtonChrome.cs
- XPathNavigatorKeyComparer.cs
- BindingListCollectionView.cs
- WinFormsSecurity.cs
- HttpVersion.cs
- EventProviderWriter.cs
- LinqDataSourceUpdateEventArgs.cs
- InvokeMemberBinder.cs
- xmlfixedPageInfo.cs
- DynamicPhysicalDiscoSearcher.cs
- GridProviderWrapper.cs
- XmlDictionaryWriter.cs
- XmlSchemaAnnotation.cs
- IOThreadTimer.cs
- SoapParser.cs
- SelectionRange.cs
- XmlNodeChangedEventArgs.cs
- Propagator.Evaluator.cs
- ConnectionPoint.cs
- NetCodeGroup.cs
- ListBase.cs
- QueryOutputWriter.cs
- SyndicationDeserializer.cs
- MemoryStream.cs
- CompiledXpathExpr.cs
- NegationPusher.cs