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
- SqlClientPermission.cs
- LocationFactory.cs
- ArrayConverter.cs
- Pen.cs
- ListDictionaryInternal.cs
- ConfigurationUtility.cs
- RuleSet.cs
- InternalDispatchObject.cs
- Directory.cs
- DataMemberListEditor.cs
- BuilderInfo.cs
- HtmlTableCellCollection.cs
- ClientSideQueueItem.cs
- cookiecollection.cs
- DesignerDataParameter.cs
- GeneratedCodeAttribute.cs
- XNodeNavigator.cs
- DoubleLink.cs
- COM2ICategorizePropertiesHandler.cs
- XmlUtf8RawTextWriter.cs
- XmlNamedNodeMap.cs
- UpdateException.cs
- CRYPTPROTECT_PROMPTSTRUCT.cs
- Hyperlink.cs
- ColumnResult.cs
- QilFunction.cs
- RelAssertionDirectKeyIdentifierClause.cs
- FrameworkContentElement.cs
- SignatureHelper.cs
- handlecollector.cs
- ProxyManager.cs
- DbConnectionPoolGroupProviderInfo.cs
- RangeEnumerable.cs
- EndOfStreamException.cs
- FontStyleConverter.cs
- SequentialUshortCollection.cs
- DrawingState.cs
- SchemaCollectionCompiler.cs
- CorrelationKeyCalculator.cs
- Guid.cs
- ComPlusTypeLoader.cs
- ObfuscateAssemblyAttribute.cs
- ComponentEditorForm.cs
- SvcMapFileSerializer.cs
- EntityFrameworkVersions.cs
- SmiSettersStream.cs
- RecipientServiceModelSecurityTokenRequirement.cs
- ColorBlend.cs
- PersonalizableTypeEntry.cs
- XmlElementList.cs
- HeaderedItemsControl.cs
- ProjectionCamera.cs
- SqlDataReader.cs
- ADMembershipProvider.cs
- PixelShader.cs
- VisualTreeUtils.cs
- LicenseProviderAttribute.cs
- SqlTypesSchemaImporter.cs
- fixedPageContentExtractor.cs
- ReplacementText.cs
- TextProperties.cs
- __ComObject.cs
- ComponentManagerBroker.cs
- SectionXmlInfo.cs
- HandlerBase.cs
- CharacterShapingProperties.cs
- Matrix.cs
- KeyInterop.cs
- AttributeEmitter.cs
- WSHttpBindingBase.cs
- RtfToXamlReader.cs
- DbParameterCollection.cs
- RenderDataDrawingContext.cs
- Variable.cs
- BaseTreeIterator.cs
- TreeNodeCollection.cs
- ColumnResult.cs
- SqlCacheDependencyDatabaseCollection.cs
- PersonalizationStateInfo.cs
- CodeAttributeArgument.cs
- ConnectionStringSettingsCollection.cs
- SQLChars.cs
- Separator.cs
- ListViewGroup.cs
- LocationUpdates.cs
- ContextStaticAttribute.cs
- UrlMappingsModule.cs
- UserMapPath.cs
- ContextProperty.cs
- ArraySegment.cs
- DataGridViewButtonColumn.cs
- PeerApplication.cs
- BamlTreeMap.cs
- DbDataRecord.cs
- ImageResources.Designer.cs
- ExpressionConverter.cs
- WebProxyScriptElement.cs
- TreeNodeBindingCollection.cs
- MailAddressCollection.cs
- SimpleMailWebEventProvider.cs