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
- SuppressMergeCheckAttribute.cs
- Stylesheet.cs
- OdbcTransaction.cs
- DataGridClipboardHelper.cs
- SessionPageStatePersister.cs
- EncodingDataItem.cs
- TableProviderWrapper.cs
- ChangeBlockUndoRecord.cs
- MarginCollapsingState.cs
- EventProviderWriter.cs
- xmlfixedPageInfo.cs
- EncoderReplacementFallback.cs
- HtmlGenericControl.cs
- SoapSchemaExporter.cs
- TextUtf8RawTextWriter.cs
- ItemList.cs
- StringArrayConverter.cs
- MethodBody.cs
- SQLCharsStorage.cs
- DependencyProperty.cs
- WindowsListBox.cs
- CubicEase.cs
- PersonalizationState.cs
- RoleManagerEventArgs.cs
- ApplicationException.cs
- GPPOINT.cs
- GenericIdentity.cs
- ProcessThread.cs
- GeometryCombineModeValidation.cs
- BitmapEffectInputData.cs
- DelayedRegex.cs
- AncestorChangedEventArgs.cs
- BigInt.cs
- TrustManagerMoreInformation.cs
- ObjectContext.cs
- DocumentGrid.cs
- XmlCodeExporter.cs
- PhysicalFontFamily.cs
- MetadataAssemblyHelper.cs
- MyContact.cs
- ActivityCodeDomReferenceService.cs
- SortedDictionary.cs
- DomNameTable.cs
- ProcessModelSection.cs
- OperandQuery.cs
- XmlSchemaComplexType.cs
- MultitargetingHelpers.cs
- TextUtf8RawTextWriter.cs
- ComponentManagerBroker.cs
- BoundingRectTracker.cs
- SqlRewriteScalarSubqueries.cs
- ScriptRef.cs
- ListViewItem.cs
- ContextStack.cs
- SByte.cs
- OdbcDataReader.cs
- SID.cs
- ToolStripButton.cs
- CacheOutputQuery.cs
- TextTreeInsertUndoUnit.cs
- CounterSet.cs
- ExceptionHandlersDesigner.cs
- CompositeDataBoundControl.cs
- AppSettingsExpressionBuilder.cs
- ConfigurationErrorsException.cs
- CustomErrorCollection.cs
- ValidatorCompatibilityHelper.cs
- Size.cs
- MenuItem.cs
- DesignerTransaction.cs
- FatalException.cs
- MemberInitExpression.cs
- Int32CollectionConverter.cs
- ContentValidator.cs
- ProtocolViolationException.cs
- AssemblyInfo.cs
- TextContainerHelper.cs
- BasicHttpSecurity.cs
- MetadataItemCollectionFactory.cs
- TemplateBindingExpressionConverter.cs
- VirtualPathUtility.cs
- ObservableCollectionDefaultValueFactory.cs
- PolyLineSegmentFigureLogic.cs
- StylusDownEventArgs.cs
- SqlFacetAttribute.cs
- DesignerLinkAdapter.cs
- QilSortKey.cs
- SortDescription.cs
- GPPOINTF.cs
- RepeaterItem.cs
- BorderSidesEditor.cs
- SimpleLine.cs
- MD5CryptoServiceProvider.cs
- ColorKeyFrameCollection.cs
- InvalidProgramException.cs
- UriTemplateMatchException.cs
- ListArgumentProvider.cs
- ImageMapEventArgs.cs
- EditorZone.cs
- CultureSpecificStringDictionary.cs