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
- ResourceReferenceKeyNotFoundException.cs
- CharEnumerator.cs
- ListItem.cs
- Directory.cs
- MethodBody.cs
- SelectionWordBreaker.cs
- SuppressMergeCheckAttribute.cs
- VerticalAlignConverter.cs
- ObjectDataSource.cs
- GeneralTransformGroup.cs
- InterleavedZipPartStream.cs
- XAMLParseException.cs
- OptimizerPatterns.cs
- XmlBufferReader.cs
- ProbeMatchesCD1.cs
- WebPartUserCapability.cs
- DefaultValueTypeConverter.cs
- ImageAutomationPeer.cs
- DocumentOrderComparer.cs
- QueryConverter.cs
- XmlNodeList.cs
- TraceListener.cs
- Image.cs
- ServiceOperationParameter.cs
- StringValidatorAttribute.cs
- unsafenativemethodstextservices.cs
- DependencyProperty.cs
- KeyBinding.cs
- ZoneButton.cs
- Column.cs
- AutoGeneratedField.cs
- CommonDialog.cs
- HitTestWithPointDrawingContextWalker.cs
- DataPointer.cs
- DefaultClaimSet.cs
- PixelFormat.cs
- SocketInformation.cs
- SpotLight.cs
- Overlapped.cs
- CorrelationTokenInvalidatedHandler.cs
- WebPartDisplayMode.cs
- DesignOnlyAttribute.cs
- DiagnosticTrace.cs
- ColorAnimation.cs
- DependencyObjectValidator.cs
- HtmlPhoneCallAdapter.cs
- PointAnimationClockResource.cs
- XmlKeywords.cs
- RuntimeConfigLKG.cs
- DataControlImageButton.cs
- EarlyBoundInfo.cs
- GPRECTF.cs
- OAVariantLib.cs
- SqlClientWrapperSmiStream.cs
- XmlCompatibilityReader.cs
- WebProxyScriptElement.cs
- DNS.cs
- Point3DCollectionConverter.cs
- SmiEventSink_Default.cs
- EditorBrowsableAttribute.cs
- DecoderExceptionFallback.cs
- XMLSchema.cs
- TreeIterators.cs
- DataGridViewCellValidatingEventArgs.cs
- CreateBookmarkScope.cs
- DataGridViewRowCollection.cs
- BaseHashHelper.cs
- DirectoryRootQuery.cs
- ConnectionPoint.cs
- XmlSchemaAttributeGroup.cs
- Camera.cs
- PerformanceCountersElement.cs
- TreeNodeCollection.cs
- HijriCalendar.cs
- BitmapPalette.cs
- StrongTypingException.cs
- GradientStop.cs
- CodeDOMProvider.cs
- Tablet.cs
- QuotedPairReader.cs
- ObjectViewQueryResultData.cs
- ProgressBar.cs
- SecurityToken.cs
- Facet.cs
- ImmComposition.cs
- ObjectMemberMapping.cs
- Timer.cs
- ManagementScope.cs
- XmlCDATASection.cs
- OleStrCAMarshaler.cs
- ScriptBehaviorDescriptor.cs
- ToolStripManager.cs
- CodeConditionStatement.cs
- TextReader.cs
- DynamicScriptObject.cs
- TraceRecord.cs
- StyleCollectionEditor.cs
- ListenerElementsCollection.cs
- IApplicationTrustManager.cs
- DataGridViewRowsRemovedEventArgs.cs