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
- Command.cs
- InkPresenter.cs
- QilList.cs
- DynamicValueConverter.cs
- GeneralEndpointIdentity.cs
- SqlDataSourceEnumerator.cs
- GenerateTemporaryAssemblyTask.cs
- ObjectNavigationPropertyMapping.cs
- SqlConnectionString.cs
- SQLRoleProvider.cs
- StringStorage.cs
- StorageAssociationSetMapping.cs
- DoubleAnimationClockResource.cs
- DynamicResourceExtensionConverter.cs
- ViewStateChangedEventArgs.cs
- XmlElement.cs
- CacheEntry.cs
- Rotation3DKeyFrameCollection.cs
- TextRenderingModeValidation.cs
- Queue.cs
- WmfPlaceableFileHeader.cs
- RelationshipWrapper.cs
- CultureInfoConverter.cs
- ErrorWrapper.cs
- AtomContentProperty.cs
- DuplicateDetector.cs
- SqlWebEventProvider.cs
- NumberFormatInfo.cs
- NonSerializedAttribute.cs
- DataGridViewCellLinkedList.cs
- KerberosRequestorSecurityTokenAuthenticator.cs
- ToolStripItemClickedEventArgs.cs
- MsmqInputSessionChannelListener.cs
- FieldToken.cs
- KnownTypesProvider.cs
- Highlights.cs
- WindowsSpinner.cs
- TextTreeTextNode.cs
- TextBoxAutomationPeer.cs
- RegisteredDisposeScript.cs
- VirtualDirectoryMappingCollection.cs
- HtmlTable.cs
- InvalidOleVariantTypeException.cs
- ReadOnlyPermissionSet.cs
- TaskSchedulerException.cs
- ParserExtension.cs
- SendActivity.cs
- OleDbCommand.cs
- CounterSampleCalculator.cs
- DefaultPropertyAttribute.cs
- CodeTypeReferenceSerializer.cs
- SignedPkcs7.cs
- KeyValueInternalCollection.cs
- URLIdentityPermission.cs
- Visual3DCollection.cs
- TypeBuilderInstantiation.cs
- DataGridViewTopLeftHeaderCell.cs
- CopyOnWriteList.cs
- CommonRemoteMemoryBlock.cs
- HttpHandlerActionCollection.cs
- ModelItemCollection.cs
- PointAnimation.cs
- RectangleHotSpot.cs
- HttpDebugHandler.cs
- CheckedListBox.cs
- AutomationPatternInfo.cs
- CommandField.cs
- DeflateStream.cs
- ColorAnimationBase.cs
- LassoHelper.cs
- HttpListener.cs
- MethodImplAttribute.cs
- MailHeaderInfo.cs
- ObsoleteAttribute.cs
- SafeProcessHandle.cs
- HttpWriter.cs
- EntityDataSourceView.cs
- ChangeInterceptorAttribute.cs
- WebPartCatalogCloseVerb.cs
- WorkflowRuntimeServicesBehavior.cs
- Html32TextWriter.cs
- RegistryConfigurationProvider.cs
- DataGridAddNewRow.cs
- WebAdminConfigurationHelper.cs
- documentsequencetextpointer.cs
- ExceptionCollection.cs
- PolyQuadraticBezierSegment.cs
- Grant.cs
- TransactionValidationBehavior.cs
- PersistChildrenAttribute.cs
- Debug.cs
- MarginCollapsingState.cs
- InputProcessorProfiles.cs
- WindowsTooltip.cs
- DependencyPropertyConverter.cs
- DataServiceHostWrapper.cs
- ProcessProtocolHandler.cs
- Keyboard.cs
- SafePointer.cs
- TableLayoutStyleCollection.cs