Code:
/ DotNET / DotNET / 8.0 / untmp / whidbey / REDBITS / ndp / fx / src / Xml / System / Xml / XPath / Internal / VariableQuery.cs / 1 / VariableQuery.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //[....] //----------------------------------------------------------------------------- namespace MS.Internal.Xml.XPath { using System; using System.Xml; using System.Xml.XPath; using System.Diagnostics; using System.Globalization; using System.Xml.Xsl; internal sealed class VariableQuery : ExtensionQuery { private IXsltContextVariable variable; public VariableQuery(string name, string prefix) : base(prefix, name) {} private VariableQuery(VariableQuery other) : base(other) { this.variable = other.variable; } public override void SetXsltContext(XsltContext context) { if (context == null) { throw XPathException.Create(Res.Xp_NoContext); } if (this.xsltContext != context) { xsltContext = context; variable = xsltContext.ResolveVariable(prefix, name); // Since null is allowed for ResolveFunction, allow it for ResolveVariable as well if (variable == null) { throw XPathException.Create(Res.Xp_UndefVar, QName); } } } public override object Evaluate(XPathNodeIterator nodeIterator) { if (xsltContext == null) { throw XPathException.Create(Res.Xp_NoContext); } return ProcessResult(variable.Evaluate(xsltContext)); } public override XPathResultType StaticType { get { if (variable != null) { // Temp. fix to overcome dependency on static type return GetXPathType(Evaluate(null)); } XPathResultType result = variable != null ? variable.VariableType : XPathResultType.Any; if (result == XPathResultType.Error) { // In v.1 we confused Error & Any so now for backward compatibility we should allow users to return any of them. result = XPathResultType.Any; } return result; } } public override XPathNodeIterator Clone() { return new VariableQuery(this); } public override void PrintQuery(XmlWriter w) { w.WriteStartElement(this.GetType().Name); w.WriteAttributeString("name", prefix.Length != 0 ? prefix + ':' + name : name); w.WriteEndElement(); } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- DataSourceNameHandler.cs
- TaiwanCalendar.cs
- SubpageParagraph.cs
- DbConnectionStringBuilder.cs
- DbConnectionStringCommon.cs
- XmlConvert.cs
- AssociationTypeEmitter.cs
- TypeResolver.cs
- ProxyWebPartConnectionCollection.cs
- AdapterDictionary.cs
- TextEditorContextMenu.cs
- Pair.cs
- GenerateDerivedKeyRequest.cs
- SymmetricAlgorithm.cs
- AnimatedTypeHelpers.cs
- ISAPIRuntime.cs
- ZoneIdentityPermission.cs
- UnsafeNativeMethodsCLR.cs
- ConfigXmlWhitespace.cs
- HttpAsyncResult.cs
- AccessedThroughPropertyAttribute.cs
- PauseStoryboard.cs
- TypedDataSetSchemaImporterExtension.cs
- DataMemberConverter.cs
- GridViewUpdatedEventArgs.cs
- ListChangedEventArgs.cs
- RegistrationServices.cs
- GeometryCombineModeValidation.cs
- PKCS1MaskGenerationMethod.cs
- PageFunction.cs
- Rights.cs
- SettingsBase.cs
- MonthCalendarDesigner.cs
- HandleCollector.cs
- CodeTypeDeclarationCollection.cs
- PostBackOptions.cs
- AssertSection.cs
- PreDigestedSignedInfo.cs
- _CommandStream.cs
- MbpInfo.cs
- UnauthorizedWebPart.cs
- BCryptHashAlgorithm.cs
- FileLoadException.cs
- OleDbEnumerator.cs
- ObjectQueryState.cs
- SqlMethodAttribute.cs
- XPathPatternParser.cs
- sqlinternaltransaction.cs
- XmlPreloadedResolver.cs
- PrivilegedConfigurationManager.cs
- KeyboardDevice.cs
- PropertyChangeTracker.cs
- StreamSecurityUpgradeInitiatorBase.cs
- ParameterToken.cs
- TemplatedEditableDesignerRegion.cs
- XNodeSchemaApplier.cs
- DesignerEventService.cs
- UnsafeNativeMethods.cs
- TemplateControlParser.cs
- SystemEvents.cs
- WebPartTransformerCollection.cs
- DataExpression.cs
- EncoderFallback.cs
- DrawingGroup.cs
- Stylesheet.cs
- PropertyDescriptorCollection.cs
- HandoffBehavior.cs
- AlphabeticalEnumConverter.cs
- DesignTimeTemplateParser.cs
- NameValueConfigurationElement.cs
- WindowsListViewItemCheckBox.cs
- NotifyInputEventArgs.cs
- ByteStreamBufferedMessageData.cs
- SecurityUtils.cs
- WebDescriptionAttribute.cs
- SchemaEntity.cs
- ListSourceHelper.cs
- SingleResultAttribute.cs
- Rotation3DAnimation.cs
- HttpConfigurationSystem.cs
- ContextProperty.cs
- WindowsFont.cs
- EventlogProvider.cs
- XmlElementAttributes.cs
- ApplicationHost.cs
- EnumerableCollectionView.cs
- IdentityManager.cs
- ContainerActivationHelper.cs
- shaper.cs
- DataGridViewControlCollection.cs
- DebugView.cs
- CalendarDay.cs
- ToolBarDesigner.cs
- FontSource.cs
- HostedHttpContext.cs
- HtmlLink.cs
- AccessViolationException.cs
- Converter.cs
- DashStyle.cs
- RotationValidation.cs