Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / whidbey / NetFXspW7 / ndp / fx / src / Xml / System / Xml / XPath / Internal / DescendantBaseQuery.cs / 1 / DescendantBaseQuery.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;
internal abstract class DescendantBaseQuery : BaseAxisQuery {
protected bool matchSelf;
protected bool abbrAxis;
public DescendantBaseQuery(Query qyParent, string Name, string Prefix, XPathNodeType Type, bool matchSelf, bool abbrAxis) : base(qyParent, Name, Prefix, Type) {
this.matchSelf = matchSelf;
this.abbrAxis = abbrAxis;
}
public DescendantBaseQuery(DescendantBaseQuery other) : base(other) {
this.matchSelf = other.matchSelf;
this.abbrAxis = other.abbrAxis;
}
public override XPathNavigator MatchNode(XPathNavigator context) {
if (context != null) {
if (!abbrAxis) {
throw XPathException.Create(Res.Xp_InvalidPattern);
}
XPathNavigator result = null;
if (matches(context)) {
if (matchSelf) {
if ((result = qyInput.MatchNode(context)) != null) {
return result;
}
}
XPathNavigator anc = context.Clone();
while (anc.MoveToParent()) {
if ((result = qyInput.MatchNode(anc)) != null) {
return result;
}
}
}
}
return null;
}
public override void PrintQuery(XmlWriter w) {
w.WriteStartElement(this.GetType().Name);
if (matchSelf) {
w.WriteAttributeString("self", "yes");
}
if (NameTest) {
w.WriteAttributeString("name", Prefix.Length != 0 ? Prefix + ':' + Name : Name);
}
if (TypeTest != XPathNodeType.Element) {
w.WriteAttributeString("nodeType", TypeTest.ToString());
}
qyInput.PrintQuery(w);
w.WriteEndElement();
}
}
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
//------------------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// [....]
//-----------------------------------------------------------------------------
namespace MS.Internal.Xml.XPath {
using System;
using System.Xml;
using System.Xml.XPath;
using System.Diagnostics;
internal abstract class DescendantBaseQuery : BaseAxisQuery {
protected bool matchSelf;
protected bool abbrAxis;
public DescendantBaseQuery(Query qyParent, string Name, string Prefix, XPathNodeType Type, bool matchSelf, bool abbrAxis) : base(qyParent, Name, Prefix, Type) {
this.matchSelf = matchSelf;
this.abbrAxis = abbrAxis;
}
public DescendantBaseQuery(DescendantBaseQuery other) : base(other) {
this.matchSelf = other.matchSelf;
this.abbrAxis = other.abbrAxis;
}
public override XPathNavigator MatchNode(XPathNavigator context) {
if (context != null) {
if (!abbrAxis) {
throw XPathException.Create(Res.Xp_InvalidPattern);
}
XPathNavigator result = null;
if (matches(context)) {
if (matchSelf) {
if ((result = qyInput.MatchNode(context)) != null) {
return result;
}
}
XPathNavigator anc = context.Clone();
while (anc.MoveToParent()) {
if ((result = qyInput.MatchNode(anc)) != null) {
return result;
}
}
}
}
return null;
}
public override void PrintQuery(XmlWriter w) {
w.WriteStartElement(this.GetType().Name);
if (matchSelf) {
w.WriteAttributeString("self", "yes");
}
if (NameTest) {
w.WriteAttributeString("name", Prefix.Length != 0 ? Prefix + ':' + Name : Name);
}
if (TypeTest != XPathNodeType.Element) {
w.WriteAttributeString("nodeType", TypeTest.ToString());
}
qyInput.PrintQuery(w);
w.WriteEndElement();
}
}
}
// 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
- WebPageTraceListener.cs
- HasCopySemanticsAttribute.cs
- DataObjectAttribute.cs
- ControlBuilderAttribute.cs
- ClientWindowsAuthenticationMembershipProvider.cs
- TransformConverter.cs
- DurableEnlistmentState.cs
- HtmlTernaryTree.cs
- HexParser.cs
- ResourceAttributes.cs
- AspNetSynchronizationContext.cs
- ComAwareEventInfo.cs
- ResourceExpressionBuilder.cs
- GlyphRunDrawing.cs
- AdornerLayer.cs
- EntityViewGenerationConstants.cs
- MarkupExtensionReturnTypeAttribute.cs
- RowType.cs
- LateBoundBitmapDecoder.cs
- ClientRuntimeConfig.cs
- SqlCommandAsyncResult.cs
- Rect.cs
- Mutex.cs
- HtmlTableCell.cs
- LocalFileSettingsProvider.cs
- SiteMapSection.cs
- NumberFormatInfo.cs
- RtfControlWordInfo.cs
- SessionParameter.cs
- ResumeStoryboard.cs
- DataGridViewSelectedCellCollection.cs
- PriorityBindingExpression.cs
- ValidationErrorEventArgs.cs
- HashStream.cs
- StyleHelper.cs
- HebrewNumber.cs
- CodeExporter.cs
- HwndMouseInputProvider.cs
- TemplateNameScope.cs
- BitArray.cs
- BevelBitmapEffect.cs
- Compiler.cs
- ShapingWorkspace.cs
- AuthenticateEventArgs.cs
- ListControl.cs
- Serializer.cs
- GroupQuery.cs
- ListViewItem.cs
- ProfessionalColors.cs
- InheritedPropertyDescriptor.cs
- ProfileSettingsCollection.cs
- SafeMILHandleMemoryPressure.cs
- FileInfo.cs
- CalendarDay.cs
- Permission.cs
- Triplet.cs
- QuaternionAnimation.cs
- OleDbRowUpdatedEvent.cs
- ClientUtils.cs
- SQLDateTimeStorage.cs
- MimeMultiPart.cs
- DataKey.cs
- XmlQueryTypeFactory.cs
- FrameDimension.cs
- FlowDocumentPageViewerAutomationPeer.cs
- PrePostDescendentsWalker.cs
- streamingZipPartStream.cs
- InvalidPrinterException.cs
- CheckBox.cs
- OutputCacheSection.cs
- DocumentViewerBaseAutomationPeer.cs
- SoapUnknownHeader.cs
- PingReply.cs
- DataGridViewCellContextMenuStripNeededEventArgs.cs
- CursorConverter.cs
- DefaultPropertyAttribute.cs
- RoleGroup.cs
- PanelDesigner.cs
- DetailsViewCommandEventArgs.cs
- UriWriter.cs
- safelinkcollection.cs
- FixedPageProcessor.cs
- CodeCompiler.cs
- InvalidDataContractException.cs
- OleCmdHelper.cs
- FixedPageAutomationPeer.cs
- FormsAuthenticationConfiguration.cs
- SystemResources.cs
- FontSource.cs
- TextViewDesigner.cs
- DataControlFieldTypeEditor.cs
- DbDataAdapter.cs
- BaseParser.cs
- RadioButtonAutomationPeer.cs
- WsdlBuildProvider.cs
- RouteItem.cs
- GridViewDeleteEventArgs.cs
- ToolStripContentPanelRenderEventArgs.cs
- UncommonField.cs
- DataFormats.cs