Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / whidbey / NetFxQFE / ndp / fx / src / XmlUtils / System / Xml / Xsl / XsltOld / CompiledAction.cs / 1 / CompiledAction.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 abstract class CompiledAction : Action {
internal abstract void Compile(Compiler compiler);
internal virtual bool CompileAttribute(Compiler compiler) {
return false;
}
public void CompileAttributes(Compiler compiler) {
NavigatorInput input = compiler.Input;
string element = input.LocalName;
if (input.MoveToFirstAttribute()) {
do {
if (! Keywords.Equals(input.NamespaceURI, input.Atoms.Empty)) continue;
try {
if (CompileAttribute(compiler) == false) {
throw XsltException.Create(Res.Xslt_InvalidAttribute, input.LocalName, element);
}
}catch {
if (! compiler.ForwardCompatibility) {
throw;
}
else {
// In ForwardCompatibility mode we ignoreing all unknown or incorrect attributes
// If it's mandatory attribute we'l notice it absents later.
}
}
}
while (input.MoveToNextAttribute());
input.ToParent();
}
}
// For perf reason we precalculating AVTs at compile time.
// If we can do this we set original AVT to null
internal static string PrecalculateAvt(ref Avt avt) {
string result = null;
if(avt != null && avt.IsConstant) {
result = avt.Evaluate(null, null);
avt = null;
}
return result;
}
public void CheckEmpty(Compiler compiler) {
// Really EMPTY means no content at all, but the sake of compatibility with MSXML we allow whitespaces
string elementName = compiler.Input.Name;
if (compiler.Recurse()) {
do {
// Note: will be reported as XPathNodeType.Text
XPathNodeType nodeType = compiler.Input.NodeType;
if (
nodeType != XPathNodeType.Whitespace &&
nodeType != XPathNodeType.Comment &&
nodeType != XPathNodeType.ProcessingInstruction
) {
throw XsltException.Create(Res.Xslt_NotEmptyContents, elementName);
}
}
while (compiler.Advance());
compiler.ToParent();
}
}
public void CheckRequiredAttribute(Compiler compiler, object attrValue, string attrName) {
CheckRequiredAttribute(compiler, attrValue != null, attrName);
}
public void CheckRequiredAttribute(Compiler compiler, bool attr, string attrName) {
if (! attr) {
throw XsltException.Create(Res.Xslt_MissingAttribute, attrName);
}
}
}
}
// 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 abstract class CompiledAction : Action {
internal abstract void Compile(Compiler compiler);
internal virtual bool CompileAttribute(Compiler compiler) {
return false;
}
public void CompileAttributes(Compiler compiler) {
NavigatorInput input = compiler.Input;
string element = input.LocalName;
if (input.MoveToFirstAttribute()) {
do {
if (! Keywords.Equals(input.NamespaceURI, input.Atoms.Empty)) continue;
try {
if (CompileAttribute(compiler) == false) {
throw XsltException.Create(Res.Xslt_InvalidAttribute, input.LocalName, element);
}
}catch {
if (! compiler.ForwardCompatibility) {
throw;
}
else {
// In ForwardCompatibility mode we ignoreing all unknown or incorrect attributes
// If it's mandatory attribute we'l notice it absents later.
}
}
}
while (input.MoveToNextAttribute());
input.ToParent();
}
}
// For perf reason we precalculating AVTs at compile time.
// If we can do this we set original AVT to null
internal static string PrecalculateAvt(ref Avt avt) {
string result = null;
if(avt != null && avt.IsConstant) {
result = avt.Evaluate(null, null);
avt = null;
}
return result;
}
public void CheckEmpty(Compiler compiler) {
// Really EMPTY means no content at all, but the sake of compatibility with MSXML we allow whitespaces
string elementName = compiler.Input.Name;
if (compiler.Recurse()) {
do {
// Note: will be reported as XPathNodeType.Text
XPathNodeType nodeType = compiler.Input.NodeType;
if (
nodeType != XPathNodeType.Whitespace &&
nodeType != XPathNodeType.Comment &&
nodeType != XPathNodeType.ProcessingInstruction
) {
throw XsltException.Create(Res.Xslt_NotEmptyContents, elementName);
}
}
while (compiler.Advance());
compiler.ToParent();
}
}
public void CheckRequiredAttribute(Compiler compiler, object attrValue, string attrName) {
CheckRequiredAttribute(compiler, attrValue != null, attrName);
}
public void CheckRequiredAttribute(Compiler compiler, bool attr, string attrName) {
if (! attr) {
throw XsltException.Create(Res.Xslt_MissingAttribute, attrName);
}
}
}
}
// 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
- Queue.cs
- GridViewColumnHeader.cs
- SemanticAnalyzer.cs
- SoapSchemaImporter.cs
- BuildDependencySet.cs
- ProxyAttribute.cs
- DocumentProperties.cs
- XmlBindingWorker.cs
- ZipIOBlockManager.cs
- RunClient.cs
- ServiceNameElementCollection.cs
- PagesSection.cs
- MouseDevice.cs
- MessageQueueConverter.cs
- ToolZone.cs
- EmbeddedMailObject.cs
- TranslateTransform.cs
- DataGridViewUtilities.cs
- PagePropertiesChangingEventArgs.cs
- DBConcurrencyException.cs
- TextEndOfParagraph.cs
- Timer.cs
- ResourceDescriptionAttribute.cs
- SlipBehavior.cs
- DataGridCell.cs
- ToolStripTextBox.cs
- AmbientValueAttribute.cs
- UriScheme.cs
- Point3D.cs
- EllipseGeometry.cs
- TraceContextEventArgs.cs
- PropertiesTab.cs
- MorphHelper.cs
- TransportConfigurationTypeElement.cs
- NavigationPropertyEmitter.cs
- UnsafeNativeMethods.cs
- BatchStream.cs
- EncoderReplacementFallback.cs
- BamlStream.cs
- OrderedDictionary.cs
- UnmanagedMemoryStream.cs
- XmlTypeAttribute.cs
- CircleHotSpot.cs
- BuildProvider.cs
- ThrowHelper.cs
- DataGridViewColumn.cs
- CodeGeneratorOptions.cs
- DocumentScope.cs
- BaseTemplateParser.cs
- SspiSecurityTokenParameters.cs
- XmlNodeList.cs
- RootAction.cs
- FamilyMapCollection.cs
- WindowsGraphics.cs
- XPathCompileException.cs
- AutomationPropertyInfo.cs
- ExpressionNode.cs
- UpdateRecord.cs
- ImageDrawing.cs
- XPathNavigatorKeyComparer.cs
- PersistChildrenAttribute.cs
- SourceExpressionException.cs
- HyperLink.cs
- ColorInterpolationModeValidation.cs
- QilVisitor.cs
- XmlWhitespace.cs
- DelimitedListTraceListener.cs
- InitializerFacet.cs
- DesignUtil.cs
- EditorZoneAutoFormat.cs
- WebBrowserPermission.cs
- PlanCompilerUtil.cs
- BufferedReceiveManager.cs
- PageParserFilter.cs
- UInt16Converter.cs
- CacheRequest.cs
- HttpConfigurationSystem.cs
- BitmapEffectGeneralTransform.cs
- ResizeGrip.cs
- WindowsStartMenu.cs
- TabletDevice.cs
- DebuggerAttributes.cs
- PreservationFileWriter.cs
- ScalarOps.cs
- TypeExtensionConverter.cs
- XmlReaderSettings.cs
- ExeContext.cs
- JavaScriptObjectDeserializer.cs
- DesignerActionVerbItem.cs
- ConfigUtil.cs
- ClientRoleProvider.cs
- ParentUndoUnit.cs
- KerberosReceiverSecurityToken.cs
- SqlBuffer.cs
- TemplateParser.cs
- DrawingCollection.cs
- WpfWebRequestHelper.cs
- Rules.cs
- InternalConfigRoot.cs
- HttpPostedFile.cs